Skip to content

docs: the documentation site at ferropix.eu, the book and the landing page - #50

Merged
rubentalstra merged 2 commits into
mainfrom
docs/website-book
Oct 21, 2026
Merged

rubentalstra merged 2 commits into
mainfrom
docs/website-book

Conversation

@rubentalstra

Copy link
Copy Markdown
Collaborator

What changed and why

FerroPIX gets the documentation site every other FerroHEALTH product has, served at https://ferropix.eu/.

  • The book (website/book/, under /docs/): introduction; what FerroPIX is, with a status table marking each capability built (in ihe-iti or nl-generic-functions) or planned (the v0.0.3 server, linked to its milestone); getting started with the doctested PIXm example; the published crates with every feature and the docs.rs links; configuration, deployment, security and audit, and operations, each saying plainly that the server is planned and what holds today; conformance with the specification and toolchain tables included from docs/VERSIONS.md; licensing; contributing; keeping the book current; and the changelog included from CHANGELOG.md. Shared topics link the FerroHEALTH family book. BSNk is named as not built: no code calls the BSNk service.
  • The theme: mdBook's light and navy recoloured with the "Plum & Iron" palette, the mark beside the title, system fonts, and a hashed per-page CSP (scripts/site/book-csp.sh), as the family book does.
  • The landing page (website/landing/): the FerroFED and FerroBRIDGE structure and stylesheet with the plum accent, light and dark, a 'self'-only CSP, and the roadmap rendered from the open milestones.
  • The brand: favicon.svg, favicon-32.png, favicon-16.png, favicon.ico and ferropix-icon-dark.svg. The book takes the favicon from a staged copy at assembly, so the artwork exists once and needs no sync guard. versions.sh exempts PNG and ICO from the licence-header check, as it does JSON.
  • The site build: scripts/site/assemble.sh (landing at /, book at /docs/, version markers such as {{version:ihe-iti}} rendered from the manifests so no page types a version, favicon staged, CSP per page, roadmap), scripts/site/toolchain.sh reading the new "Documentation toolchain" rows of docs/VERSIONS.md (mdBook 0.5.4, mdbook-lint 0.14.4, lychee 0.24.2, the family book's pins), and .github/actions/docs-toolchain.
  • The Docs workflow (.github/workflows/docs.yml): build on every pull request and push, deploy to the github-pages environment from main, pinned digests, permissions: {}, no CNAME file (the custom domain is the Pages setting, as on ferrofed.eu).
  • The link check in CI: the site-links job (scripts/checks/site-links.sh, with --self-test) runs mdbook-lint, assembles the site and checks every internal link and anchor offline, plus README, inside the required conclusion.
  • README links the site, the book, the crates page, getting started and the status table; CLAUDE.md's repo map names website/, scripts/site/ and assets/brand/.

The rule, the same-PR book guard, the docs-claims and writing-style guards follow in the next pull request (#48).

Closes #45
Closes #46
Closes #47
Closes #49

Licensing of contributions

  • I accept the terms in CONTRIBUTING.md § Licensing of contributions: I have the right to submit this work, I license it under the project licence of the version it lands in, and I grant the Licensor the relicensing right stated there.

Checklist

  • Every conformance decision cites the specification (the IHE ITI Technical Framework, PIXm, PDQm, HL7 FHIR R4, HL7 v2), never memory and never another implementation.
  • Rust gates pass, once the workspace has a member: no Rust changes.
  • Every refusal the change adds has an asserted negative test, and no test was weakened to pass.
  • Shell and workflow files are clean: shellcheck --severity=style, actionlint, zizmor --min-severity=low .github/, and the self-test of every script the change touches.
  • CHANGELOG.md has an [Unreleased] entry.
  • No patient data, real identifier, key, token or password in a fixture, test or example.
  • Every commit is signed.
  • No AI or assistant attribution anywhere in the commits or this PR.

… page

The landing page at the site root in the FerroHEALTH design with the Plum
and Iron accent, and the mdBook under /docs/: what FerroPIX is with every
capability marked built or planned, getting started, the published crates
with every feature, configuration, deployment, security and audit,
operations, the specification pins rendered from docs/VERSIONS.md,
contributing and the changelog. scripts/site/assemble.sh builds the site as
Pages serves it, with the version markers rendered from the manifests, the
favicon staged from assets/brand and a hashed CSP on every page. The Docs
workflow builds it on every pull request and deploys it from main, and the
site-links job of CI lints the book and checks every internal link offline
inside the required conclusion check.
@rubentalstra rubentalstra added this to the v0.0.3 milestone Oct 21, 2026
@rubentalstra rubentalstra added the documentation Docs-only work. Maps to a docs/ branch and a docs: commit. label Oct 21, 2026
…phone layout

FerroEHR and FerroFED are planned to resolve patients through the FerroPIX
server (FerroHEALTH/FerroEHR#3380, FerroHEALTH/FerroFED#367); the book and
the README now say so and link both, and the README marks the server's
description as planned. The landing page's roadmap names each open
milestone with its theme and link, never its issue counts, which went stale
between deploys. On a phone the install commands fit their box, and a longer
line scrolls inside it, never the page.
@rubentalstra
rubentalstra added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit a7cee44 Oct 21, 2026
31 checks passed
@rubentalstra
rubentalstra deleted the docs/website-book branch October 21, 2026 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Docs-only work. Maps to a docs/ branch and a docs: commit.

Projects

None yet

1 participant