micromark extensions to support MDX.
- What is this?
- When to use this
- Install
- Use
- API
- Authoring
- Syntax
- Errors
- Types
- Compatibility
- Security
- Related
- Contribute
- License
This package contains an extension that adds support for the syntax enabled
by MDX to micromark
.
This extension is used inside MDX.
It supports export/imports, expressions, JSX, and turns some markdown features
off.
This project is useful when you want to support MDX.
You can use this extension when you are working with micromark
.
This package is aware of JavaScript syntax.
If you want to be unaware of JavaScript, for example because expressions can
include Rust or variables or whatnot, use
micromark-extension-mdx
.
Alternatively, you can also use the underlying syntax extensions separately:
micromark-extension-mdx-expression
— support MDX expressionsmicromark-extension-mdx-jsx
— support MDX JSXmicromark-extension-mdx-md
— turn some CommonMark features offmicromark-extension-mdxjs-esm
— support MDX export/imports
When you need a syntax tree, combine this package with
mdast-util-mdx
.
All these packages are used in remark-mdx
, which focusses on
making it easier to transform content by abstracting these internals away.
This package is ESM only. In Node.js (version 16+), install with npm:
npm install micromark-extension-mdxjs
In Deno with esm.sh
:
import {mdxjs} from 'https://esm.sh/micromark-extension-mdxjs@2'
In browsers with esm.sh
:
<script type="module">
import {mdxjs} from 'https://esm.sh/micromark-extension-mdxjs@2?bundle'
</script>
import {micromark} from 'micromark'
import {mdxjs} from 'micromark-extension-mdxjs'
const output = micromark('import a from "b"\n\na <b /> c {1 + 1} d', {
extensions: [mdxjs()]
})
console.log(output)
Yields:
<p>a c d</p>
…which is useless: go to a syntax tree with
mdast-util-from-markdown
and
mdast-util-mdx
instead.
This package exports the identifier mdxjs
.
There is no default export.
The separate extensions support the development
condition.
Run node --conditions development module.js
to get instrumented dev code.
Without this condition, production code is loaded.
Create an extension for micromark
to enable MDX syntax.
options
(Options
, optional) — configuration; passed to all extensions
Extension for micromark
that can be passed in extensions
to enable MDX
syntax (Extension
).
Configuration (TypeScript type).
export type {Options} from 'micromark-extension-mdx-expression'
See Options
.
For recommendations on how to author MDX, see each corresponding readme:
For info on the syntax of these features, see each corresponding readme:
- expressions
- JSX
- ESM
- CommonMark features not in MDX: n/a
For info on what errors are thrown, see each corresponding readme:
- expressions
- JSX
- ESM
- CommonMark features not in MDX: n/a
This package is fully typed with TypeScript.
It exports the additional type Options
.
Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of
Node.
This means we try to keep the current release line,
micromark-extension-mdxjs@^2
, compatible with Node.js 16.
This package works with micromark
version 3
and later.
This package is safe.
micromark-extension-mdx
— support MDX unaware of JSmdast-util-mdx
— support MDX in mdastremark-mdx
— support MDX syntax in remark
See contributing.md
in micromark/.github
for ways to get
started.
See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.