From 06be988b4df9177149f67c2fb3ff5e0394222132 Mon Sep 17 00:00:00 2001 From: thomasabishop Date: Fri, 7 Nov 2025 15:55:32 +0000 Subject: [PATCH] feat: final changes before first deploy --- README.md | 34 ++++++++++++- index.html | 28 +++++------ public/apple-touch-icon.png | Bin 0 -> 3273 bytes public/favicon-96x96.png | Bin 0 -> 1545 bytes public/favicon.ico | Bin 0 -> 15086 bytes public/favicon.svg | 3 ++ public/site.webmanifest | 21 ++++++++ public/vite.svg | 1 - public/web-app-manifest-192x192.png | Bin 0 -> 3545 bytes public/web-app-manifest-512x512.png | Bin 0 -> 15381 bytes src/components/EntryReferences.tsx | 40 ++++++++-------- src/containers/Entry.tsx | 4 +- src/containers/EntryMetadata.tsx | 23 ++++++++- src/containers/RecentEdits.tsx | 4 +- src/pages/home.tsx | 72 ++++------------------------ src/templates/EntryTemplate.tsx | 10 +++- 16 files changed, 132 insertions(+), 108 deletions(-) create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-96x96.png create mode 100644 public/favicon.ico create mode 100644 public/favicon.svg create mode 100644 public/site.webmanifest delete mode 100644 public/vite.svg create mode 100644 public/web-app-manifest-192x192.png create mode 100644 public/web-app-manifest-512x512.png diff --git a/README.md b/README.md index 402ec4d..bbca9bf 100644 --- a/README.md +++ b/README.md @@ -1 +1,33 @@ -TBC +# eolas-app + +A React web app that serves as the frontend for my Zettelkasten, Eolas. + +eolas-app is a constituent part of my knowledge management system comprising [eolas](https://forgejo.systemsobscure.net/thomasabishop/eolas), +[eolas-db](https://forgejo.systemsobscure.net/thomasabishop/eolas-db), and [eolas-api](https://forgejo.systemsobscure.net/thomasabishop/eolas-api). + +It sources its data from +[eolas-api](https://forgejo.systemsobscure.net/thomasabishop/eolas-api) also +running on my VPS. + +## Local development + +```sh +npm install +npm run dev +``` + +This will use Vite to start the application at `http://localhost:5173`. The +application requires a local instance of `eolas-api` to be running, specified +via the environment variable `VITE_EOLAS_API_ENDPOINT` in a `.env`. + +Alternatively use the production API URL. + +## Deployment + +The application is deployed to my remote VPS, residing at `/var/www/eolas-app`. + +It is publicly accessible at +[eolas.systemsobscure.net](https://eolas.systemsobscure.net). + +Deployment is automated via a [Forgejo action](https://forgejo.systemsobscure.net/thomasabishop/eolas-app/src/branch/main/.forgejo/workflows/deploy.yaml) that builds the Webpack bundle +and transfers it to the VPS. Deployment actions are always executed by the `deploy` user on the VPS. diff --git a/index.html b/index.html index 3dfebe1..0c6d8e7 100644 --- a/index.html +++ b/index.html @@ -1,20 +1,18 @@ - - - - - - - Vite + React + TS - + + + + + + + E贸las + + + +
+ + - -
- - diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8472f89ee972908984b5157909775b8cb6e11aec GIT binary patch literal 3273 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 Q0S?H?!OgyYAL-)%0G4$odH?_b literal 0 HcmV?d00001 diff --git a/public/favicon-96x96.png b/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9756b1e871441095526d01c58fcda9018d1213 GIT binary patch literal 1545 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 Q-zF7LepF(JWe#)y1C22)>;M1& literal 0 HcmV?d00001 diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..e63e504 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..ccf313a --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "MyWebSite", + "short_name": "MySite", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/web-app-manifest-192x192.png b/public/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..1e521914e8c52316bdb7dd61909f8673888795dc GIT binary patch literal 3545 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 literal 0 HcmV?d00001 diff --git a/public/web-app-manifest-512x512.png b/public/web-app-manifest-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..295a1918c31193a6b2fe37b50230ae08aec591e6 GIT binary patch literal 15381 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 literal 0 HcmV?d00001 diff --git a/src/components/EntryReferences.tsx b/src/components/EntryReferences.tsx index 458fd4f..607b208 100644 --- a/src/components/EntryReferences.tsx +++ b/src/components/EntryReferences.tsx @@ -22,24 +22,6 @@ export default function EntryReferences({ entryTitle }) { return (
-
-

Tags

- - {tags?.count} - -
-
- {tags?.data.map((item, i) => ( - - {item} - - ))} -
-

Incoming links

@@ -59,9 +41,7 @@ export default function EntryReferences({ entryTitle }) { ))}
-
-

