Sources of the OpenEverest documentation published at openeverest.io/docs, built with Docusaurus.
| URL | Content |
|---|---|
/docs/ |
Redirects to /docs/current/ |
/docs/current/ |
Latest stable release (for example 1.17) |
/docs/<version>/ |
A specific release, for example /docs/1.16/ or /docs/2.0.0-dev.4/ |
/docs/next/ |
Unreleased docs from the main branch |
/docs/versions |
List of all published versions |
The URL of the latest stable version (for example /docs/1.17/) redirects to
/docs/current/.
| Ref | Purpose |
|---|---|
main |
Docs for the next release (OpenEverest 2.x), plus the site itself: config, theme, scripts, CI. |
release-1.x |
Docs for OpenEverest 1.x. |
vX.Y.Z / vX.Y.Z-pre tags |
Released docs. Pushing a tag publishes that version. |
Requires Node.js 20+.
npm ci
npm start # live preview of docs/ (served as "next")
npm run build:all # assemble released versions from git tags, then build
npm run serve # serve the production build at http://localhost:3000/docs/npm start only builds the working tree (docs/). To preview the whole site
with all versions and the version picker, run npm run versions before
npm start. Make sure your clone has the tags (git fetch --tags).
docker compose up # dev server with live reload
docker compose --profile preview up # production build of all versions, served by nginx- Dev server: http://localhost:5005/docs/next/ (or
/docs/current/,/docs/1.16/, …). It includes all released versions, but redirects such as/docs/→/docs/current/only exist in production builds. - Preview: http://localhost:5006/docs/. This is the same build that is deployed, served like GitHub Pages, so redirects and 404s can be tested. Re-run the command to rebuild after changes.
Released versions are not stored on main. npm run versions
(scripts/assemble-versions.mjs) reads the git
tags, selects which ones to publish, and extracts docs/ and sidebars.json
from each selected tag into versioned_docs/ and versioned_sidebars/. These
generated folders are git-ignored.
The selection is configured in versions.config.json:
| Setting | Default | Meaning |
|---|---|---|
majors |
2 | Number of newest major lines to publish (for example 1.x and 2.x). |
minorsPerMajor |
3 | Stable minor versions per major. Each is published as MAJOR.MINOR from its latest patch tag, so v1.17.2 becomes version 1.17. |
prereleasesPerMajor |
2 | Prerelease tags per major that are newer than its latest stable release, for example 2.0.0-dev.4. They show as preview and disappear once a newer stable release is tagged. |
include / exclude |
[] |
Tag names to force in or out. |
The newest stable version is served at /docs/current/.
The deploy workflow (.github/workflows/deploy.yml)
runs on every push to main and on every v* tag. It always builds the whole
site from main and assembles every published version from the tags, so any
run publishes all versions.
Note
GitHub starts no workflow when more than three tags are pushed at once. After
pushing several tags together, run the workflow by hand:
gh workflow run deploy.yml --ref main.
The github-pages environment allows deployments from main and from v*
tags (Settings → Environments → github-pages).
A release from main (2.x):
git checkout main && git pull
git tag -a v2.0.0-dev.5 -m "Docs for OpenEverest 2.0.0-dev.5"
git push origin v2.0.0-dev.5A 1.x release: merge the changes into release-1.x, then tag that branch:
git checkout release-1.x && git pull
git tag -a v1.17.1 -m "Docs for OpenEverest 1.17.1"
git push origin v1.17.1Fixing the docs of a version that is already released: commit the fix to the right branch, then move the tag of that release and push it again:
git tag -fa v1.17.0 -m "Docs for OpenEverest 1.17.0"
git push --force origin v1.17.0- Pages live in
docs/as Markdown, compiled as MDX. Escape<and{in text (<,\{), or put them incode. - The sidebar is defined in sidebars.json. It must stay
JSON, because it is versioned together with
docs/. - Use admonitions
(
:::note,:::tip,:::info,:::warning,:::danger), tabs and<details><summary>…</summary>…</details>for collapsible blocks. - Link to other pages with relative
.mdpaths. The build fails on broken links and images. - Don't use parentheses or spaces in file names. Docusaurus can't route
paths that contain
(or).
The site is a GitHub Pages project site of the openeverest organization.
The organization site (openeverest/openeverest.github.io)
owns the openeverest.io custom domain, so this repository is served at
openeverest.io/docs/. A project site takes precedence over paths of the same
name in the organization site, so everything under /docs/ comes from this
repository.
Pages must be enabled in the repository settings with Source: GitHub Actions.
The content was migrated from the MkDocs sources in openeverest/everest-doc with scripts/migration/mkdocs_to_docusaurus.py:
python3 scripts/migration/mkdocs_to_docusaurus.py --src ../everest-doc --out .The script converts admonitions, collapsible blocks, content tabs, icons,
attr_list, macros and raw HTML to MDX, generates sidebars.json from the
MkDocs nav, and repairs or unlinks relative links that point to missing files.