oscal documentation site
services/documentation-siteNobody has checked this yet
still a draft
Written 2026-10-29 by ktl-librarian (automation).
The full record
- Checks
- none recorded
- Sources
- Depends on
- Pointed to by
- Knowledge website (knowledge-website.yaml) (related to)
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/lmodel/oscal/knowledge/services/documentation-site- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
oscal documentation site
Section titled “oscal documentation site”website/ holds an Astro Starlight site, which the README describes as built from the README, docs/, the schema’s pages and the knowledge bundle, and whose address it gives as https://lmodel.github.io/oscal.1 CHANGELOG.md says that this knowledge website replaces the mkdocs site.2 NOTICE says that the site derives from the ktl-website templates of the Knowledge Trust Ladder repository.
website/README.md says that the Knowledge website workflow publishes the site to GitHub Pages at https://lmodel.github.io/oscal/.3 website/site.config.mjs names the repository lmodel/oscal, the address https://lmodel.github.io and the base path /oscal.4 A comment in lychee.toml says that the site answers once the workflow first deploys it to Pages, so the link check leaves its address out until then.5
What the pages come from
Section titled “What the pages come from”website/README.md says that every page comes from a file the repository already holds, so a change to the site is a change to that file:
- each concept in
.lokf/knowledge/becomes a page underknowledge/, with its trust label fromknowledge-report.sh, its sources and its typed relations both ways, and the four fileslokf exportwrites are served beside them; - the README becomes the home page, and each page under
docs/a page underdocs/, exceptdocs/templates-linkml/, whichsite.config.mjsleaves out; CHANGELOG.mdbecomes a page per release underchangelog/, whichsite.config.mjsshows once the file holds a released version;- the schema’s pages, which
gen-docwrites intodocs/elements/, become a page each underschema/, with their class diagrams drawn in the browser. The folder is not committed, so the sync runs the command that builds it when it is missing.
site.config.mjs shows no data pages, since BROWSE is null. Its REDIRECTS send the addresses that the mkdocs site gave its pages on to the new ones: /elements and each /elements/<name> to /schema/, and /about to /docs/about/.
Previewing it
Section titled “Previewing it”Previewing needs Node.js 22.12 or later and uv. In website/, run npm ci --ignore-scripts, then npm run dev for a local server, or npm run build, which writes dist/ and then checks every link between its pages. Both run npm run sync first, which runs lokf export from the sidecar’s environment in .lokf/ and writes the generated pages. Nothing the sync writes is committed. From the repository root, just testdoc runs just gen-doc and then the same local server.6
Publishing it
Section titled “Publishing it”Knowledge website builds the site on pull requests and on the default branch, and deploys it to GitHub Pages only once the repository variable KNOWLEDGE_WEBSITE_ENABLED is true.
Editing it
Section titled “Editing it”Change a page’s words in the file it comes from: the README, a page under docs/, the schema, or a concept, which goes through the librarian and the curator like any other change to the bundle. Change the site’s values and options in site.config.mjs, and its look in src/styles/custom.css, which is this repository’s own.
Footnotes
Section titled “Footnotes”-
README.md, Documentation Website and the website item of Repository Structure ↩
-
CHANGELOG.md, the last item under Added ↩
-
website/README.md, the list of page sources, Preview it and What to edit ↩
-
website/site.config.mjs, REPO, SITE, BASE, DOCS, REDIRECTS, CHANGELOG, SCHEMA and BROWSE ↩
-
lychee.toml, the comment above the site’s address in exclude ↩
-
justfile, the testdoc and _serve recipes ↩