From 6840fe515d2b6e42fef09ebc1f42a87eb598fbda Mon Sep 17 00:00:00 2001 From: Kenneth Date: Sat, 3 May 2025 23:27:36 +0100 Subject: [PATCH] initial commit --- .gitignore | 244 +++++++++++++++++++++++ README.md | 50 +++++ bun.lockb | Bin 0 -> 263676 bytes eslint.config.js | 28 +++ index.html | 13 ++ package.json | 45 +++++ public/favicon.svg | 130 ++++++++++++ pwa-assets.config.ts | 12 ++ src/PWABadge.css | 29 +++ src/PWABadge.tsx | 77 ++++++++ src/app/$username/bookmarks.tsx | 339 ++++++++++++++++++++++++++++++++ src/app/-route-tree.gen.ts | 111 +++++++++++ src/app/__root.tsx | 15 ++ src/app/index.tsx | 54 +++++ src/assets/react.svg | 1 + src/bookmark.ts | 18 ++ src/components/button.tsx | 21 ++ src/components/link.tsx | 21 ++ src/index.css | 9 + src/main.tsx | 15 ++ src/vite-env.d.ts | 2 + tsconfig.app.json | 31 +++ tsconfig.json | 7 + tsconfig.node.json | 24 +++ vite.config.ts | 57 ++++++ 25 files changed, 1353 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100755 bun.lockb create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package.json create mode 100644 public/favicon.svg create mode 100644 pwa-assets.config.ts create mode 100644 src/PWABadge.css create mode 100644 src/PWABadge.tsx create mode 100644 src/app/$username/bookmarks.tsx create mode 100644 src/app/-route-tree.gen.ts create mode 100644 src/app/__root.tsx create mode 100644 src/app/index.tsx create mode 100644 src/assets/react.svg create mode 100644 src/bookmark.ts create mode 100644 src/components/button.tsx create mode 100644 src/components/link.tsx create mode 100644 src/index.css create mode 100644 src/main.tsx create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2adb5db --- /dev/null +++ b/.gitignore @@ -0,0 +1,244 @@ +# Created by https://www.toptal.com/developers/gitignore/api/windows,macos,linux,node +# Edit at https://www.toptal.com/developers/gitignore?templates=windows,macos,linux,node + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/windows,macos,linux,node + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +dev-dist +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..74872fd --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..c577741e8d734b2b9e7e68fc765996b1bd84c1cd GIT binary patch literal 263676 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%0A5V+#o+@q*ntq4$ic; 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℞M`IlC#e8^1b5eikowXoOjGF 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 + + + + + + MarkOne + TS + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..570fce8 --- /dev/null +++ b/package.json @@ -0,0 +1,45 @@ +{ + "name": "markone", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@tailwindcss/vite": "^4.1.5", + "@tanstack/react-router": "^1.119.0", + "clsx": "^2.1.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "tailwindcss": "^4.1.5", + "zustand": "^5.0.4" + }, + "devDependencies": { + "@eslint/js": "^9.18.0", + "@tanstack/react-router-devtools": "^1.119.1", + "@tanstack/router-plugin": "^1.119.0", + "@types/node": "^22.15.3", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "@vite-pwa/assets-generator": "^0.2.6", + "@vitejs/plugin-react": "^4.2.1", + "eslint": "^9.18.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.18", + "globals": "^15.14.0", + "typescript": "~5.7.2", + "typescript-eslint": "^8.20.0", + "vite": "^6.0.11", + "vite-plugin-pwa": "^0.21.1", + "workbox-core": "^7.3.0", + "workbox-window": "^7.3.0" + }, + "resolutions": { + "sharp": "0.32.6", + "sharp-ico": "0.1.5" + } +} diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..733f4fb --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,130 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pwa-assets.config.ts b/pwa-assets.config.ts new file mode 100644 index 0000000..452b31f --- /dev/null +++ b/pwa-assets.config.ts @@ -0,0 +1,12 @@ +import { + defineConfig, + minimal2023Preset as preset, +} from '@vite-pwa/assets-generator/config' + +export default defineConfig({ + headLinkOptions: { + preset: '2023', + }, + preset, + images: ['public/favicon.svg'], +}) diff --git a/src/PWABadge.css b/src/PWABadge.css new file mode 100644 index 0000000..4ed19fa --- /dev/null +++ b/src/PWABadge.css @@ -0,0 +1,29 @@ +.PWABadge-container { + padding: 0; + margin: 0; + width: 0; + height: 0; +} +.PWABadge-toast { + position: fixed; + right: 0; + bottom: 0; + margin: 16px; + padding: 12px; + border: 1px solid #8885; + border-radius: 4px; + z-index: 1; + text-align: left; + box-shadow: 3px 4px 5px 0 #8885; + background-color: white; +} +.PWABadge-toast-message { + margin-bottom: 8px; +} +.PWABadge-toast-button { + border: 1px solid #8885; + outline: none; + margin-right: 5px; + border-radius: 2px; + padding: 3px 10px; +} diff --git a/src/PWABadge.tsx b/src/PWABadge.tsx new file mode 100644 index 0000000..caacb66 --- /dev/null +++ b/src/PWABadge.tsx @@ -0,0 +1,77 @@ +import './PWABadge.css' + +import { useRegisterSW } from 'virtual:pwa-register/react' + +function PWABadge() { + // check for updates every hour + const period = 60 * 60 * 1000 + + const { + offlineReady: [offlineReady, setOfflineReady], + needRefresh: [needRefresh, setNeedRefresh], + updateServiceWorker, + } = useRegisterSW({ + onRegisteredSW(swUrl, r) { + if (period <= 0) return + if (r?.active?.state === 'activated') { + registerPeriodicSync(period, swUrl, r) + } + else if (r?.installing) { + r.installing.addEventListener('statechange', (e) => { + const sw = e.target as ServiceWorker + if (sw.state === 'activated') + registerPeriodicSync(period, swUrl, r) + }) + } + }, + }) + + function close() { + setOfflineReady(false) + setNeedRefresh(false) + } + + return ( +
+ { (offlineReady || needRefresh) + && ( +
+
+ { offlineReady + ? App ready to work offline + : New content available, click on reload button to update.} +
+
+ { needRefresh && } + +
+
+ )} +
+ ) +} + +export default PWABadge + +/** + * This function will register a periodic sync check every hour, you can modify the interval as needed. + */ +function registerPeriodicSync(period: number, swUrl: string, r: ServiceWorkerRegistration) { + if (period <= 0) return + + setInterval(async () => { + if ('onLine' in navigator && !navigator.onLine) + return + + const resp = await fetch(swUrl, { + cache: 'no-store', + headers: { + 'cache': 'no-store', + 'cache-control': 'no-cache', + }, + }) + + if (resp?.status === 200) + await r.update() + }, period) +} diff --git a/src/app/$username/bookmarks.tsx b/src/app/$username/bookmarks.tsx new file mode 100644 index 0000000..c5c9306 --- /dev/null +++ b/src/app/$username/bookmarks.tsx @@ -0,0 +1,339 @@ +import { useEffect } from "react"; +import { createFileRoute } from "@tanstack/react-router"; +import { create } from "zustand"; +import clsx from "clsx"; +import { Button } from "~/components/button"; +import type { LinkBookmark } from "~/bookmark"; + +const testBookmarks: LinkBookmark[] = [ + { + kind: "link", + id: "1", + title: "Running a Docker container as a non-root user", + url: "https://test.website.com/article/123", + }, + { + kind: "link", + id: "2", + title: "Running a Docker container as a non-root user", + url: "https://test.website.com/article/123", + }, +]; + +const LAYOUT_MODE = { + popup: "popup", + sideBySide: "side-by-side", +} as const; +type LayoutMode = (typeof LAYOUT_MODE)[keyof typeof LAYOUT_MODE]; + +interface BookmarkPageState { + bookmarks: LinkBookmark[]; + selectedBookmarkIndex: number; + isBookmarkItemExpanded: boolean; + isBookmarkPreviewOpened: boolean; + layoutMode: LayoutMode; + + setBookmarkItemExpanded: (isExpanded: boolean) => void; + setBookmarkPreviewOpened: (isOpened: boolean) => void; + setLayoutMode: (mode: LayoutMode) => void; + selectBookmarkAt: (index: number) => void; +} + +const useBookmarkPageStore = create()((set, get) => ({ + bookmarks: testBookmarks, + selectedBookmarkIndex: 0, + isBookmarkItemExpanded: false, + isBookmarkPreviewOpened: false, + layoutMode: LAYOUT_MODE.popup, + + setBookmarkItemExpanded(isExpanded: boolean) { + set({ isBookmarkItemExpanded: isExpanded }); + }, + + setBookmarkPreviewOpened(isOpened: boolean) { + set({ isBookmarkPreviewOpened: isOpened }); + }, + + setLayoutMode(mode: LayoutMode) { + set({ layoutMode: mode }); + }, + + selectBookmarkAt(index: number) { + const bookmarks = get().bookmarks; + if (index >= 0 && index < bookmarks.length) { + set({ selectedBookmarkIndex: index }); + } + }, +})); + +function Page() { + const setLayoutMode = useBookmarkPageStore((state) => state.setLayoutMode); + + useEffect(() => { + function onKeyDown(event: KeyboardEvent) { + const state = useBookmarkPageStore.getState(); + + switch (event.key) { + case "ArrowDown": + state.selectBookmarkAt(state.selectedBookmarkIndex + 1); + break; + case "ArrowUp": + state.selectBookmarkAt(state.selectedBookmarkIndex - 1); + break; + case "ArrowLeft": + state.setBookmarkItemExpanded(false); + break; + case "ArrowRight": + state.setBookmarkItemExpanded(true); + break; + default: + break; + } + } + + window.addEventListener("keydown", onKeyDown); + + return () => { + window.removeEventListener("keydown", onKeyDown); + }; + }, [useBookmarkPageStore]); + + useEffect(() => { + function mediaQueryListener(this: MediaQueryList) { + if (this.matches) { + setLayoutMode(LAYOUT_MODE.sideBySide); + } else { + setLayoutMode(LAYOUT_MODE.popup); + } + } + + const q = window.matchMedia("(width >= 64rem)"); + q.addEventListener("change", mediaQueryListener); + + mediaQueryListener.call(q); + + return () => { + q.removeEventListener("change", mediaQueryListener); + }; + }, []); + + return ( +
+
+
+
+

+ + YOUR BOOKMARKS +

+
+
+ {testBookmarks.map((bookmark, i) => ( + + ))} +
+
+ +
+
+ ); +} + +function Main({ children }: React.PropsWithChildren) { + const isPreviewOpened = useBookmarkPageStore( + (state) => state.isBookmarkPreviewOpened, + ); + const layoutMode = useBookmarkPageStore((state) => state.layoutMode); + + return ( +
+ {children} +
+ ); +} + +function BookmarkPreview() { + const isVisible = useBookmarkPageStore( + (state) => state.isBookmarkPreviewOpened, + ); + const layoutMode = useBookmarkPageStore((state) => state.layoutMode); + + if (!isVisible) { + return null; + } + + return ( +
+

Content here

+
+ ); +} + +function BookmarkListItem({ + bookmark, + index, +}: { bookmark: LinkBookmark; index: number }) { + const url = new URL(bookmark.url); + const selectedBookmark = useBookmarkPageStore( + (state) => state.bookmarks[state.selectedBookmarkIndex], + ); + const isSelected = selectedBookmark.id === bookmark.id; + const isBookmarkItemExpanded = useBookmarkPageStore( + (state) => state.isBookmarkItemExpanded, + ); + const setBookmarkItemExpanded = useBookmarkPageStore( + (state) => state.setBookmarkItemExpanded, + ); + const selectBookmarkAt = useBookmarkPageStore( + (state) => state.selectBookmarkAt, + ); + const setBookmarkPreviewOpened = useBookmarkPageStore( + (state) => state.setBookmarkPreviewOpened, + ); + + function expandOrOpenPreview() { + setBookmarkItemExpanded(true); + if (useBookmarkPageStore.getState().layoutMode === LAYOUT_MODE.sideBySide) { + console.log(useBookmarkPageStore.getState().layoutMode); + setBookmarkPreviewOpened(true); + } + } + + return ( +
{ + if (!isBookmarkItemExpanded) { + selectBookmarkAt(index); + } + }} + > + +
+ +

{url.host}

+ {isBookmarkItemExpanded && isSelected ? ( +
+

+ #dev #devops #devops #devops #devops #devops #devops +

+
+ + + +   +
+
+ ) : null} +
+
+ ); +} + +function OpenBookmarkPreviewButton() { + const isBookmarkPreviewOpened = useBookmarkPageStore( + (state) => state.isBookmarkPreviewOpened, + ); + const setBookmarkPreviewOpened = useBookmarkPageStore( + (state) => state.setBookmarkPreviewOpened, + ); + const setBookmarkItemExpanded = useBookmarkPageStore( + (state) => state.setBookmarkItemExpanded, + ); + + useEffect(() => { + function onKeyDown(event: KeyboardEvent) { + if (isBookmarkPreviewOpened && event.key === "c") { + closePreview(); + } else if (!isBookmarkPreviewOpened && event.key === "o") { + openPreview(); + } + } + + window.addEventListener("keydown", onKeyDown); + + return () => { + window.removeEventListener("keydown", onKeyDown); + }; + }, [isBookmarkPreviewOpened]); + + function closePreview() { + setBookmarkPreviewOpened(false); + setBookmarkItemExpanded(false); + } + + function openPreview() { + setBookmarkPreviewOpened(true); + } + + return ( + + ); +} + +export const Route = createFileRoute("/$username/bookmarks")({ + component: Page, +}); diff --git a/src/app/-route-tree.gen.ts b/src/app/-route-tree.gen.ts new file mode 100644 index 0000000..fe359f3 --- /dev/null +++ b/src/app/-route-tree.gen.ts @@ -0,0 +1,111 @@ +/* eslint-disable */ + +// @ts-nocheck + +// noinspection JSUnusedGlobalSymbols + +// This file was automatically generated by TanStack Router. +// You should NOT make any changes in this file as it will be overwritten. +// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. + +// Import Routes + +import { Route as rootRoute } from "./__root" +import { Route as IndexImport } from "./index" +import { Route as UsernameBookmarksImport } from "./$username/bookmarks" + +// Create/Update Routes + +const IndexRoute = IndexImport.update({ + id: "/", + path: "/", + getParentRoute: () => rootRoute, +} as any) + +const UsernameBookmarksRoute = UsernameBookmarksImport.update({ + id: "/$username/bookmarks", + path: "/$username/bookmarks", + getParentRoute: () => rootRoute, +} as any) + +// Populate the FileRoutesByPath interface + +declare module "@tanstack/react-router" { + interface FileRoutesByPath { + "/": { + id: "/" + path: "/" + fullPath: "/" + preLoaderRoute: typeof IndexImport + parentRoute: typeof rootRoute + } + "/$username/bookmarks": { + id: "/$username/bookmarks" + path: "/$username/bookmarks" + fullPath: "/$username/bookmarks" + preLoaderRoute: typeof UsernameBookmarksImport + parentRoute: typeof rootRoute + } + } +} + +// Create and export the route tree + +export interface FileRoutesByFullPath { + "/": typeof IndexRoute + "/$username/bookmarks": typeof UsernameBookmarksRoute +} + +export interface FileRoutesByTo { + "/": typeof IndexRoute + "/$username/bookmarks": typeof UsernameBookmarksRoute +} + +export interface FileRoutesById { + __root__: typeof rootRoute + "/": typeof IndexRoute + "/$username/bookmarks": typeof UsernameBookmarksRoute +} + +export interface FileRouteTypes { + fileRoutesByFullPath: FileRoutesByFullPath + fullPaths: "/" | "/$username/bookmarks" + fileRoutesByTo: FileRoutesByTo + to: "/" | "/$username/bookmarks" + id: "__root__" | "/" | "/$username/bookmarks" + fileRoutesById: FileRoutesById +} + +export interface RootRouteChildren { + IndexRoute: typeof IndexRoute + UsernameBookmarksRoute: typeof UsernameBookmarksRoute +} + +const rootRouteChildren: RootRouteChildren = { + IndexRoute: IndexRoute, + UsernameBookmarksRoute: UsernameBookmarksRoute, +} + +export const routeTree = rootRoute + ._addFileChildren(rootRouteChildren) + ._addFileTypes() + +/* ROUTE_MANIFEST_START +{ + "routes": { + "__root__": { + "filePath": "__root.tsx", + "children": [ + "/", + "/$username/bookmarks" + ] + }, + "/": { + "filePath": "index.tsx" + }, + "/$username/bookmarks": { + "filePath": "$username/bookmarks.tsx" + } + } +} +ROUTE_MANIFEST_END */ diff --git a/src/app/__root.tsx b/src/app/__root.tsx new file mode 100644 index 0000000..119dfa2 --- /dev/null +++ b/src/app/__root.tsx @@ -0,0 +1,15 @@ +import { createRootRoute, Outlet } from "@tanstack/react-router"; +import { TanStackRouterDevtools } from "@tanstack/react-router-devtools"; + +function Root() { + return ( + <> + + + + ); +} + +export const Route = createRootRoute({ + component: Root, +}); diff --git a/src/app/index.tsx b/src/app/index.tsx new file mode 100644 index 0000000..bcab386 --- /dev/null +++ b/src/app/index.tsx @@ -0,0 +1,54 @@ +import { createFileRoute } from "@tanstack/react-router"; +import { Link } from "~/components/link"; + +function Index() { + return ( +
+
+

