Skip to content

Knowledge website

Playbookhow-toplaybooks/knowledge-website

Checked by automation only

still a draft

Written 2026-10-16 by ktl-librarian (automation). Last checked 2026-10-18 by ktl-librarian (automation).

The full record
Checks
  • 2026-10-18 by ktl-librarian (automation)
Sources
Depends on
Graph
Open this concept in the knowledge graph
IRI
https://w3id.org/ktl/curator/knowledge/playbooks/knowledge-website
Licence
CC BY 4.0
Files
MarkdownJSON-LDSource on GitHubHistory on GitHub

website/ builds the KTL Curator website, an Astro Starlight site. The ktl-website skill installed the folder and its workflow, .github/workflows/knowledge-website.yaml. 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 under knowledge/, with its trust label from knowledge-report.sh, its sources and its typed relations both ways.

  • The four files lokf export writes are served under knowledge/, beside each concept’s own Markdown file and its JSON-LD. The bundle log is served as an Atom feed, knowledge/log.xml.

  • The README becomes the home page, and each page under docs/ becomes a page under docs/.

  • CHANGELOG.md becomes a page per release under changelog/, which search leaves out.

  • The site shows a LinkML schema’s pages and SQLite databases only when it is set up for them. website/site.config.mjs sets BROWSE to null, so this site serves no data.

website/README.md asks for Node.js 22.12 or later and uv. From website/, run npm ci. Then run npm run dev to serve the site at http://localhost:4321/obsidian-ktl-curator/, or npm run build to write dist/ and check every link between its pages.

Both commands run npm run sync first. The sync runs lokf export from the sidecar’s own environment in .lokf/ and writes the generated pages. Nothing the sync writes is committed.

  • To change a page’s words, edit the file it comes from: the README, a page under docs/, or a concept. A concept changes through the librarian and the curator, like any other change to the bundle.

  • To change the site’s addresses, title, logo, home page or docs groups, edit website/site.config.mjs. A comment above each option says what it takes.

  • To change the site’s look, edit website/src/styles/custom.css, which is loaded last. theme.css and catalogue.css hold the house style, and theme.css holds the trust colours.

.github/workflows/knowledge-website.yaml has two jobs, for least privilege.

  • build runs npm’s packages and the lokf toolkit under a read-only token. It builds the site and checks its links. It runs on a pull request or a push that touches the site’s sources, on a weekly schedule (Mondays at 05:23 UTC) and on a run by hand. A push builds on the default branch only.

  • deploy runs only GitHub’s own deploy-pages action and holds the Pages scopes. It runs for the default branch only, and only once the repository variable KNOWLEDGE_WEBSITE_ENABLED is true. A pull request gets the same build and no deployment.

To switch deployment on, first tell Pages to take its site from Actions, under Settings > Pages > Source. Then set KNOWLEDGE_WEBSITE_ENABLED under Repository variables, not on an environment, because a job’s if: sees only repository and organization variables. A repository that already publishes Pages another way keeps the variable unset until that publisher is retired, since two publishers overwrite each other’s site.

eslint.config.mts ignores website, because the site is its own Node project with its own build and link check. .markdownlint-cli2.jsonc and lychee.toml leave out the folders the site’s build generates, so the repository’s Markdown is linted and link-checked once, where it is written.