| title | Contributing to the Garden Linux Documentation | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| description | Learn how to contribute to Garden Linux documentation — working with the aggregation system locally | ||||||||
| related_topics |
|
Garden Linux documentation is published at https://gardenlinux-docs.netlify.app/ and combines content from multiple repositories into a unified documentation site.
Source Repository: gardenlinux/docs-ng
For more substantial changes — like adding new pages, restructuring content, or working on the aggregation system itself — you'll want to set up the documentation system locally.
- Python 3.x
- pnpm (for VitePress)
- Git
git clone https://github.com/gardenlinux/docs-ng.git
cd docs-ngpnpm installThis installs VitePress and other Node.js dependencies needed to build the documentation site.
Aggregate from locked commits in repos-config.json:
make aggregateThis fetches documentation from the configured repositories at their locked commit hashes.
For local development, use repos-config.local.json with file:// URLs:
make aggregate-localThis copies documentation from local repositories without using git.
make devThe documentation site will be available at http://localhost:5173.
As you work on documentation in source repositories:
- Make changes to markdown files in source repos
- Run
make aggregate-localto update the aggregated docs - The dev server will hot-reload automatically
When ready to deploy:
make buildThis creates a production build in docs/.vitepress/dist/.
make aggregate-repo REPO=gardenlinuxTo fetch the latest commits and update repos-config.json:
make aggregate-updatemake testAfter aggregation, your docs directory will look like:
docs/
├── projects/ # Mirrored repository docs
│ ├── gardenlinux/
│ ├── builder/
│ └── python-gardenlinux-lib/
├── tutorials/ # Aggregated tutorials
├── how-to/ # Aggregated guides
├── explanation/ # Aggregated explanations
├── reference/ # Aggregated reference
└── contributing/ # Aggregated contributing docs
If you encounter issues, try a clean build:
make clean
make aggregate
make devEnsure all dependencies are installed:
pnpm install
python3 --version # Should be 3.xCheck that repos-config.json or repos-config.local.json is properly
configured. See the configuration reference for details.