Conversation
|
@kp992 thanks for opening this. Excellent work! It is exciting to see how close we are now. From my review it looks like there a just a few issues and features we need before launch. Bugs:
Features:
|
- Add `markdown: commonmark` to all 24 lecture export configs so ipynb exports produce plain CommonMark markdown cells compatible with vanilla Jupyter Notebook, JupyterLab, and Google Colab - Add build-ipynb.yml workflow that clones QuantEcon/mystmd@myst-to-ipynb, builds from source, exports all ipynb files, and audits for MyST leaks - All 24 notebooks pass audit (0 MyST syntax leaks) Uses QuantEcon/mystmd myst-to-ipynb branch which adds: - CommonMark AST pre-transform (admonitions, math, figures, exercises, etc.) - Identifier/label stripping to prevent (label)= prefixes - Image directive stripping for plain  output - Empty cell filtering and block marker removal
|
Thanks @mmcky for pushing this forward. Please let me know if you need help in taking this to finish line. |
|
Netlify preview only, not a production concern: assets here are served with |
Takes the theme from v2.2.0 to v2.3.0, per the release notes in QuantEcon/quantecon-theme.mystmd — git-history page headers (automatic, from this repo's git log at build time), opt-in in-page live compute via project.thebe (not enabled here), and CDN-free stylesheets (KaTeX/jupyter-matplotlib self-hosted, Font Awesome dropped), so maths renders correctly where jsdelivr/cdnjs are blocked. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@DrDrij I have just updated this to the latest release of quantecon-theme.mystmd incorporate recent merges. |
Resolves the two ci.yml conflicts, both from main evolving steps that jb2 rewrote for the mystmd toolchain: - Install JAX: took main's side — the jax 0.11.0 pin rationale comment (jax 0.11.1 hangs fori_loop on CPU paths) and the numpyro install apply to the executed lectures regardless of build toolchain. - The old jupyter-book steps (texlive, build-cache download, the jb clean prune from #616, sphinx-tojupyter): kept jb2's side — these steps do not exist in the myst pipeline, which builds cold with no restored sphinx cache, so the staleness problem the prune step addresses cannot occur here. The execution-cache key hashes ci.yml, so this merge forces a cold build — the pin, numpyro, and the v2.3.0 theme bump are all validated by real execution rather than replayed outputs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Takes the icon-only search trigger, PT Serif headings, QuantEcon-blue links, the Colab-only launcher and the first-paint fixes released today. Bumped from v2.3.0, so v2.3.1 (static-build asset URLs) and v2.4.0 (content typography, inline-code regression) come along too. See QuantEcon/quantecon-theme.mystmd/releases/tag/v2.5.0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Bumped the theme pin in |
# Conflicts: # .github/workflows/ci.yml
Takes the QuantEcon code-token palette and seoul256 text colours (Phase 3), the language switcher with hreflang alternates, right-to-left support and the translator credit (Phases 4-5). No new site options are set here yet; the multilingual ones are for the translated editions. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Bumped the pinned theme to v2.6.0 in b9524ff. It brings the QuantEcon code-token palette and seoul256 text colours (Phase 3), and the language switcher, hreflang alternates, RTL support and translator credit (Phases 4–5). This edition sets none of the new multilingual options, so the only visible change here is the code and text colouring; the switcher appears once |
Patch release carrying the fix for QuantEcon/quantecon-theme.mystmd#186: on the Netlify preview, pressing Back after following an in-page anchor replaced the page with an "Application Error" screen, and the "Top" control did a full reload. No configuration changes are needed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Pinned theme bumped to v2.6.1, the patch release carrying the fix for QuantEcon/quantecon-theme.mystmd#186 (Back after an in-page anchor showed an "Application Error" screen on the Netlify preview; "↑ Top" did a full reload). No configuration changes. The preview built from this commit is the first real-content check of that fix. |
v2.7.0 carries the last items of the book-theme parity gate: the pinned, scroll-tracking "On this page" panel with nested subsections (QuantEcon/quantecon-theme.mystmd#182), collapsible stderr warnings and the full OpenGraph/Twitter card set (QuantEcon/quantecon-theme.mystmd#92), and a layout correction for desktop windows 1280-1327px wide (QuantEcon/quantecon-theme.mystmd#198). No configuration changes are needed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Pinned theme bumped to v2.7.0 in 41b1f83. It carries the last items of the book-theme parity gate: the pinned, scroll-tracking "On this page" panel with nested subsections (QuantEcon/quantecon-theme.mystmd#182), stderr output folded behind a "Code warnings" disclosure (QuantEcon/quantecon-theme.mystmd#92), and a layout correction for desktop windows 1280–1327px wide (QuantEcon/quantecon-theme.mystmd#198). No configuration changes are needed; this branch sets no |
Experimental setup for building the lectures with the QuantEcon MyST stack. This PR is built on top of #345.
Current toolchain
Both workflows now build with the QuantEcon fork of the MyST CLI and the new theme, so the Netlify preview shows the latest content rendered by the latest tooling.
QuantEcon/mystmdmain, cloned and built from source with bun;quantecon/VERSION.ymlis printed to the log so every build records theqe-vNfork state it ran with (currentlyv1.10.1 (qe-v8)).github/workflows/ci.yml,.github/workflows/build-ipynb.ymlquantecon-theme.mystmdv2.2.0, pinned to the release ziplectures/myst.yml(site.template)myst build --html --execute.github/workflows/ci.ymlmainThe theme moves off the archived
QuantEcon/quantecon-themebundle (which the branch was still pulling as a floatingmain.zip) onto a pinned release of the new theme repo. Bump thevX.Y.Zin thesite.templateURL to take a newer theme; the fork stays onmaindeliberately, so the preview tracks the latest tooling.The build was not actually using the fork
Worth calling out separately, because it had been green and invisible: until this update the HTML preview was built by
jupyter book build, which cannot use the fork. jupyter-book 2.x is a thin Python shim —jupyter_book/__main__.pyexecs a compiled mystmd bundle vendored inside its own wheel (jupyter_book/dist/jupyter-book.cjs) and exposes no hook to point it at another CLI. The globally installed fork was simply ignored, and only thebuild-ipynbworkflow (which callsmystdirectly) ever exercised it.The last run before the fix shows it plainly: the jupyter-book HTML build emitted 27 ×
'output' unknown export output extension: exports/<page>.ipynb, because the per-page ipynb export is a fork feature (myst-to-ipynb,qe-v1) that upstream does not know about. The same commit built by the fork'smyst build --ipynbemitted none and exported 23 clean notebooks. The HTML build now runsmyst build --html --execute— the same engine and the same flags, since jupyter-book 2.x is mystmd, just our build of it.Everything else in this update
main. Brings in the new Polars lecture, the numba rewrite, thepandas_panelswitch to remote CSVs, and the translation-sync workflows. The one conflict wasci.yml, wheremainand this branch have rewritten the same job for different builders — resolved in favour of this branch's job, keepingmain's runner spec and action bumps.myst.ymlTOC re-synced with_toc.yml. It had drifted:autodiffand the newpolarslecture were missing,workspaceappeared twice, and one part title differed. The two files now list exactly the same 27 pages.project.githubcorrected tolecture-python-programming— it pointed atlecture-python-programming.myst, which now only survives as a rename redirect. The theme derives the notebook-launch repo from this value plus a.notebookssuffix, so a stale name means broken launch buttons.ModuleNotFoundErrorcells forjax_intro,autodiffandnumpy_vs_numba_vs_jax, because this job installed onlymyst_requirements.txtwhile the jupyter-book 1.x job onmaininstallsjax[cuda13]separately. Same install, same runner family..nvmrc; it runs as a Remix server duringmyst build --html). This also clears the Node 20 runtime deprecation warnings. The unusedconfigure-pagesstep is gone — this job deploys to Netlify, not Pages.foo.py,newfile.txt,numbers.txt,output.txt,output2.txt,test_table.csv,us_cities.txt). All are written by%%file/%%writefilecells in the lectures themselves, all are matched by.gitignore, and none exist onmain.Still open
maingained a gate for the jupyter-book 1.x path in CI: gate the first jb build so notebook errors cannot pass green #588; the fork's CLI hasmyst build --strictfor this, but it should be turned on only once the remaining build diagnostics are triaged, or it will fail on unrelated warnings.<repo>.notebooks, branchmain, notebooks at the repo root), matching the layout oflecture-python-programming.notebooks. Worth clicking through in the preview to confirm the page location resolves as expected.