Skip to content

Instantly share code, notes, and snippets.

@jeetsukumaran
Created March 15, 2020 22:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeetsukumaran/f696c3146f230f550375269ec155aebc to your computer and use it in GitHub Desktop.
Save jeetsukumaran/f696c3146f230f550375269ec155aebc to your computer and use it in GitHub Desktop.
Modified Sphinx Makefile --- copies HTML documentation to project/docs folder to be deployed as a Github project static website
# Minimal makefile for Sphinx documentation
# Project organization assumed:
#
# project1/
# docs/
# src/
# project1/
# project1-docs/
# build/
# source/
# Makefile
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: publish help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@echo === Executing Sphinx build ...
@echo
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@if [ "$@" = "html" ]; then \
echo ;\
echo === Copying files to deploy directory ... ;\
echo ;\
mkdir -p "../../docs"; \
rsync -ap --progress --delete $(wildcard $(BUILDDIR)/html/*) "../../docs/"; \
else \
echo ;\
echo "(Not copying not HTML target)"; \
fi
publish:
git add source "../../docs"
git commit
git push
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment