Files
thor/TODOS.md
T
2026-07-14 18:09:56 -04:00

2.7 KiB

  • README.md
    • "Zero is beautiful"
  • Content-hash fingerprinting for CSS and JS cache busting
  • Enable configuration to opt-out of features, particular pre/post processors.
  • proper date/time/now object.
  • Footer isn't centered properly.
  • mustache data keys for opengraph, etc.
  • Block attributes on code fences ({ #ex-1 }) — hello-world.md
  • Emoji shortcodes (:shrug: etc.) — 2 instances
    • Backslash in shrug not visible.
  • include-code shortcode ({{< include-code ... >}}) — i-ported-fd-to-odin
  • Nix build integration — main flake runs thor + tailwindcss instead of Hugo
  • OpenGraph meta tags
  • copy all files from static to public.
  • ensure sidenote numbers render in display order and not in declaration order.
  • Search up for thor.json files.
  • OpenGraph meta tags — verify all fields match production site
  • set opengraph tags / description automatically if unset. (Like hugo does)
  • Table of contents support.
  • Nav items should be active when the current page is selected.
  • Theme selector for syntax highlighting.
  • Search for grammars in multiple places
  • Download missing grammars.
  • Syntax highlighting in production: CI (nix build on ubuntu-latest) has no grammar .sos and a machine-specific QUERIES_PATH nix store hash, so the deployed site renders unhighlighted. Provide grammars + queries as nix build inputs and pass paths to thor at runtime (env vars/flags).
  • Durable highlight paths: read GRAPHS_PATH/QUERIES_PATH from env vars set by the flake instead of hardcoded nix store hashes, so they survive nix flake update and let the grammar/query version-mismatch detector fire automatically.
  • Unit tests for highlighting helpers: capture_name_to_css, escape_html, unescape_html, extract_query_token, helix_version_from_path.
  • <pre><code> blocks need to set background to theme background, regardless of prefers-dark. (or use a different theme)
  • -watch flag
    • basic poll loop
    • filesystem poll loop
    • event based
  • Free cmark HTML output (body_html) — cmark allocates via C malloc, not the arena, so it leaks per iteration in watch mode
  • commands
  • Add spall and find ways to reduce run time. (Getting close to 1/2sec here.)
  • Review every file in thor
    • Review alerts.odin
    • Review content.odin
    • Review emoji.odin
    • Review feed.odin
    • Review footnotes.odin
    • Review frontmatter.odin
    • Review main.odin
    • Review main_test.odin
    • Review mustache_test.odin
    • Review render.odin
    • Review site.odin