From 7c081ae7495d19ff50508ff69912417e7873551c Mon Sep 17 00:00:00 2001 From: whitlocktech Date: Sat, 27 Jun 2026 11:25:15 -0500 Subject: [PATCH] Wiki Phase 3: internal links, backlinks, and tags Connectivity phase of the wiki upgrade (see WIKI_UPGRADE.md). Schema (additive new tables): wiki_tags, wiki_page_tags, wiki_links. Internal links & backlinks: - new wiki.links.js parses a saved body for /wiki/ (and data-wiki-slug) targets; wiki_links is rebuilt on every save - article shows a "Linked from" section (published backlinks) and renders links to non-existent pages as red links (server returns missing_links) - editor gains an internal-link picker listing existing pages Tags: - pages accept a tags[] array; tags upsert on save, page tag-set is replaced, and orphaned tags are auto-pruned (on save and delete) - public/admin list filter by ?tag=; /wiki/tags lists tags with published counts - article shows tag chips; the index has a flat tag-filtered view; editor has a comma-separated tags field Verified end-to-end: A->B backlink appears, red link detected, link index rebuilds on edit, tag filtering + chips + pruning all work. Co-Authored-By: Claude Opus 4.8 --- WIKI_UPGRADE.md | 9 +- client/src/api/client.js | 10 +- client/src/components/RichTextEditor.jsx | 48 ++++++- client/src/routes/admin/views/WikiEditor.jsx | 29 ++++- client/src/routes/wiki/Wiki.jsx | 74 +++++++---- client/src/routes/wiki/WikiArticle.jsx | 47 ++++++- client/src/styles/theme.css | 68 +++++++++- server/db/schema.sql | 24 ++++ server/src/model/wiki/wiki.db.js | 122 +++++++++++++++--- server/src/model/wiki/wiki.links.js | 15 +++ server/src/model/wiki/wiki.model.js | 96 +++++++++++--- .../src/router/v1/admin/admin.controller.js | 16 +++ server/src/router/v1/admin/admin.routes.js | 5 + .../src/router/v1/public/public.controller.js | 20 ++- server/src/router/v1/public/public.routes.js | 3 +- 15 files changed, 516 insertions(+), 70 deletions(-) create mode 100644 server/src/model/wiki/wiki.links.js diff --git a/WIKI_UPGRADE.md b/WIKI_UPGRADE.md index 3a95ffe..e66e0a4 100644 --- a/WIKI_UPGRADE.md +++ b/WIKI_UPGRADE.md @@ -309,10 +309,17 @@ phase if preferred). Do not merge a phase that hasn't been verified. `