diff --git a/package.json b/package.json
index 414069727..2b87c7c24 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
"diff": "^5.1.0",
"idb-keyval": "^6.2.0",
"mm-jsr": "^3.0.2",
+ "nanoid": "^4.0.0",
"tauri-plugin-fs-watch-api": "github:tauri-apps/tauri-plugin-fs-watch",
"yjs": "^13.5.45"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 50e44ab65..ebc69a342 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,6 +10,7 @@ specifiers:
diff: ^5.1.0
idb-keyval: ^6.2.0
mm-jsr: ^3.0.2
+ nanoid: ^4.0.0
postcss: ^8.4.14
postcss-load-config: ^4.0.1
svelte: ^3.54.0
@@ -27,6 +28,7 @@ dependencies:
diff: 5.1.0
idb-keyval: 6.2.0
mm-jsr: 3.0.2
+ nanoid: 4.0.0
tauri-plugin-fs-watch-api: github.com/tauri-apps/tauri-plugin-fs-watch/7d63ad9dfd72ae6c2bb05c148f344adb0521ec3a
yjs: 13.5.45
@@ -948,6 +950,12 @@ packages:
hasBin: true
dev: true
+ /nanoid/4.0.0:
+ resolution: {integrity: sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==}
+ engines: {node: ^14 || ^16 || >=18}
+ hasBin: true
+ dev: false
+
/node-releases/2.0.9:
resolution: {integrity: sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==}
dev: true
diff --git a/src/lib/projects.ts b/src/lib/projects.ts
index f99326a88..b167ffbb6 100644
--- a/src/lib/projects.ts
+++ b/src/lib/projects.ts
@@ -3,6 +3,7 @@ import { writable } from "svelte/store";
export type Project = {
id: string;
+ title: string;
path: string;
};
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 57f1ec486..abdf39942 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -1,8 +1,60 @@
-
-
-
+
+
+
+
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index f8d634cc7..7b1ee2dc8 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -1,108 +1 @@
-
-
-
-
-
- {#if $showTimeline}
-
- {/if}
-
- {#each Object.entries($docs) as [filepath, doc]}
- -
-
- {filepath}
-
- {value ? doc.at(value).toString() : doc.toString()}
-
-
-
- {/each}
-
+overview page
diff --git a/src/routes/projects/[id]/+page.svelte b/src/routes/projects/[id]/+page.svelte
new file mode 100644
index 000000000..8a2c77f59
--- /dev/null
+++ b/src/routes/projects/[id]/+page.svelte
@@ -0,0 +1,92 @@
+
+
+
+ {#if $showTimeline}
+
+ {/if}
+
+ {#each Object.entries($docs) as [filepath, doc]}
+ -
+
+ {filepath}
+
+ {value ? doc.at(value).toString() : doc.toString()}
+
+
+
+ {/each}
+
diff --git a/src/routes/projects/[id]/+page.ts b/src/routes/projects/[id]/+page.ts
new file mode 100644
index 000000000..23711a89d
--- /dev/null
+++ b/src/routes/projects/[id]/+page.ts
@@ -0,0 +1,11 @@
+import { derived } from "svelte/store";
+import type { PageLoad } from "./$types";
+
+export const load: PageLoad = async ({ parent, params }) => {
+ const { projects } = await parent();
+ return {
+ project: derived(projects, (projects) =>
+ projects.find((project) => project.id === params.id)
+ ),
+ };
+};