···2626 private: "private",
2727 tagline: "Shared knowledge, owned by you",
2828 heroDescription:
2929- "Collaborative wikis on the open web. Your contributions belong to you, not to any platform.",
2929+ "Build a knowledge base with friends, for your hobbies, activism, or anything else!<br>Each wiki is yours, built on ATProto, data is stored on your personal data server.",
3030 createAWiki: "Create a wiki",
3131 exploreWikis: "Explore wikis",
3232 explorePublicWikis: "Explore public wikis",
···3737 recentlyUpdated: "Recently updated",
3838 recentlyCreated: "Recently created",
3939 exploreMore: "Explore more",
4040+ step1: "Log in with your ATProto account",
4141+ step2: "Create a wiki or get invited to collaborate",
4242+ step3: "Start editing!",
4043 },
4144 pagination: {
4245 previous: "Previous",
···7174 descriptionPlaceholder: "What is this wiki about?",
7275 language: "Language",
7376 visibility: "Visibility",
7777+ privateWarning:
7878+ "Your wiki will be hidden on Lichen, but the underlying records on your PDS remain publicly accessible. Private data on ATProto is not yet available, fully private wikis will come when the protocol supports it.",
7479 create: "Create Wiki",
7580 cancel: "Cancel",
7681 },
+7-2
src/lib/i18n/fr.ts
···2525 noWikisYet: "Aucun wiki pour le moment.",
2626 public: "public",
2727 private: "privé",
2828- tagline: "Écrivez ensemble, tout vous appartient",
2828+ tagline: "Plateforme libre de savoirs collaboratifs",
2929 heroDescription:
3030- "Des wikis collaboratifs sur le web libre. Vos contributions vous appartiennent, sans dépendre d'aucune plateforme.",
3030+ "Ecrivez avec vos amis et partagez, sur vos passions, le militantisme, ou n'importe quoi d'autre.<br>Construit sur ATProto, vos contributions vous appartiennent et sont stockées sur votre PDS.",
3131 createAWiki: "Créer un wiki",
3232 exploreWikis: "Explorer les wikis",
3333 explorePublicWikis: "Explorer les wikis publics",
···3838 recentlyUpdated: "Mis à jour récemment",
3939 recentlyCreated: "Créés récemment",
4040 exploreMore: "Explorer plus",
4141+ step1: "Connectez-vous avec votre compte ATProto",
4242+ step2: "Créez un wiki ou faites-vous inviter pour collaborer",
4343+ step3: "Commencez à éditer !",
4144 },
4245 pagination: {
4346 previous: "Précédent",
···7275 descriptionPlaceholder: "De quoi parle ce wiki ?",
7376 language: "Langue",
7477 visibility: "Visibilité",
7878+ privateWarning:
7979+ "Votre wiki sera masqué sur Lichen, mais les enregistrements sur votre PDS restent accessibles publiquement. Les données privées sur ATProto ne sont pas encore disponibles, les wikis entièrement privés arriveront quand le protocole le permettra.",
7580 create: "Créer le wiki",
7681 cancel: "Annuler",
7782 },
···1010 if (!db) {
1111 db = new Database(DB_PATH);
1212 initSchema(db);
1313- seedIfEmpty(db);
1313+ if (process.env["DEV_PDS_URL"]) seedIfEmpty(db);
1414 }
1515 return db;
1616}
+3-1
src/server/db/queries/bookmark.ts
···5050 const db = getDb();
5151 return db
5252 .query(
5353- `SELECT w.*, COUNT(n.slug) AS note_count
5353+ `SELECT w.*, COUNT(n.slug) AS note_count,
5454+ pc.handle as owner_handle, pc.avatar as owner_avatar
5455 FROM bookmarks b
5556 JOIN wikis w ON w.at_uri = b.wiki_at_uri
5657 LEFT JOIN notes n ON n.wiki_slug = w.slug
5858+ LEFT JOIN profile_cache pc ON pc.did = w.did
5759 WHERE b.did = ?
5860 GROUP BY w.slug
5961 ORDER BY b.created_at DESC`,
+11-3
src/server/db/queries/wiki.ts
···4455export interface WikiWithNoteCount extends WikiRow {
66 note_count: number;
77+ owner_handle: string | null;
88+ owner_avatar: string | null;
79}
810911export type WikiSort = "updated" | "created";
···42444345 const wikis = db
4446 .query(
4545- `SELECT w.*, COUNT(n.slug) as note_count
4747+ `SELECT w.*, COUNT(n.slug) as note_count,
4848+ pc.handle as owner_handle, pc.avatar as owner_avatar
4649 FROM wikis w
4750 LEFT JOIN notes n ON n.wiki_slug = w.slug
5151+ LEFT JOIN profile_cache pc ON pc.did = w.did
4852 WHERE ${where}
4953 GROUP BY w.slug
5054 ORDER BY ${orderCol} DESC
···7983 const db = getDb();
8084 return db
8185 .query(
8282- `SELECT w.*, COUNT(n.slug) as note_count
8686+ `SELECT w.*, COUNT(n.slug) as note_count,
8787+ pc.handle as owner_handle, pc.avatar as owner_avatar
8388 FROM wikis w
8489 LEFT JOIN notes n ON n.wiki_slug = w.slug
9090+ LEFT JOIN profile_cache pc ON pc.did = w.did
8591 WHERE w.did = ?
8692 GROUP BY w.slug
8793 ORDER BY w.updated_at DESC`,
···9399 const db = getDb();
94100 return db
95101 .query(
9696- `SELECT w.*, COUNT(n.slug) as note_count
102102+ `SELECT w.*, COUNT(n.slug) as note_count,
103103+ pc.handle as owner_handle, pc.avatar as owner_avatar
97104 FROM wikis w
98105 LEFT JOIN notes n ON n.wiki_slug = w.slug
106106+ LEFT JOIN profile_cache pc ON pc.did = w.did
99107 INNER JOIN memberships m ON m.wiki_slug = w.slug AND m.did = ?
100108 WHERE w.did != ?
101109 GROUP BY w.slug