[V2:19] Add Theme Development Setup#12
Open
ritorhymes wants to merge 2 commits into
Open
Conversation
Render external requires entries as direct links without forcing Zola to resolve them as local pages. This supports targeted --only rendering, where cross-repo proposal dependencies can be rewritten to external URLs instead of local pages. Move the theme demo homepage badges into front matter, a homepage_badges macro, and theme-owned styles so the demo homepage stays markdown-friendly. Declare Zola 0.22.1 as the minimum supported version, enable bottom footnotes, and update markdown highlighting to the class-based config with github-light/dark themes and ABNF/CSL-JSON grammars.
This was referenced Jun 19, 2026
Add POSIX and PowerShell setup scripts for local theme development. The setup anchors build-eips through a manifest-bearing active proposal checkout, initializes the workspace, runs doctor, and keeps ACTIVE_REPO_ROOT available for ERCs or custom proposal checkouts. The docs describe the split between active repo Build.toml, workspace-local .build-eips.toml, and editable workspace/theme runtime behavior.
bd01be9 to
e5f4b13
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR is the theme-repo setup/documentation rollout for V2. It adds contributor README docs and POSIX/PowerShell
scripts/dev-setupwrappers without changing theme templates, styles, Zola config, syntax definitions, or rendering behavior.Because
theme/is not itself an active proposal repo, the wrappers assume this repo lives at<workspace>/themeand anchor setup through an active proposal checkout. By default that is<workspace>/EIPs(../EIPsfrom the theme repo), cloned fromhttps://github.com/eips-wg/EIPs.gitwhen missing.ACTIVE_REPO_ROOTcan instead select a manifest-bearing Git checkout, typically the workspace’s sibling EIPs or ERCs repo. The normal supported layout keeps the active proposal repo andtheme/under the same workspace root.The selected active checkout must contain
Build.toml. An explicitACTIVE_REPO_ROOTwithout that manifest fails with guidance to use a manifest-bearing EIPs/ERCs checkout. A default../EIPscheckout withoutBuild.tomlfails with an explicit rollout-pending message and directs contributors to setACTIVE_REPO_ROOTuntil the EIPs default branch carries the manifest.The wrappers reuse
build-eipsand Zola fromPATHor user-local installs when possible. They install a releasedbuild-eipsonly when needed, verified against release.sha256sidecars generated by the V2:17 checksum pipeline, and never build it from this checkout. They install Zola 0.22.1 only when it is missing, older, or unparseable; existing 0.22.1+ installs are reused, newer versions are reported and reused, and downloaded Zola archives are verified against per-platform hashes pinned in the scripts.The wrappers then run
build-eips -C "$ACTIVE_REPO_ROOT" init ...anddoctor; init failures stop setup, while doctor failures remain warnings rather than setup failures.The README documents the final post-manifest workspace model: active
Build.tomlversus workspace-local.build-eips.toml,[theme]as the initial clone/pin source whenworkspace/themeis missing, and the editable localworkspace/themecheckout used at runtime. It removes staging/production/parity workflow language and documents clean comparisons through--cleanand--remote-siblings. It also documents final CLI ordering: global--build-rootand--remote-siblingsoptions go before the command name, while--onlyis intentionally limited to local dirtybuild/serveflows.Review should focus on POSIX/PowerShell parity, release-binary versus local-source behavior, sidecar versus pinned-hash verification policies, Zola reuse behavior, active-repo/manifest handling, rollout-pending default behavior, flag passthrough, doctor warning behavior, and docs accuracy.
README.mdlocal-development documentation for the theme repo.scripts/dev-setupentrypoints for theme contributors.build-eips; verify downloaded release archives with.sha256sidecars; ensure a supported Zola is available; run workspace init; and run doctor.build-eipsand Zola fromPATHfirst, then from the default user-local install path, installing into a writable install directory only when needed.<workspace>/theme/.https://github.com/eips-wg/EIPs.gitas the default EIPs clone URL.Build.tomlafter resolving either the default or explicit active proposal checkout, with distinct actionable errors for explicit roots versus the rollout-pending default remote.ACTIVE_REPO_ROOTfor manifest-bearing sibling EIPs or ERCs checkouts.--templateand--platform-devflags through tobuild-eips init.Build.tomlversus.build-eips.toml, editable local theme behavior, serve/preview, base URL precedence, targeted rendering, and clean source/output comparisons.Review Notes
This is the theme repo setup/documentation rollout. It does not change theme templates, styles, Zola config, syntax definitions, or rendering behavior. The theme rendering changes for the V2 stack are in V2:01.
The setup scripts are front-door convenience wrappers for theme contributors. They install a released
build-eipsbinary when needed, or reuse an existingbuild-eipsonPATHor in the default user-local install path. They do not buildbuild-eipsfrom this theme checkout.Zola follows the same reuse-first shape: the scripts use Zola from
PATHor the default user-local install path when available. They install Zola 0.22.1 if the discovered version is missing, older than 0.22.1, or unparseable; they reuse 0.22.1 and report-but-continue for newer versions.build-eipsrelease downloads are verified against fetched.sha256sidecars generated by the release checksum pipeline added in V2:17. Zola downloads are verified against per-platform hashes pinned in these scripts.Because
theme/is not an active proposal repo, setup is anchored through a proposal checkout. By default that is../EIPs, usinghttps://github.com/eips-wg/EIPs.gitif the checkout is absent. The active checkout must containBuild.toml.ACTIVE_REPO_ROOTcan select a manifest-bearing Git checkout, normally the sibling EIPs or ERCs repo in the same workspace. If an explicit root has noBuild.toml, setup tells the contributor to choose a manifest-bearing checkout. If the default EIPs checkout lacksBuild.toml, setup explains that the EIPs default branch is awaiting the manifest rollout and directs the contributor to setACTIVE_REPO_ROOT.--templateand--platform-devare forwarded tobuild-eips initunchanged. Their semantics live in the preprocessor; this script does no per-flag bootstrapping of its own.The scripts run
build-eips doctorafter init and surface doctor failures as warnings rather than hard setup failures. A local editable theme checkout that differs from the active manifest pin is also a nonfatal doctor warning: runtime intentionally uses the localworkspace/themecheckout.The README documents the final preprocessor commands and workspace model:
init,doctor,serve,preview,--base-url,--build-root,--remote-siblings, and local dirty--onlyworkflows.--build-rootand--remote-siblingsare global options and therefore appear beforebuild,serve, orpreviewin the examples.Clean remote-sibling comparison is documented as:
--onlyis not offered for that clean path.The README distinguishes active
Build.tomlfrom local.build-eips.toml: the active manifest identifies the active repo, maps proposal repositories and base URLs, and supplies the[theme]source/pin used when init first createsworkspace/theme..build-eips.tomlholds workspace-local server, base URL, build-root, and rendering settings. An existing localworkspace/themecheckout remains editable and is not reset by init.The README points contributors to
../WORKSPACE.mdfor the full command reference. That file is generated bybuild-eips initfrom the workspace docs completed in [V2:18](eips-wg/preprocessor#32), so this README stays theme-focused instead of duplicating every command edge case.Verification
scripts/dev-setupandscripts/dev-setup.ps1for POSIX/PowerShell parity across tool reuse, build-eips release install, checksum sidecar verification, Zola install/reuse, default EIPs bootstrap, activeBuild.tomlvalidation,ACTIVE_REPO_ROOT, optional flag forwarding, workspace init, doctor warning behavior, PATH guidance, and next commands.README.mdfor theme contributor setup, workspace layout,Build.tomlversus.build-eips.toml, rollout-pending default setup guidance, serve versus preview guidance, local server/base URL settings, local--onlybehavior, global option ordering, clean remote-sibling comparisons, and handoff to../WORKSPACE.md.build-eipsbinary. It exercised a disposabletheme/scripts/dev-setuprun withACTIVE_REPO_ROOTset to a local manifest-bearing EIPs checkout; the script selected that binary, reachedbuild-eips -C "$ACTIVE_REPO_ROOT" init ..., ran doctor, and did not modify the real workspace.