Aleph symbol

THE INFINITE ARCHIVE

formless and empty

I saw all the mirrors on the Earth, and none of them reflected me.

Fingerprint: cf3c405 — Drift: 1d · 0.90h · +0.1h · 458 wc

Improving Ordinal

Ideas to improve Ordinal

Created: 2025-01-01
Domain: Development
Division: Writing
Modified: 2026-01-28
RSS: RSS

This page collects known issues in Ordinal and outlines possible directions for improvement.

Markdown Rendering

  • Bold and italics parsing relies on simple regular expressions. Certain edge cases break, especially around punctuation, underscores, and code-like text.
  • The parser handles frontmatter, Markdown transformation, TOC collection, and backlink recording in a single pass. Ordering matters, and small changes can break unrelated behavior.

  • External links open in new tabs but do not currently add rel="noopener noreferrer".

Rendering Pipeline

  • There are no incremental builds. Every run walks and renders everything in scope.
  • Template validation is minimal. Missing templates log errors and produce empty output instead of failing fast.
  • Sass is a hard runtime dependency.

File Management

  • A category only exists if a folder contains a matching section file. You cannot define a category independently.
  • Section files are regenerated on every run, even when their content has not changed.
  • Orphan cleanup matches files by stem only. If two categories contain entries with the same stem, the wrong HTML file can be deleted.
  • Media files are copied on every build. There is no checksum or timestamp comparison to skip unchanged files.

Context Assembly

  • Slug handling is inconsistent. Some paths include category prefixes, others do not.
  • Several context fields exist primarily to satisfy current templates. Template changes can quietly break context assumptions.
  • Most failures log and fall back to defaults. This keeps the site building but makes data issues easy to miss.
  • last_modified conflates two meanings: rebuild time and content change time. Rebuild time currently overwrites author intent.

Taxonomy

  • get_articles_list() scans the filesystem on every call, rereading the same files repeatedly.
  • Only content/articles participates in taxonomy. Other categories are excluded unless logic is duplicated.
  • There is no shared cache between listing passes.

Revisions

  • The fingerprint ignores changes to domain, tags, division
  • Renames preserve GUID identity but do not record rename events.
  • --commit-all writes many rows one by one. SQLite handles it, but the write pattern is inefficient.
  • Schema migration is additive only. There is no mechanism for altering existing tables. this should be a priority.

Snapshot System

  • Snapshots only store files. There is no metadata describing what changed or why.
  • Every snapshot copies all HTML files, even when nothing changed.
  • Restoring a snapshot overwrites public/ directly. The previous output is not preserved. Which is very ironic.

General Directions

  • Seed once from frontmatter, then treat the database as the source of truth. (In Progress)
  • Extend revision database to help with file change detection to avoid unnecessary work.
  • Make failure modes obvious where correctness matters.

Future Refactor

markdown_parser.py mixes frontmatter parsing, markdown transforms, TOC building, and backlink tracking.

This could become:

frontmatter.py,

markdown_render.py,

toc_builder.py,

backlinks.py,

html_renderer.py handles template rendering, static copying, build orchestration, and commit flows.

This could become:

render_pipeline.py,

static_assets.py,

build_index.py,

commit_flow.py (already separate, but still heavily tied in)

The goal should be to make each module have one responsibility so future changes don't break unrelated behavior

251ac131a52644c3806a4c6798ee8ee2

Connections

Outbound 1
Inbound 1

Outbound

Referenced by

Revisions

MODIFIED cf3c405 2026-01-26 03:57:25
spell check
MODIFIED fd736b8 2026-01-25 20:56:03
Added related wikilink
MODIFIED 82f60b1 2026-01-11 11:44:39
consolidated known issues into one file
MODIFIED 8b528ea 2026-01-10 06:02:55
Hashes are SHA256
MODIFIED ff8c319 2025-01-01 00:00:00
initial seed