π Lessons Learned: HVCMS Documentation Setup
This document captures key insights, challenges, and best practices from setting up the HVCMS documentation system.
π Overview
- β Jekyll + TeXt Theme for a clean static site setup.
- β Collections-based organization for modular content.
- β Multi-environment hosting via GitHub Pages & Apache + Passenger.
- β Automated GitHub Flow & CI/CD for seamless updates.
π οΈ 1. Documentation Structure
All documentation files are stored inside the content/ folder, with each section as a Jekyll collection.
content/
βββ _usage/ # End-user documentation
βββ _development/ # Developer documentation
βββ _chatgpt/ # ChatGPT development insights
β βββ lessons-learned.md # This document
assets/ # Static assets
_site/ # Generated output
β
Uses collections_dir: content β No need for source per collection.
β
Flat URL structure β /usage/setup.html instead of /usage/setup/index.html.
π 2. Navigation Setup
Navigation is managed via _data/navigation.yml to ensure dynamic linking.
π 3. GitHub Pages Hosting
- Hosted at
docs.hvboom.ch. - Uses GitHubβs static workflow β
.github/workflows/static.yml. -
CNAME entry added to DNS provider:
docs.hvboom.ch
β No additional DNS records needed beyond the CNAME entry.
π₯οΈ 4. Local Hosting via Apache + Passenger
For local testing & production deployment, the documentation is served via Apache + Passenger.
β Uses a generalized Apache macro for flexible configurations.
π 5. GitHub Flow & Versioning
- Feature Branches β Work happens in isolated branches.
- Pull Requests & Code Review β Merged after approval.
- Tagged Versions β Major updates tracked via semantic versioning.
git checkout -b docs-setup
# Make changes...
git commit -m "Complete documentation setup"
git push origin docs-setup
git tag -a v0.2.0 -m "Complete Jekyll documentation setup"
git push origin v0.2.0
β Ensures well-tracked documentation updates.
π 6. Key Lessons Learned
-
Use
collections_dir: contentβ Keeps collections structured. -
Hyphens (
-) in filenames β Prevents Jekyll converting_to-. -
Landing pages (
index.md) for collections β Prevents Apache403 Forbiddenerrors. -
Disabled TOC & titles (
aside: toc: false,show_title: false). -
Explicit
modify_datetracking β Clear last update info. - SimpleCov workflow fix β Prevented unstaged changes in Git.