Feature: Docusaurus Scaffold Command Script
IMPLEMENTATION RULES: Before implementing this plan, read and follow:
- WORKFLOW.md - The implementation process
- PLANS.md - Plan structure and best practices
Status: Completed​
Completed: 2026-03-29
Goal: Add a cmd script that scaffolds a ready-to-go Docusaurus site in website/, matching the project's proven setup.
Last Updated: 2026-03-29
Overview​
Docusaurus is a React-based static site generator by Meta, commonly used for documentation websites. Unlike Hugo (standalone binary), Docusaurus is npm-based and runs as a local project dependency.
This is a cmd-fwk-docusaurus.sh script (not install-*), because it scaffolds a project rather than installing a global tool. Node.js is already pre-installed in the base devcontainer image.
What the script does:
- Creates a
website/directory with a complete Docusaurus setup - Generates config files (
docusaurus.config.ts,sidebars.ts,tsconfig.json,package.json) - Creates starter content (
docs/,blog/,src/pages/,src/css/) - Runs
npm installto set up dependencies - Idempotent — refuses to overwrite if
website/already exists
Starting point includes (based on this repo's proven setup):
- TypeScript configuration (
docusaurus.config.ts) - Mermaid diagram support
- Local search plugin
- Image zoom plugin
- Auto-generated sidebars from filesystem
- Custom CSS with Docusaurus theme variables
- Starter index page and docs page
- Blog with
authors.yml
Key design decisions:
- Always scaffolds in
website/(hardcoded, no directory argument) - Generates files directly (not
npx create-docusaurus) for full control over starting point - Uses
npxcheck asSCRIPT_CHECK_COMMANDsince Node.js is the only prerequisite - Category:
FRAMEWORKS
Phase 1: Create Command Script — DONE​
Tasks​
- 1.1 Create
.devcontainer/additions/cmd-fwk-docusaurus.shbased on cmd template - 1.2 Set metadata:
SCRIPT_ID="cmd-fwk-docusaurus",SCRIPT_CATEGORY="FRAMEWORKS" - 1.3 Set extended metadata (tags, abstract, website, summary, related to
fwk-hugo) - 1.4 Define
SCRIPT_COMMANDSwith--createand--help - 1.5 Implement
cmd_createfunction:- Check
website/doesn't already exist (abort if it does) - Create directory structure:
website/{docs,blog,src/css,src/pages,static/img} - Generate
package.jsonwith Docusaurus 3.x deps (core, preset-classic, mermaid, search, image-zoom) - Generate
docusaurus.config.ts(TypeScript, generic/clean — no project-specific content) - Generate
sidebars.ts(auto-generated from filesystem) - Generate
tsconfig.json - Generate
src/css/custom.csswith Docusaurus theme variable stubs - Generate
src/pages/index.tsxwith minimal homepage - Generate
docs/index.mdwith starter content - Generate
blog/authors.ymlwith placeholder author - Run
npm installinsidewebsite/
- Check
- 1.6 VS Code extensions — N/A for cmd scripts (no
EXTENSIONSarray processing)
Validation​
User confirms script structure and generated files look correct.
Phase 2: Testing — DONE (partial — full tests require devcontainer)​
Tasks​
- 2.1 Verify
--helpflag works ✓ - 2.2 Bash syntax check passes; shellcheck/static tests require devcontainer
- 2.3 Test
--createinside devcontainer (requires devcontainer)
Validation​
User confirms tests pass or script looks correct.
Acceptance Criteria​
-
cmd-fwk-docusaurus.sh --createscaffolds a working Docusaurus site inwebsite/ - Generated site builds successfully (
cd website && npm run build) - Generated site starts dev server (
cd website && npm run start) - Script refuses to overwrite existing
website/directory -
--helpflag works - Script is idempotent (safe to run twice — second run is a no-op)
- All core and extended metadata fields are set
- No shellcheck warnings
Files to Modify​
.devcontainer/additions/cmd-fwk-docusaurus.sh(new)