How thisis-developer/markdown-viewer works
Markdown Viewer is a local-first Markdown workspace delivered as a browser/PWA app and a Neutralino desktop app. Users open or create Markdown, edit and preview it, organize documents locally, then export or optionally share snapshots or collaborate in live rooms. The README documents workspace, rendering, review, import/export, and desktop workflows, but the sampled source does not expose the browser app’s central orchestration, so several workflow links rely on README statements. Sharing and SEO have clearer server-side boundaries; desktop packaging scripts are intentionally excluded.
Main entry points: server-render.mjs SEO renderer · [[id]].js Media route · [[room]].js Live room API · _middleware.js Localized response
Components 18
Editing workspace
- Browser app
- File opening
browser-drop-source.js - Workspace storage
workspace-storage.js - Visual settings
visual-settings-store.js
Preview and export
- Markdown preview
preview-worker.js - Document outline
src/document-toc.mjs - Document export
Sharing services
- Share snapshots
functions/api/share/[[id]].js - Media service
functions/api/image/[[id]].js - Media route
functions/api/media/[[id]].js - Live room API
functions/live-room/[[room]].js - Live room worker
workers/live-room-worker.js
App delivery
- Desktop app
desktop-app/resources/js/main.js - Localized response
functions/_middleware.js - SEO renderer
seo/server-render.mjs - Locale catalog
seo/locales.mjs - Starter content
seo/welcome-content.mjs
Other components
- User
Connections 16
- User → Browser app: opens app
README.md - User → Desktop app: opens app
README.md - Browser app → File opening: opens files
README.md - Browser app → Workspace storage: saves documents
README.md - Browser app → Visual settings: sets appearance
- Browser app → Markdown preview: renders preview
README.md - Browser app → Document outline: navigates headings
README.md - Browser app → Document export: exports documents
README.md - Browser app → Share snapshots: creates snapshots
README.md - Browser app → Live room API: starts live share
README.md - Browser app → Media route: requests media
- Media route → Media service: routes requests
functions/api/media/[[id]].js - Live room API → Live room worker: dispatches room
- Localized response → SEO renderer: renders response
functions/_middleware.js - SEO renderer → Locale catalog: gets locale
seo/server-render.mjs - SEO renderer → Starter content: renders starter
seo/server-render.mjs