Unified book/notebook authoring toolchain: pandoc markdown + executed jupytext sources to JSON artifact, HTML preview, and print PDF
Project description
parody
A play on parity: keeping the print and web versions of a work in parity.
One authoring toolchain for books and course notebooks: pandoc markdown (with executed jupytext code cells) in, multiple targets out —
- JSON artifact (schema-versioned; the contract consumed by ricopic.one's Django importer and other tools)
- standalone HTML preview (no server needed; resolves the artifact's site-template tags itself)
- print-quality PDF via LaTeX profiles (lualatex/latexmk; generic profile bundled, book-private profiles pluggable)
Parody unifies and replaces the toolchains of two ancestor systems: the
homepage-django notebooks pipeline and the rtc-book meta-* book machinery.
See NEW_PROJECT_SEED_PLAN.md for the full plan.
Install / develop
Requires Python ≥ 3.11 and pandoc (pinned version in
parody/toolchain.py), or use the Dockerfile/devcontainer.
uv sync # create venv + install
uv run parody --help
uv run pytest # golden tests need the ancestor corpora; see tests/golden/
CLI
parody init <dir> # scaffold a content repo (incl. CI workflow)
parody build <project_dir> <output.json> # build the JSON artifact (executes code)
parody preview <project_dir> -o preview # static HTML site for review
parody watch <project_dir> # rebuild on save (pip install 'parody[watch]')
parody pdf <project_dir> [--solutions] [--section ch/sec] # print PDF (needs TeX)
parody check <artifact.json> # validate artifact against schema
parody check --toolchain # verify pinned toolchain versions
Content repos use parody.yaml + chapters/<ch>/<sec>.md; the legacy
System A layout (__meta.yaml + chapter_*/) builds bit-compatibly and
remains covered by golden tests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file parody-0.9.0.tar.gz.
File metadata
- Download URL: parody-0.9.0.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf4dab2e793f6f214c6dc40ff9b157678089cc5d8c07a412646ddc7f26ebd0e8
|
|
| MD5 |
14bd844160973c20a9ac2b9f19b44ccb
|
|
| BLAKE2b-256 |
ed5bf5422f227e40a9dd8deb3a745fc60f20d8a697ad3c85d895218987ba31ee
|
File details
Details for the file parody-0.9.0-py3-none-any.whl.
File metadata
- Download URL: parody-0.9.0-py3-none-any.whl
- Upload date:
- Size: 141.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f92d4329e4ea3394f17acd6b504f5e7bd0632c8c02015e50fda9cdafd0c5e47
|
|
| MD5 |
720bfcebe0848c2bea169cf8791e1f8d
|
|
| BLAKE2b-256 |
1556abfb5e534c7d822db8655152e41eeaa4115731305e6e3298f800e0a1e47d
|