This website is built using Docusaurus, a modern static website generator.
yarnyarn startThis command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
yarn buildThis command generates static content into the build directory and can be served using any static contents hosting service.
plainlang.org is hosted on Cloudflare. To deploy changes to production site just push changes to GitHub repo.
docs/is the ∗∗∗plain documentation. It is versioned with Docusaurus docs versioning and served under/docs/.unversioned/holds content that follows the site rather than the language: the toolkit page (/toolkit) and the whitepapers (/whitepapers/...). It is a second docs plugin instance and is never snapshotted. Its sidebars live insidebars-unversioned.ts.
The version number is the version of the ***plain language, not of plain-forge or pyro.
There are two versions. 0.4 is the current version in docs/ and is served at /docs/.
0.3 is frozen in versioned_docs/version-0.3/ and is served at /docs/0.3/. The navbar shows
the label from the versions.current entry in docusaurus.config.ts.
When work on the next language version (say 0.5) starts and the 0.4 docs must stay reachable:
yarn docusaurus docs:version 0.4This copies docs/ into versioned_docs/version-0.4/, the sidebar into versioned_sidebars/, and
records the version in versions.json. From then on docs/ holds the next version. In
docusaurus.config.ts, change the versions.current label to 0.5.
To serve the next version separately while it is still in progress, set lastVersion: '0.4' and
versions.current to {label: '0.5', path: 'next'}. /docs/ then keeps serving 0.4 and the
in-progress docs are at /docs/next/ with an "unreleased" banner.
Keep the number of retained versions small; each one adds build time and has to be maintained
separately. Links inside docs/ should be relative (./definitions/concept-notation) rather than
absolute (/docs/guardrails/...) so they stay correct inside a snapshot. editCurrentVersion
is on, so the "Edit this page" link always points at docs/.
The site uses PostHog (EU Cloud) for analytics. The snippet is injected from docusaurus.config.ts only when the POSTHOG_KEY environment variable is set at build time, so yarn start and builds without the variable ship no analytics.
PostHog starts opted out and stores nothing until the visitor accepts the cookie banner (src/components/CookieConsent). The choice is kept in localStorage and can be changed with the button on the cookie policy page, src/pages/cookie-policy.mdx (served at /cookie-policy), which reopens the banner in its preferences view.
POSTHOG_KEY is configured as a build environment variable in the Cloudflare Pages project. To test a production build locally:
POSTHOG_KEY=phc_your_project_token yarn build && yarn serve***plain is distributed under the terms of the Apache License (Version 2.0). See LICENSE for details.