LeoVasanko ce69f69b0e Add font picker to site editor, neutral base banner styling
- Base stylesheet: per-family font variables (--font-source-sans etc.)
  with functional slots referencing them; --font-brand defaults to
  var(--font-heading). Restore Fraunces/Literata faces dropped in the
  font-set swap
- Site editor: stylized A button (always Fira Code) opens a font panel
  with body/heading/brand tabs; options render their own name in the
  candidate font at the target's size/weight; clicking the current pick
  clears it. Picks are stored as plain :root rows in the custom CSS,
  parsed and rewritten on change
- Base banner: drop black text-shadow on light background; legibility
  via a bottom scrim fading artwork into --bg. Purple keeps its own nav
  shadow
- Headings no longer accent-colored in base (moved to purple theme)
- Keep #pagerite-user custom CSS last in <head> at every mutation point
  so its :root rules win equal specificity (dev injects base/theme
  styles after the server-rendered tag)
2026-08-17 02:22:09 +00:00
2026-08-16 20:25:21 +00:00

Pagerite

A single-user CMS/blog. FastAPI serves HTML rendered in Python with html5tagger, content is persisted in a kanta database and rendered on the fly per request. Vue is used only for interactive bits (the editing tools), not for the public pages.

Running

uv run pagerite          # serves the built frontend
uv run scripts/devserver.py   # dev mode with auto reloads (no build needed)

The database lives in pagerite.kantadb in the working directory (PAGERITE_DB overrides). On startup, demo pages from pagerite/seed.py are added only if missing.

Editing

Click the 🖊️ pen on any page: the article pen opens the page editor (Markdown with live server-rendered preview over a WebSocket), the banner pen opens the site editor (site brand, banner HTML, and the page structure tree). Everything saves immediately — no save buttons.

See docs/design-principles.md for the design and AGENTS.md for the development conventions.

S
Description
No description provided
Readme
3.4 MiB
Languages
Python 48.9%
Vue 21.3%
JavaScript 18.1%
CSS 10.1%
HTML 1.6%