Step 4 of #573, explicitly deferred by PR #574. Filing so it doesn't stay parked only in a merged PR body.
What
PR #574 closed #573 (the structured per-plugin env-knob reference) but left its last step:
Issue #573's step 4 (publishing docs/plugin-env.md on the Pages options-doc site) is explicitly sequenced behind PR #570's flake.nix / workflow changes and is not touched by this PR.
docs/plugin-env.md exists and is substantial (~15 KB), but it's readable only in the repo. The options reference next to it is published.
The stated prerequisite is now met
#574 sequenced this behind PR #570, which merged 2026-07-28. So this is unblocked and actionable.
Where it goes
.github/workflows/options-doc.yml already does the whole job for the options reference — it's a leaf workflow (deliberately not part of nix flake check), builds nix build .#options-doc, and assembles _site:
mkdir -p _site
cp result/share/doc/trollshell/options.html _site/options.html
cp result/share/doc/trollshell/options.md _site/options.md
cp result/share/doc/trollshell/options.html _site/index.html
So the site is currently single-page: index.html is a copy of options.html.
Severity
Low — docs reach, not correctness. Worth doing because the file is already written; the only thing missing is the last hop.
Recommendation
Two design points worth settling before someone just bolts on a cp:
- Who renders the Markdown?
plugin-env.md is a hand-written repo doc, not a nix-generated artifact, so it isn't inside result/. Either teach the options-doc derivation to render it too (keeps one source of truth for styling, and the workflow stays a dumb copier), or render it in the workflow. Prefer the former — it matches how options.html is produced and keeps the two pages visually consistent.
- The root page. Once there are two documents,
index.html being a byte-copy of options.html stops making sense. Give the site a small landing page that links both, and drop the copy.
Refs #573, #574, #570, #540.
Step 4 of #573, explicitly deferred by PR #574. Filing so it doesn't stay parked only in a merged PR body.
What
PR #574 closed #573 (the structured per-plugin env-knob reference) but left its last step:
docs/plugin-env.mdexists and is substantial (~15 KB), but it's readable only in the repo. The options reference next to it is published.The stated prerequisite is now met
#574 sequenced this behind PR #570, which merged 2026-07-28. So this is unblocked and actionable.
Where it goes
.github/workflows/options-doc.ymlalready does the whole job for the options reference — it's a leaf workflow (deliberately not part ofnix flake check), buildsnix build .#options-doc, and assembles_site:So the site is currently single-page:
index.htmlis a copy ofoptions.html.Severity
Low — docs reach, not correctness. Worth doing because the file is already written; the only thing missing is the last hop.
Recommendation
Two design points worth settling before someone just bolts on a
cp:plugin-env.mdis a hand-written repo doc, not a nix-generated artifact, so it isn't insideresult/. Either teach theoptions-docderivation to render it too (keeps one source of truth for styling, and the workflow stays a dumb copier), or render it in the workflow. Prefer the former — it matches howoptions.htmlis produced and keeps the two pages visually consistent.index.htmlbeing a byte-copy ofoptions.htmlstops making sense. Give the site a small landing page that links both, and drop the copy.Refs #573, #574, #570, #540.