This project provides two different approaches for building and hosting documentation, each serving different purposes and use cases.
What it does: GitHub Pages integration for live documentation website
- Purpose: Renders your existing Markdown files in the
docs/directory as a live website - Technology: Jekyll static site generator (Ruby-based)
- Hosting: GitHub Pages at https://kolchfa-aws.github.io/rest-demo
- Content: Your existing documentation (TECH_WRITER_GUIDE.md, etc.)
- Theme: Minima theme with professional styling
- Automatic: Updates when you push to GitHub
What it does: Creates a standalone, self-contained documentation package
- Purpose: Generates a complete offline/portable documentation site
- Technology: Downloads Swagger UI + converts Markdown to HTML using Pandoc
- Hosting: Can be deployed anywhere (not tied to GitHub)
- Content: Swagger UI + converted HTML versions of your docs + custom landing page
- Theme: Custom CSS styling (defined in the script)
- Manual: Run the script when you want to generate a package
📖 Detailed Guide: For comprehensive instructions on using generate-docs.sh, including troubleshooting, deployment options, and advanced usage, see Documentation Generation Guide.
# Make script executable
chmod +x generate-docs.sh
# Generate documentation
./generate-docs.sh
# Serve locally (required for Swagger UI)
cd docs-site
python3 -m http.server 8081
# View at: http://localhost:8081/landing.html| Feature | Jekyll | generate-docs.sh |
|---|---|---|
| Live API Testing | No | Yes (Swagger UI) |
| GitHub Integration | Automatic | Manual |
| Offline Use | Requires GitHub | Self-contained |
| Styling | Professional theme | Custom CSS |
| Maintenance | Auto-updates | Manual regeneration |
https://kolchfa-aws.github.io/rest-demo/
├── tech-writer-reference/TECH_WRITER_GUIDE.html
├── tech-writer-reference/01-generated-documentation-guide.html
└── [All your markdown files as styled web pages]
docs-site/
├── index.html # Swagger UI for API testing
├── landing.html # Custom homepage
├── customer-api.yaml # OpenAPI spec
├── tech-writer-reference/ # HTML versions of guides
└── api-assets/ # Postman collections, etc.
- Professional documentation website
- Easy GitHub Pages hosting
- Automatic updates when you commit
- Documentation-focused site
- Interactive API documentation with testing capability
- Offline documentation packages
- Self-contained deliverables for clients
- When you need Swagger UI functionality
You can use both approaches depending on your needs:
- Jekyll for your main documentation site (live at GitHub Pages)
- generate-docs.sh when you need to create packages with interactive API testing
The Jekyll setup is perfect for your current documentation structure, while generate-docs.sh adds the interactive Swagger UI capability that Jekyll doesn't provide.