Right now every entry lives at /#slug on the single index.html page (by design — see README: "a standard-library Python script and one HTML file"). That's great for the zero-dependency build, but #anchor URLs don't get indexed/shared well for SEO.
Proposal
Extend build.py to also emit a real subpage per entry:
entries/<slug>/index.html (or /<slug>/index.html at repo root) — same rendered content as the current #slug section, standalone page, own <title>/<meta description> pulled from the entry's title + "In one line".
- Keep the single
index.html register/index page as-is (don't remove it — it's the browsable list).
- Cross-link: subpage has a "back to index" link; index pills link to the subpage instead of (or in addition to) the
#slug anchor.
- No new dependencies — same html.escape/regex-based renderer, just called once per entry into its own file.
.nojekyll already present, so plain directories with index.html will serve fine on GitHub Pages.
Why
- Real canonical URLs per entry = indexable, shareable, better SEO than hash fragments.
- Doesn't change the authoring workflow — still "add one markdown file to entries/, push to main."
Not urgent — filed as a TODO, not blocking anything.
Right now every entry lives at
/#slugon the singleindex.htmlpage (by design — see README: "a standard-library Python script and one HTML file"). That's great for the zero-dependency build, but#anchorURLs don't get indexed/shared well for SEO.Proposal
Extend
build.pyto also emit a real subpage per entry:entries/<slug>/index.html(or/<slug>/index.htmlat repo root) — same rendered content as the current#slugsection, standalone page, own<title>/<meta description>pulled from the entry's title + "In one line".index.htmlregister/index page as-is (don't remove it — it's the browsable list).#sluganchor..nojekyllalready present, so plain directories withindex.htmlwill serve fine on GitHub Pages.Why
Not urgent — filed as a TODO, not blocking anything.