static

Automate Your Knowledge Management with Sphinx

A guide to setting up a static site and knowledge management system using Sphinx, with automation and deployment scripts.

Shipped January 2026

A static site and knowledge management system built with Sphinx, featuring automation scripts and a comprehensive documentation and article repository.


Features

  • Static site generation using Sphinx with HTML output
  • Automated deployment and backup scripts
  • Extensive collection of articles, tutorials, and reference materials
  • Support for bibliography management and citation
  • Integration with Dropbox for backup
  • Build automation with Makefile and Python scripts

Tech Stack

  • Primary Language: HTML (Sphinx-generated)
  • Scripting: Bash, Python 3.5+
  • Documentation: reStructuredText, Markdown, MyST
  • Build Tools: Make, Python subprocess
  • Deployment: ghp-import for GitHub Pages
  • Backup: Dropbox API

Getting Started

Prerequisites

  • Python 3.5 or higher
  • Dropbox SDK for Python (pip install dropbox)
  • Make
  • Bash shell

Installation

# Clone the repository
git clone https://github.com/justin-napolitano/journal.git
cd journal

# Install Python dependencies
pip install -r requirements.txt

# Optional: Install dependencies for Rocky Linux
pip install -r requirements_rocky.txt

Build the Documentation

# Clean previous builds
make clean

# Build HTML output
make html

Deployment

# Deploy to GitHub Pages
./deploy.sh

Backup

# Run backup script to upload HTML build to Dropbox
python3 backup_html.py

Project Structure

journal/
├── acp.sh                  # Bash script (purpose unspecified)
├── backup_html.py          # Python script to backup build/html to Dropbox
├── chtml.sh                # Bash script (purpose unspecified)
├── deploy.sh               # Bash script to deploy site using ghp-import
├── deployz.sh              # Bash script (alternative deploy script)
├── doit.sh                 # Bash script (purpose unspecified)
├── install.sh              # Bash script for installation
├── label_list.py           # Python script to read and display Sphinx pickle labels
├── latex/                  # Directory with LaTeX related files
├── Makefile                # Makefile for build automation
├── pullit.sh               # Bash script to pull updates
├── pushit.sh               # Bash script to push changes
├── python_build.py         # Python build automation script
├── requirements.txt        # Python dependencies
├── requirements_rocky.txt  # Python dependencies for Rocky Linux
├── requirments.txt         # Possibly a typo duplicate of requirements.txt
├── source/                 # Sphinx source files (Markdown and reStructuredText)
│   ├── _toc.yml            # Table of contents
│   ├── conf.py             # Sphinx configuration
│   ├── index.md            # Main landing page
│   ├── parts/              # Articles, tutorials, reference, contact, bibliography
│   └── ...
├── todo/                   # TODO notes
│   └── todo.md
└── uninstall.sh            # Bash script for uninstallation

Future Work / Roadmap

  • Improve automation scripts with better error handling and logging
  • Expand documentation with additional tutorials and reference materials
  • Enhance deployment process with CI/CD integration
  • Add support for additional output formats (e.g., PDF via LaTeX)
  • Refactor and document scripts for clarity and maintainability

For detailed documentation, visit https://docs.jnapolitano.io.

Need more context?

Want help adapting this playbook?

Send me the constraints and I'll annotate the relevant docs, share risks I see, and outline the first sprint so the work keeps moving.