A dedicated MyST site theme for QuantEcon report sites: the
standing conformance ledgers of the compliance-* repositories first
(QuantEcon/compliance-lecture-style
is the first consumer), with the audit-* and status-* repository types to follow.
It is the sibling of the lecture theme,
quantecon-theme.mystmd, and
follows the same release mechanics: a zip attached to each GitHub Release, pinned by URL
from a project's myst.yml.
The .mystmd suffix marks a repository as tooling for the mystmd engine (the
JavaScript myst CLI that Jupyter Book ≥ 2 is built on), as distinct from content
repositories and from the Sphinx / myst-parser world.
Planning complete (2026-09-02); Phase 0 scaffold in progress. Work hangs off the Project-typed
tracker #2; its
sub-issues are the phases. Dark and auto colour schemes are a future request,
#11. The generic
directives are tracked in
quantecon-plugins.mystmd#2
and the ledger's migration in
compliance-lecture-style#28. The design brief, the review that shaped the
decisions, and the phased plan are in
docs/design-handoff-2026-09/:
| File | What it is |
|---|---|
README.md |
The design brief: goals, data contracts, directive set, component specs, tokens, acceptance criteria |
REVIEW.md |
Findings with evidence, and the decision record (D1–D8) |
PLAN.md |
The phased plan across the three repositories of the family |
*.dc.html + support.js |
High-fidelity references for the landing, series, lecture and charts pages (open next to support.js). They load React, ReactDOM and Babel from unpkg when opened and evaluate their inline component script, so treat them as local design references only, never as code to ship |
Each vX.Y.Z release attaches two assets:
| Asset | Purpose | Pinned from myst.yml as |
|---|---|---|
quantecon-theme-report.zip |
the theme | site.template |
compliance.mjs |
the compliance directives (qe-*): CSV-backed, rubric-aware wrappers that emit portable MyST AST |
an entry in project.plugins |
The generic data-presentation directives those wrappers build on ship separately from
quantecon-plugins.mystmd as
datavis.mjs; the per-page git history comes from the lecture theme's
git-metadata.mjs. A compliance site pins all three plugin URLs plus the theme zip.
- Portable AST, no custom node types. Every directive emits standard MyST nodes
(classed
div/span, tables, lists, admonitions, coregrid/card) with tone hints, so content renders in any theme and in PDF export; this theme upgrades those nodes. - Numbers are derived, never typed. Directives read the ledger's CSVs at build time;
a missing file or a typed count that disagrees with the data fails a
--strictbuild. - Self-contained. No shared package with the lecture theme; the family is held together by naming, copied scaffolding and a conventions document.
npm ci # package-lock.json is committed
npm run compile # tsc --noEmit
npm run prod:build # Tailwind + Remix + asset-URL rewrite
make build-zip # the release-equivalent bundle, in .deploy/CONTRIBUTING.md covers the scripts, the test harness and the
release flow; SECURITY.md covers the Remix v1 pin and the dependency
overrides posture. The build, test and release machinery was copied from the lecture
theme and is owned here — a fix in one repository does not reach the other. The
conventions the two are meant to keep in step will be written down in the lecture
theme's FAMILY.md and linked from here once that lands.
MIT — see LICENSE.