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.