This is the Docusaurus site for GeoFLAC/DynEarthSol (DES3D), deployed to https://geoflac.github.io/des3d/.
It documents how to build, configure and run DES3D, it is not the simulation code itself, that lives in the DynEarthSol repository.
Requires Node.js ≥ 20 (Docusaurus 3.x hard-checks this at build time) and Yarn.
yarn install
yarn start # dev server at http://localhost:3000/des3d/, hot-reloads on saveBefore opening a PR, confirm the production build also succeeds (the dev server is more forgiving about some things than the real build):
yarn build
yarn clear # clean .docusaurus/ and build/ when something looks staleyarn typecheck runs tsc against docusaurus.config.ts and sidebars.ts.
| Path | Contents |
|---|---|
docs/ |
The current ("Latest") documentation content, organized into usage/, tutorial/, and theory/ categories. |
sidebars.ts |
Sidebar structure for docs/. |
versioned_docs/version-X.Y.Z/, versioned_sidebars/, versions.json |
Frozen snapshots of the docs matching already-tagged DynEarthSol releases (currently v2.0.0 and v2.0.2). Independent copies, not derived from docs/, see CLAUDE.md before editing one. |
static/ |
Images and other files served as-is. |
src/css/custom.css |
Site-wide style overrides. |
docusaurus.config.ts |
Site config: navbar, footer, the announcement bar (tracks which DynEarthSol PR the docs are synced through), KaTeX/search plugins. |
Most of the day-to-day work on this repo isn't writing new docs from scratch, it's catching up with upstream DynEarthSol changes:
- A GitHub Actions pipeline (
.github/workflows/dynearthsol-pr-notify.yml, documented in.github/workflows/README.md) automatically opens an issue here whenever a DynEarthSol PR merges with doc-relevant changes. CLAUDE.mdis the source of truth for that procedure: which page a given kind of change belongs on, how to verify a change actually rendered, when something needs backporting into an older version's snapshot, and the announcement-bar/version-dropdown mechanics. Read it before making a non-trivial change, whether you're a human contributor or an AI assistant.
deploy.ymlbuilds and deploys to GitHub Pages on every push tomain.test-deploy.ymlruns the same production build on every PR targetingmain, without deploying; branch protection onmainrequires this check to pass before merging.dependabot-auto-merge.ymlauto-merges patch/minor Dependabot PRs once that check passes (see.github/workflows/README.mdfor the cases it doesn't catch, e.g. transitive dependencies needing two coexisting major versions).
- Branch from
main, open a PR, lettest-deploy.ymlverify the build. Direct pushes tomainare technically allowed by branch protection but normal changes should go through a PR. - See CLAUDE.md for the full doc-sync procedure, the versioned-docs workflow, and known gotchas (Node version, dependency resolution overrides, etc.).