User & developer documentation for the FEAScript project, published at https://docs.feascript.com. Built with Docusaurus (Node.js >= 20).
npm install
npm start # dev server with live reload
npm run build # production build into ./build
npm run serve # serve the production build locally- Pages are Markdown/MDX files under
docs/; the sidebar is defined insidebars.js. - Math is supported with KaTeX: inline
$T$and block$$ ... $$. docs/always holds the docs of the current FEAScript-core version ("0.3.1" in the version dropdown).static/llms.txt(served atdocs.feascript.com/llms.txt) is a hand-written, single-file API summary for AI assistants. Update it whenever the API changes: new models, options, boundary conditions or solvers.
The theme follows the design tokens of feascript.com: cream "engineering paper" with a blueprint grid, charcoal ink, gold accent, a floating pill navbar, always-dark code blocks, and Roboto / Roboto Mono, with a matching dark mode. The footer uses the website's footer color (#f6efd9, #222222 in dark mode). Colors and component styling live in src/css/custom.css; fonts and the code theme are set in docusaurus.config.js.
The navbar's GitHub pill matches the website and fetches the FEAScript-core star count from the public GitHub API in the browser. If the request fails, the link remains usable without a count and the error is logged to the browser console.
The docs keep one version per minor release of FEAScript-core (MAJOR.MINOR), labeled with its latest patch release. Patch releases do not change the API, so they get no docs version of their own.
docs/holds the docs of the latest minor version and is served at the unversioned URLs (lastVersion: "current"indocusaurus.config.js). Its label in the version dropdown is set indocusaurus.config.js.- Older minor versions are snapshots in
versioned_docs/version-x.y.z/, served atdocs.feascript.com/x.y.z/..., with their sidebars inversioned_sidebars/and their names inversions.json.
Patch release (for example 0.3.1 → 0.3.2): update the docs in docs/ if needed and change the label of current in docusaurus.config.js to the new version.
Minor or major release (for example 0.3.x → 0.4.0): before changing docs/, snapshot it under the latest patch release of the previous minor version:
npm run version -- 0.3.1This copies docs/ to versioned_docs/version-0.3.1/, the sidebar to versioned_sidebars/, and records the version in versions.json. Then add the snapshot to versions in docusaurus.config.js (with banner: "unmaintained"), change the label of current to the new version, and update docs/ for the new release.
Versions appear inside the dropdown, not as separate links across the navbar. The space between the logo and the right-hand controls is flexible layout spacing.
Fixes to an old version are made directly in its versioned_docs/version-x.y.z/ folder. Absolute links in those pages, such as CDN URLs and examples, must point to that version (for example [email protected] and the 0.2.0 tag of FEAScript-core), not to the latest release.
Pushing to main triggers .github/workflows/deploy.yml, which builds the site and deploys it to docs.feascript.com
The content of the FEAScript documentation is licensed under CC-BY 4.0. Note that the core library of FEAScript is distributed under the terms of the MIT license.
