FUNDOCS
FUNDOCS is Funday’s gated developer wiki. It follows the same integration pattern as Hermes: FUNDEV owns the chrome, the content engine runs in an iframe behind nginx.
URL map
| URL | Serves | Notes |
|---|---|---|
/dev/docs | SvelteKit (funday-frontend) | Hermes shell: drawer + iframe host |
/dev/docs/wiki/ | Quartz (quartz-wiki.service :8080) | Wiki SPA, explorer, Ask FAB, comments |
/api/dev/docs-assistant | SvelteKit SSE | Read-only OMP assistant over dev/docs/content |
/api/dev/remark42-profile | SvelteKit JSON | Nakama username + avatar for Remark42 embed |
nginx (scripts/nginx/funday-traefik-subpaths.conf):
^~ /dev/docs/wiki/→ Quartz (withauth_request)/dev/docs(no/wiki) → Traefik → SvelteKit:3000
Quartz runtime base path: QUARTZ_RUNTIME_BASE_PATH=/dev/docs/wiki (quartz-wiki.service).
FUNDEV shell
Route: frontend/src/routes/dev/docs/+layout.svelte
- Full-height iframe →
/dev/docs/wiki/… - Ask docs FAB (
#docs-assistant-trigger) lives inside Quartz viaDocsAssistantmounted byDevDocsFrame - Citation links stay in-wiki (
docsAssistant.inline.tsrewrites to/dev/docs/...) - Wiki SPA posts
fundoocs-navon navigation → parent URL stays in sync - AI model: /dev/ai → use case FUNDOCS Assistant (
docsAssistant)
Sidebar label and breadcrumbs: FUNDOCS (devTools.ts, dev/+layout.svelte).
Quartz wiki (iframe content)
Source: funday/dev/docs/content
Config: funday/dev/docs/quartz.config.yaml
pageTitle: FUNDOCS,baseUrl: funday.gg/dev/docs/wiki- Frame:
DevDocsFrame— article chrome + sticky rails; FUNDEV chrome stays outside the iframe - Stock Quartz
page-title/ header toolbar / footer chrome disabled or removed for embed; Ask is QuartzDocsAssistant - Explorer sidebar title: FUNDOCS (
i18n/locales/en-US.ts)
Rebuild after content or Quartz changes:
cd /home/usr/funday/dev/docs
npx quartz build
sudo systemctl restart quartz-wikiDeploy frontend after shell/assistant/API changes:
cd /home/usr/funday/frontend && npm run deploySPA navigation
Quartz SPA (spa.inline.ts) uses data-basepath="/dev/docs/wiki". Explorer and in-wiki links must stay under that prefix; otherwise the router falls back to full location.assign (feels like “needs refresh”).
Iframe → parent sync: on each nav event the wiki posts:
window.parent.postMessage({ type: "fundoocs-nav", slug }, origin)