{% extends "base.html" %} {% block title %}{{ page_title or "Papers" }}{% endblock %} {% block body_class %}{{ body_class or "" }}{% endblock %} {% block extra_head %} {# @feat pwa: the
tags (manifest link, apple + theme-color meta) that make every paper page installable/standalone. theme-color is a single meta defaulting to light #ffffff (matching the manifest's theme_color in routes/docs.py:paper_manifest — keep them in lock-step); the resolver script below rewrites its content to the resolved theme's bg (#0d1117 when dark) before first paint, and theme.ts applyTheme() does the same at runtime. #} {# @feat dark-mode: the FOUC-free resolver — runs before first paint, reads localStorage.paperTheme (whitelist light/dark/system, else "light" — paper defaults to light regardless of OS, matching Datasette; dark/system are explicit opt-ins) and stamps so the --pp-* palette resolves on the first frame. Also rewrites the theme-color meta above to the resolved bg. theme.ts mirrors this key + whitelist + fallback for the runtime toggle. #} {{ datasette_paper_vite_entry(entrypoint) | safe }} {% endblock %} {% block content %} {% endblock %}