This fork builds on dullage/flatnotes with a focus on advanced reading, layout, and deployment controls. All changes are optional, driven through scripts or the new Settings UI, so upstream behaviour remains available if you leave the toggles off.
- Auto-generated Table of Contents for note viewer pages, with sticky navigation, slugged heading anchors, and a user setting to hide/show the TOC globally.
- Math formula rendering for
$...$inline formulas and$$...$$display formulas using KaTeX, while leaving fenced code blocks untouched. - Toast Viewer Options exposed via settings:
- Ctrl + S behaviour (save vs. strikethrough).
- Text justification.
- Paragraph, bullet-list, and numbered-list spacing tweaks.
- Browser Tab Customisation:
- Editable site name, used in document titles.
- Option to hide the favicon/icon links at runtime.
- Logo Controls allowing the “f” mark, the “flatnotes” wordmark, or both to be hidden without touching SVGs.
All toggles persist to /config/settings.json, making them container-friendly:
- Compact header spacing.
- Wider application shell (
~80vw) for desktops. - Search list customisations:
- Compact result rows.
- Hide
#tags.
- Note-level TOC visibility.
- New
Settingsroute (and menu item) housing every toggle plus the site-name editor. - Each toggle updates individually using partial PUTs, so preferences do not clobber each other.
server/settings_manager.pyreads/writes/config/settings.json(JSON, not CommonJS). On start it auto-creates the file with defaults.- Settings API now exposes
GET /api/settingsandPUT /api/settings, the latter accepting partial payloads. - Front-end state lives in Pinia (
globalStore.settings) and is bootstrapped alongside the existing/api/configcall. - Markdown viewer content is preprocessed through
client/components/toastui/mathRenderer.jsbefore Toast UI parses it, so formulas render consistently in note view mode.