BRL-CAD's primary website.
The shared menu lives in partials/header.html, css/header.css, and
js/header.js. Run node tools/build.mjs after changing its HTML or assets.
Commit the generated header blocks and content-versioned asset URLs in all
six pages listed in the build script. The rest of each page is edited directly;
the frontend build needs only Node.js, with no npm packages.
Run node tools/build.mjs --check before deploying to catch stale headers.
Add new pages to the list in the build script and include the shared CSS/JS.
Rebuild the full documentation corpus after changing the shared header or any
reader stylesheet/script. The landing-page build alone cannot refresh reader
headers or their content-versioned asset URLs; tools/check-site.mjs checks
both the landing pages and every generated reader.
Documentation is built from the pinned BRL-CAD source revision, not scraped
from the old wiki. See docs/BUILD.md and tools/docs-source.json:
ruby tools/build-docs.rb --source /path/to/brlcad
node tools/build-gallery.mjs
node tools/build.mjs
node tools/check-site.mjs
python3 tools/build-docs-check.py
Publish docs/html/ and docs/search-index.json with the tracked frontend.
These generated files are deliberately not indexed; preserve existing live-only
documentation, downloads, and archives. A Git update alone does not publish the
documentation corpus. Build in beta and review before replacing live files.
Before publishing the new gallery to live, archive its legacy Piwigo backend
recoverably and remove the /gallery/* maintenance rewrite from the live
.htaccess. Apache currently prefers index.php over index.html; leaving
that old entry point would hide the static gallery. Preserve live-only images,
downloads, PDFs, and documentation, and snapshot any overlapping files before
replacing them. Do not mirror the whole beta directory over the live root.
The gallery data, credits, source hashes, and license are under gallery/.
Its checked-in WebP previews need no image tools to serve. To regenerate previews
from the pinned source, install cwebp and run:
node tools/build-gallery.mjs --import=/path/to/brlcad
node tools/build.mjs
Support links to the selected web-public Zulip channels (brlcad, announce, and Google Summer of Code) for account-free reading, with a separate login link for participation. New accounts currently require an invitation. Recheck links in a logged-out browser if channel privacy settings change; do not change channel permissions as part of a website deployment.