This repository holds templates and environment setup intended for architectural documentation development in Markdown served with MkDocs. It is designed to be used inside a VSCode devcontainer and includes automation for builds, releases and dependency updates. The included tools and plugins facilitate PlantUML & Mermaid diagrams, and Architecture Decisions Records (ADR) development.
The included diagrams are pure autogenerated examples and are not representing a real architecture.
.devcontainer/— devcontainer and Docker Compose configuration (devcontainer.json,docker-compose.yml,mkdocs.dockerfile).docs/— documentation sources and generated diagrams.mkdocs.yml— MkDocs configuration.requirements.txt— Python dependencies (plugins) used by MkDocs.package.json/package-lock.json— dev tooling (commitlint, husky, semantic-release)..github/workflows/— GitHub Actions workflows for publishing and releases..github/renovate.json— renovate configuration for dependency management.
- Open the repository in VS Code and start the devcontainer (Remote - Containers). The devcontainer will automatically initialize all the necessary tools.
- Use
makefor the most common commands. Seemake helpfor the full list. - Use the installed VSCode plugins for Markdown, PlantUML and ADR preview.
- Serve the site locally for live preview at http://localhost:8000:
make serve- Deploy to GitHub Pages (this is also automatically done in CI on push to
main):
make deploy- Update lockfile locally (generate/update
package-lock.json):
make lock-depsNotes:
- This is only needed when adding new packages. Maintenance is handled by Renovate in CI.
The devcontainer bootstraps a development environment with Node.js and Python and installs dev tooling.
Recommended VS Code extensions (installed by the devcontainer):
ms-azuretools.vscode-docker— Docker integrationms-python.python— Python language supportshd101wyy.markdown-preview-enhanced— advanced markdown previewjebbs.plantuml— PlantUML preview and renderingStevenChen.vscode-adr-manager- ADR managereamodio.gitlens— GitLensGitHub.copilotandGitHub.copilot-chat— (optional) Copilot features
If you open the repository outside the devcontainer, run npm ci locally and run npm run prepare to install Husky hooks.
- The repo relies on Conventional Commits for semantic-release. Commit messages should follow the Conventional Commits format (e.g.
feat(docs): add architecture overview). commitlintis configured via.commitlintrc.jsand a Huskycommit-msghook is present at.husky/commit-msgto validate messages locally in the devcontainer.- Use
npm run commit(commitizen) to create conventional commit messages interactively if desired.
This repository uses GitHub Actions to automate publishing and releases:
-
Semantic releases: A semantic release is used to generated release notes based on Conventional Commits and create a new tag.
-
Publish to GitHub Pages: On push to
maina workflow updates tags a new releasebuilds the site and publishes it to thegh-pagesbranch. -
Renovate: Renovate is configured to automatically open PRs for Python (
requirements.txt) and JavaScript (package.json) dependencies. It also managespackage-lock.jsonvia lock file maintenance and will use semantic commits so updates integrate with semantic-release.
Please follow the Conventional Commits format and run npm run lint:commit or rely on the Husky hook to validate commit messages.