Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Extend with Plugins

Customize and extend Jupyter Book with plugins that add custom directives, roles, and content transforms. Common use cases include domain-specific content blocks, specialized inline markup, integrations with external tools, and AST transforms that modify content during the build. For community-contributed examples, see the Jupyter Book MyST plugins repository.

JavaScript plugins

JavaScript plugins are written as .mjs files and can define new directives, roles, and AST transforms. They run inside the MyST build pipeline and have full access to the document tree.

For the authoring guide, see JavaScript Plugins.

Widgets / anywidgets

Widgets are interactive UI components that you can embed in your pages, built on top of MyST’s plugin system and the anywidget specification.

For the widget authoring guide, see Widgets.

Distributing plugins

Plugins can be shared as standalone files, npm packages, or release artifacts so other projects can install them by URL or package name.

For packaging and distribution patterns, see Package and distribute plugins.

Executable plugins

Executable plugins let you write plugins in any language (Python is the most common). MyST invokes the plugin as a subprocess, passing AST nodes over stdin and reading back the transformed result.

For setup and examples, see Write plugins in other languages.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.