Automate Your Knowledge Management with Sphinx

github repo

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.

hjkl / arrows Β· / search Β· :family Β· :tag Β· :datefrom Β· :dateto Β· ~/entries/slug Β· Ctrl+N/Ctrl+P for suggestions Β· Ctrl+C/Ctrl+G to cancel
entries 201/201 Β· entry -/-
:readyentries 201/201 Β· entry -/-