chore: rebuild the dev env from the common and zensical template layers #90

Manually merged
gravityfargo merged 3 commits from chore/templates-rebuild into main 2026-08-01 23:28:30 +00:00
Owner

Applies the common shared layer and the zensical base type. First adoption for this repo. Templates revision aa6f213; no variants (no docs variant — the base type is the docs site; no versioning, since a docs site has no version to cut).

Also carried in this branch

9733df9 (build(deps): update zensical to 0.0.51) was committed on local main but never pushed. The branch was cut off local main, so that commit rides along here rather than being pushed to main directly.

Kept, not replaced

  • zensical.toml — the layer ships a stock config, but this repo's carries the real nav, site_url, theme and plugin setup. Replacing it would gut the site's navigation, so it is kept on the same principle the container layer keeps a real Dockerfile.
  • docs/ — authored content. The layer's starter index.md/markdown.md apply only to a repo with no docs of its own.
  • src/modernleft_mkdocs/ — untouched; no layer provides it. See below.

Publish target

docs.yml becomes publish-docs.yml (git records it as a rename), with site: overridden to https://docs.modernleft.org/ rather than the layer default of <owner>.modernleft.page/<repo>/. site_url in zensical.toml already matches and is unchanged. The rename matters: adding the new file without removing the old would leave two workflows publishing on every push to main.

The job also moves from runs-on: docker with a hand-pinned image: general-ci:0.2.0 to the modernleft-general-ci runner label, so the image version stops being this repo's problem.

New gates

  • test.ymlzensical build --strict on pull request. --strict turns a broken link or anchor into a non-zero exit; without it the build only warns, which is how this repo has been running. Deliberately no paths-ignore: "**/*.md", since Markdown is this repo's source.
  • code-quality.ymluv lock --check plus prettier --check.

The Makefile gains the full pre-commit/lint/format/typecheck/test/clean contract; it previously carried only dev, format, and build.

Manifest

zensical moves from a runtime dependency to the dev group, and package = false is set — a docs site has no wheel to build. The lock resolved zensical 0.0.51 -> 0.0.52.

Prettier no longer touches docs/

The shipped .prettierignore excludes docs/. Prettier de-indents Python-Markdown admonition, content-tab, and details bodies, silently detaching them from their block, and zensical build --strict does not catch it. Upstream will not fix this: prettier/prettier#8640 (open since 2020) and prettier/prettier#12985 (open since 2023).

Verified locally

prettier --check passes and zensical build --strict reports No issues found — no pre-existing broken links surfaced by turning strict mode on.

Not for merge without review — the publish workflow deploys the live site on merge.

Applies the `common` shared layer and the `zensical` base type. First adoption for this repo. Templates revision `aa6f213`; no variants (no docs variant — the base type *is* the docs site; no versioning, since a docs site has no version to cut). ## Also carried in this branch `9733df9` (`build(deps): update zensical to 0.0.51`) was committed on local `main` but never pushed. The branch was cut off local `main`, so that commit rides along here rather than being pushed to `main` directly. ## Kept, not replaced - **`zensical.toml`** — the layer ships a stock config, but this repo's carries the real `nav`, `site_url`, theme and plugin setup. Replacing it would gut the site's navigation, so it is kept on the same principle the container layer keeps a real `Dockerfile`. - **`docs/`** — authored content. The layer's starter `index.md`/`markdown.md` apply only to a repo with no docs of its own. - **`src/modernleft_mkdocs/`** — untouched; no layer provides it. See below. ## Publish target `docs.yml` becomes `publish-docs.yml` (git records it as a rename), with `site:` overridden to `https://docs.modernleft.org/` rather than the layer default of `<owner>.modernleft.page/<repo>/`. `site_url` in `zensical.toml` already matches and is unchanged. The rename matters: adding the new file without removing the old would leave two workflows publishing on every push to `main`. The job also moves from `runs-on: docker` with a hand-pinned `image: general-ci:0.2.0` to the `modernleft-general-ci` runner label, so the image version stops being this repo's problem. ## New gates - `test.yml` — `zensical build --strict` on pull request. `--strict` turns a broken link or anchor into a non-zero exit; without it the build only warns, which is how this repo has been running. Deliberately **no** `paths-ignore: "**/*.md"`, since Markdown is this repo's source. - `code-quality.yml` — `uv lock --check` plus `prettier --check`. The `Makefile` gains the full `pre-commit`/`lint`/`format`/`typecheck`/`test`/`clean` contract; it previously carried only `dev`, `format`, and `build`. ## Manifest `zensical` moves from a runtime dependency to the `dev` group, and `package = false` is set — a docs site has no wheel to build. The lock resolved `zensical 0.0.51 -> 0.0.52`. ## Prettier no longer touches `docs/` The shipped `.prettierignore` excludes `docs/`. Prettier de-indents Python-Markdown admonition, content-tab, and details bodies, silently detaching them from their block, and `zensical build --strict` does not catch it. Upstream will not fix this: prettier/prettier#8640 (open since 2020) and prettier/prettier#12985 (open since 2023). ## Verified locally `prettier --check` passes and `zensical build --strict` reports `No issues found` — no pre-existing broken links surfaced by turning strict mode on. Not for merge without review — the publish workflow deploys the live site on merge.
chore: rebuild the dev env from the common and zensical template layers
All checks were successful
Test / test (pull_request) Successful in 11s
Test / checks (pull_request) Successful in 9s
Test / code-quality (pull_request) Successful in 0s
3b3af99ed8
chore: drop the vestigial mkdocs-era package and migration wording
All checks were successful
Test / test (pull_request) Successful in 10s
Test / checks (pull_request) Successful in 9s
Test / code-quality (pull_request) Successful in 0s
Publish docs / publish (push) Successful in 12s
b73dd6749d
gravityfargo manually merged commit b73dd6749d into main 2026-08-01 23:28:30 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ModernLeft/modernleft-docs!90
No description provided.