Contents

Use Make Helpers

The Makefile provides short commands for common local workflows. Direct Python and Podman commands remain available when troubleshooting or integrating with other tools.

Show available commands#

make help

Run Make from the Simple Docs repository. External documentation can remain in another public or private repository.

Podman Make helpers require GNU realpath with -m support. Make helpers also require SOURCE and BUILD_DIR paths without whitespace. Use the direct Python or Podman commands when a path contains spaces.

Generate the bundled example#

make bundle

This generates:

.build-simple-docs/
├── site/
└── manual-site.tar.gz

Generate an offline ZIP beside those hosted outputs:

make offline-bundle

The additional file is:

.build-simple-docs/manual-site-offline.zip

Extract it and open manual-site-offline/index.html. No server is required.

Preview the example with Python:

make preview PORT=8000

Open http://localhost:8000/manual/ and stop the server with Ctrl-C.

Run the example through nginx:

make example PORT=8080

Select the light paper theme for any build or runtime helper:

make bundle THEME=paper
make offline-bundle THEME=paper
make example THEME=paper PORT=8080

Generate external documentation with Python#

Override SOURCE with the documentation source directory:

make bundle SOURCE=/absolute/path/to/private-project/docs

The output remains under .build-simple-docs/ in the Simple Docs repository. Override BUILD_DIR to place generated files elsewhere:

make bundle \
  SOURCE=/absolute/path/to/private-project/docs \
  BUILD_DIR=/absolute/path/to/private-project-build

Generate external documentation in a container#

make bundle-container \
  SOURCE=/absolute/path/to/private-project/docs

This builds the reusable builder image, mounts SOURCE read-only, and writes the generated site and bundle under .build-simple-docs/.

Generate and serve the same source through nginx:

make run-container \
  SOURCE=/absolute/path/to/private-project/docs \
  PORT=8080

nginx runs in the foreground. Stop it with Ctrl-C.

Build for a project URL#

Bundle targets accept BASE_PATH:

make bundle-container \
  SOURCE=/absolute/path/to/private-project/docs \
  BASE_PATH=/project-name/

make preview and make run-container require BASE_PATH=/ because their local servers mount the generated site at the domain root.

Override helper settings#

The commonly used variables are:

SOURCE          Documentation source directory
BUILD_DIR       Generated site and bundle parent
BASE_PATH       Deployment URL prefix
THEME           Bundled theme name
PORT            Local server port
PYTHON          Python executable
PODMAN          Podman executable
REALPATH         GNU realpath executable
CHROMIUM        Chromium executable
BUILDER_IMAGE   Builder image name
RUNTIME_IMAGE   nginx runtime image name

Run project checks#

make test
make verify
make test-browser

make verify runs the unit tests and generates the hosted bundle. Use make offline-bundle when the downloadable ZIP is also needed. The optional make test-browser target builds temporary hosted and offline fixtures, then uses Chromium to exercise interactive search behavior.

Return to the generating sites overview, or review the direct Python, container, and serving workflows. See create and select themes to add a theme.