Outgoing links

@@ -82,6 +62,26 @@ export default function EntryReferences({ entryTitle }) { ))}
+ +
+
+

Tags

+ + {tags?.count} + +
+
+ {tags?.data.map((item, i) => ( + + {item} + + ))} +
+
) } diff --git a/src/containers/Entry.tsx b/src/containers/Entry.tsx index 7d82106..757be3f 100644 --- a/src/containers/Entry.tsx +++ b/src/containers/Entry.tsx @@ -2,7 +2,7 @@ import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/componen import EntryBody from "@/components/EntryBody" import EntryMetadata from "@/containers/EntryMetadata" -export default function Entry({ entryTitle, entryBody, isLoading }) { +export default function Entry({ entryTitle, entryBody, history, metadata, isLoading }) { return ( @@ -13,7 +13,7 @@ export default function Entry({ entryTitle, entryBody, isLoading }) {
- +
diff --git a/src/containers/EntryMetadata.tsx b/src/containers/EntryMetadata.tsx index e169222..21d91b6 100644 --- a/src/containers/EntryMetadata.tsx +++ b/src/containers/EntryMetadata.tsx @@ -2,8 +2,10 @@ import EntryReferences from "@/components/EntryReferences" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { Bookmark } from "lucide-react" import { History } from "lucide-react" +import { Braces } from "lucide-react" -export default function EntryMetadata({ entryTitle }) { +export default function EntryMetadata({ entryTitle, history, metadata }) { + console.log(history) return ( @@ -22,13 +24,30 @@ export default function EntryMetadata({ entryTitle }) { History + + + + Metadata +
- + +
+

Last modified: {history.lastModified}

+
+
+ +
+

Size on disk: {metadata.fileSize} B

+
+
) diff --git a/src/containers/RecentEdits.tsx b/src/containers/RecentEdits.tsx index a4e0865..55c64a7 100644 --- a/src/containers/RecentEdits.tsx +++ b/src/containers/RecentEdits.tsx @@ -22,7 +22,7 @@ const columns = [ }, cell: ({ cell, row }) => { return ( - + {row.original.title} @@ -46,7 +46,6 @@ export default function RecentEdits() { queryFn: () => api.get("/entries?limit=20&sort=date").then((res) => res.data), }) - console.log(data) const parsed = data?.data?.map((entry) => { const [date, time] = entry?.last_modified?.split(" ") return { @@ -57,6 +56,7 @@ export default function RecentEdits() { year: "numeric", }), time: time, + link: entry.title, } }) diff --git a/src/pages/home.tsx b/src/pages/home.tsx index aef46f3..9548fb6 100644 --- a/src/pages/home.tsx +++ b/src/pages/home.tsx @@ -1,8 +1,5 @@ import MainTemplate from "@/templates/MainTemplate" import RecentEdits from "@/containers/RecentEdits" -import { HoverCard, HoverCardContent, HoverCardTrigger } from "@/components/ui/hover-card" - -import { Button } from "@/components/ui/button" export default function Home() { return ( <> @@ -16,75 +13,22 @@ export default function Home() {

- {/* - - - - - - -

-
-

馃嚠馃嚜

-

- Irish for "knowledge", especially knowledge gained - through practical experience. -

-
-
- - - - */} - E贸las is{" "} + Hi,{" "} - my - {" "} - technical knowledge management system, or "second-brain", comprising - notes from the study of software engineering and computer - science.{" "} -

- -

- 馃嚠馃嚜 The word e贸las (pronounced "aw-lus") is Irish for - "knowledge", especially knowledge gained through practical experience. - 馃嚠馃嚜 + I'm Thomas + + , E贸las is my technical knowledge management system, or + "second-brain", comprising notes from the study of software + engineering and computer science.{" "}

- {/* - -
-

- {" "} - 馃嚠馃嚜 "E贸las" is Irish for "knowledge", - especially knowledge gained through practical experience. -

-
- - -I'm - - Thomas - - . - - - */}
diff --git a/src/templates/EntryTemplate.tsx b/src/templates/EntryTemplate.tsx index 710b6cf..d8bbc9a 100644 --- a/src/templates/EntryTemplate.tsx +++ b/src/templates/EntryTemplate.tsx @@ -16,7 +16,15 @@ export default function EntryTemplate() { return ( {entry?.replace(/_/g, " ")}} - pageBody={} + pageBody={ + + } /> ) }