FuguWeb
Build a documentation website for a Perl project.
fuguweb renders one static site from the documentation that a Perl project
already keeps: mdoc(7) manuals, POD sidecars, and Markdown. There is no
templating language and no JavaScript.
The tool runs mandoc, lowdown, and pod2man, and wraps each result in one
shared chrome. A project describes its site in one .fuguwebrc at its root and
needs no build recipe of its own.
FuguWeb uses Perl (v5.36) over the Fugu library, with zero CPAN dependencies. The specification in spec/ states the design.
Quick start
make deps
bin/fuguweb init
bin/fuguweb build --out web/build
bin/fuguweb check --out web/build
make deps installs the latest Fugu release and the renderers. See
INSTALL.md for full instructions.
make deps verifies every download. The Fugu release carries a signed SHA256
manifest, and deps/KEYS.txt declares the release key of the organization by
URL and digest. scripts/deps fetches that key, holds it to the digest, and
verifies the manifest with signify(1). deps/SHA256.txt records the digest of
each other download.
make deps also installs gitleaks, the tool of the secret gate. It installs the
tool environment before every other environment, so the gate tool is present
for each chain. The CI gate installs gitleaks with make deps, so one pin
serves the operator gate and the CI gate.
Documentation
man fuguweb — or mandoc man/fuguweb/fuguweb.1 | less from a checkout — holds
the full command, option, and exit-code reference. Each module documents its API
in a .pod sidecar; start with lib/App/FuguWeb.pod.
License
ISC. See LICENSE.