+ MARKONE +
+

+

BOOKMARK MANAGER

+
+ LOGIN + SIGN UP + DEMO +
+
+
+

+ WHAT IS MARKONE? +
+ MARKONE is a local-first, self-hostable bookmark manager. +

+
    +
  • + * Curate interesting websites you find online, and let MARKONE + archive them. +
  • +
  • * Reference your saved bookmarks anytime, even when offline.
  • +
  • * Share your collections to others with a permalink.
  • +
+
+

+ WHERE IS MARKONE? +
+ MARKONE is available as a web app and a browser extension for now. +

+
+

+ TECHNICAL STUFF +
+ Source code, as well as hosting guide for MARKONE is{" "} + available here. +
+

+
+
+ ); +} + +export const Route = createFileRoute("/")({ + component: Index, +}); diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/bookmark.ts b/src/bookmark.ts new file mode 100644 index 0000000..45205b7 --- /dev/null +++ b/src/bookmark.ts @@ -0,0 +1,18 @@ +type BookmarkKind = "link" | "placeholder"; + +interface LinkBookmark { + kind: "link"; + id: string; + title: string; + url: string; +} + +interface PlaceholderBookmark { + id: string; + kind: "placeholder"; +} + +type Bookmark = LinkBookmark | PlaceholderBookmark; +type BookmarkId = Bookmark["id"]; + +export type { Bookmark, BookmarkId, BookmarkKind, LinkBookmark }; diff --git a/src/components/button.tsx b/src/components/button.tsx new file mode 100644 index 0000000..b0a9fb3 --- /dev/null +++ b/src/components/button.tsx @@ -0,0 +1,21 @@ +import clsx from "clsx"; + +function Button({ + className, + ...props +}: React.DetailedHTMLProps< + React.ButtonHTMLAttributes, + HTMLButtonElement +>) { + return ( +