Fork of the MyST book theme for Jupyter Book 2.0 https://github.com/jupyter-book/myst-theme
  • TypeScript 86.2%
  • CSS 10.3%
  • JavaScript 3%
  • Makefile 0.2%
  • Shell 0.2%
Find a file
2026-07-07 22:26:31 +02:00
.binder Add Binder docs config (#868) 2026-04-27 15:30:49 -07:00
.changeset 📦 Move to React 19 and update peerDependencies (#634) 2026-06-04 22:37:46 +01:00
.github 📖 Remove storybook (#897) 2026-06-04 22:27:19 +01:00
.husky 🫓 change from npm to bun (#781) 2026-06-04 19:57:16 +01:00
.netlify/build-cache feat: add build-cache for netlify (#826) 2026-03-04 21:33:05 +00:00
docs 📖 Remove storybook (#897) 2026-06-04 22:27:19 +01:00
images 📖 Add README for myst-demo 2023-01-19 21:19:20 -07:00
packages Support "data" contribution type 2026-07-07 22:26:31 +02:00
patches Fix patch for Plotly 2026-06-19 09:41:08 +02:00
styles 🫓 change from npm to bun (#781) 2026-06-04 19:57:16 +01:00
template Add zisearch customizations: sidebar badges, full-width toggle, expandable tables 2026-06-15 11:04:31 +02:00
themes Only support jupyter lite for in-page execution with notebook opt-in 2026-06-19 10:21:57 +02:00
.eslintrc.js 🧹 Rename linting to curvenote 2022-07-11 12:42:31 -06:00
.gitignore Reformat main (#688) 2025-11-14 00:25:13 -08:00
.npmrc 🚀 Release 2023-01-11 16:07:12 -07:00
.prettierignore 🫓 change from npm to bun (#781) 2026-06-04 19:57:16 +01:00
.prettierrc 🧹 Linting 2022-07-05 17:14:49 -06:00
build-deploy.sh Add zisearch customizations: sidebar badges, full-width toggle, expandable tables 2026-06-15 11:04:31 +02:00
bun.lock Fix patch for Plotly 2026-06-19 09:41:08 +02:00
bunfig.toml 🫓 change from npm to bun (#781) 2026-06-04 19:57:16 +01:00
CONTRIBUTE.md 📖 Add a light testing guide (#727) 2025-12-04 18:12:49 +00:00
flake.lock maint: add simple nodejs flake (#568) 2025-03-20 15:21:34 +00:00
flake.nix maint: add simple nodejs flake (#568) 2025-03-20 15:21:34 +00:00
LICENSE ❤️ From Curvenote Executable Books 🚀 2023-02-02 21:15:03 -07:00
Makefile 🫓 change from npm to bun (#781) 2026-06-04 19:57:16 +01:00
netlify.toml 🫓 change from npm to bun (#781) 2026-06-04 19:57:16 +01:00
package.json Fix patch for Plotly 2026-06-19 09:41:08 +02:00
README.md 📖 Remove storybook (#897) 2026-06-04 22:27:19 +01:00
turbo.json 🫓 change from npm to bun (#781) 2026-06-04 19:57:16 +01:00

myst-theme

MIT License CI

This repository contains two things:

  • A react renderer for MyST AST and content, so you can render MyST node types as React components.
  • A book theme and an article theme that use this renderer along with Remix to create two different website experiences using the react components.

It also serves as the reference documentation for these themes at the URL below:

https://myst-theme.netlify.app/

Note

: This builds against the main branch of mystmd. This allows us to test out new theme features against the latest version of the MyST Engine.

Development

All dependencies for myst-theme are included in this repository (a monorepo!). The core themes are also included in this repository to aid in development.

Local development and live server preview

See the local development docs.

Architecture and tools we use

See the architecture and tools guide.

Documentation guide

See the documentation guide.

Deployment to NPM

To update the theme components on NPM:

bun run version
bun run publish

To update the themes for use with the MyST CLI:

make deploy-book
make deploy-article

This updates the git repository, and sometimes is a large diff and can cause git to hang, if that happens this command can help change the buffer size when sending the diff to GitHub:

git config --global http.postBuffer 157286400

Deployment to GH releases

The theme-assets.yml workflow builds the book and article themes and attaches book-theme.zip and article-theme.zip to a GitHub release. This is a first step toward distributing the themes as GitHub Releases instead of pushing to the myst-templates/*-theme repos (the make deploy-* flow above). Nothing consumes these yet - for now the workflow just makes the artifacts available. See the tracking issue for the broader migration.

How to publish

This normally happens automatically: when a changesets release publishes to NPM, the release.yml workflow creates the GitHub release and then calls this workflow to attach the theme zips to it.

You can also trigger it manually by creating a gitHub release; this can be done from the web UI, or from the command line using the GitHub CLI:

gh release create my-release --target <commit_ref> --title "A title" --notes "The release notes"

# you can also check the available releases with:
gh release list

Note that this works from a fork as well — handy for publishing a custom build of the themes; in which case you will use your custom theme by mentioning in your myst.yml file something like:

site:
  template:
    #  the fork owner  ↓↓↓↓↓↓↓
    #                                      the release name ↓↓↓↓↓↓↓↓↓↓
    https://github.com/my-orga/myst-theme/releases/download/my-release/book-theme.zip

Browse available versions

Published versions of the article and book themes can be found as GH releases