Lessons Learned

πŸ“– 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

βœ… 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

  1. Feature Branches β†’ Work happens in isolated branches.
  2. Pull Requests & Code Review β†’ Merged after approval.
  3. 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 Apache 403 Forbidden errors.
  • Disabled TOC & titles (aside: toc: false, show_title: false).
  • Explicit modify_date tracking β†’ Clear last update info.
  • SimpleCov workflow fix β†’ Prevented unstaged changes in Git.