Skip to content

feat: pluggable wiki export/share system (zip + PDF)#54

Merged
aniongithub merged 1 commit into
mainfrom
feature/export-share
Jun 2, 2026
Merged

feat: pluggable wiki export/share system (zip + PDF)#54
aniongithub merged 1 commit into
mainfrom
feature/export-share

Conversation

@aniongithub
Copy link
Copy Markdown
Owner

Summary

Adds a pluggable export system that lets users share wiki pages as self-contained archives. The system follows wikilinks (BFS traversal) from a starting page to collect pages with no broken links.

Features

Export depth control

Depth Meaning
0 Just the selected page
1 The page + all pages it links to
N N hops of outgoing links
-1 Unlimited — follow all reachable links

Pluggable format system

Format Description Requirements
zip Archive of markdown files + assets None
pdf Multi-page PDF with table of contents Chrome, Edge, or Chromium on $PATH

Backend

  • Sharer interface and registry (internal/share/share.go)
  • Zip exporter with include_assets and flatten settings
  • PDF exporter via chromedp + goldmark (registers only if browser found)
  • BFS wikilink traversal in wiki.ExportPages (depth: -1/0/N)
  • HTTP endpoints: GET /api/export, GET /api/export/formats
  • MCP tool: export_pages

WebUI

  • Export button in page header (share icon)
  • ExportPanel with depth picker and format selection
  • Per-plugin settings in Settings panel (generic schema renderer)

DevContainer

  • Symlinks Playwright's bundled Chromium to /usr/local/bin for PDF support
  • Fixes git safe.directory for VCS stamping in builds

Docs

  • README updated with Export & Share section
  • 8 feature screenshots captured via Playwright (docs/screenshots/)
  • Reusable screenshot script (tools/screenshots.mjs)

Screenshots

Page view Dark theme
page-view dark
Search + Graph Graph view
search graph
Export panel Settings
export settings

@aniongithub aniongithub force-pushed the feature/export-share branch from 3784049 to e9d6c92 Compare June 2, 2026 05:46
Add a pluggable export system that lets users share wiki pages as
self-contained archives. The system follows wikilinks (BFS traversal)
from a starting page to collect pages with no broken links.

Backend:
- Sharer interface and registry (internal/share/share.go)
- Zip exporter with include_assets and flatten settings
- PDF exporter via chromedp + goldmark (registers only if browser found)
- BFS wikilink traversal in wiki.ExportPages (depth: -1/0/N)
- HTTP endpoints: GET /api/export, GET /api/export/formats
- MCP tool: export_pages

WebUI:
- Export button in page header (ShareIcon)
- ExportPanel with depth picker and format selection
- ShareSettings in Settings panel (generic per-plugin schema renderer)

DevContainer:
- Symlink Playwright Chromium to /usr/local/bin for PDF support
- Fix git safe.directory for VCS stamping in builds

Docs:
- README updated with Export & Share section and screenshots
- Playwright screenshot script (tools/screenshots.mjs)
- 8 feature screenshots in docs/screenshots/
@aniongithub aniongithub force-pushed the feature/export-share branch from e9d6c92 to 4241b67 Compare June 2, 2026 06:03
@aniongithub aniongithub merged commit 18035ca into main Jun 2, 2026
1 check passed
@aniongithub aniongithub deleted the feature/export-share branch June 2, 2026 06:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant