micromark factory to parse MDX expressions (found in JSX attributes, flow, text).
This package is ESM only. In Node.js (version 16+), install with npm:
npm install micromark-factory-mdx-expression
In Deno with esm.sh
:
import {factoryMdxExpression} from 'https://esm.sh/micromark-factory-mdx-expression@2'
In browsers with esm.sh
:
<script type="module">
import {factoryMdxExpression} from 'https://esm.sh/micromark-factory-mdx-expression@2?bundle'
</script>
import {ok as assert} from 'devlop'
import {factoryMdxExpression} from 'micromark-factory-mdx-expression'
import {codes} from 'micromark-util-symbol'
// A micromark tokenizer that uses the factory:
/** @type {Tokenizer} */
function tokenizeFlowExpression(effects, ok, nok) {
return start
// …
/** @type {State} */
function start(code) {
assert(code === codes.leftCurlyBrace, 'expected `{`')
return factoryMdxExpression.call(
self,
effects,
factorySpace(effects, after, types.whitespace),
'mdxFlowExpression',
'mdxFlowExpressionMarker',
'mdxFlowExpressionChunk',
acorn,
acornOptions,
addResult,
spread,
allowEmpty
)(code)
}
// …
}
This module exports the identifier
factoryMdxExpression
.
There is no default export.
The export map supports the development
condition.
Run node --conditions development module.js
to get instrumented dev code.
Without this condition, production code is loaded.
-
effects
(Effects
) — context -
ok
(State
) — state switched to when successful -
type
(string
) — token type for whole ({}
) -
markerType
(string
) — token type for the markers ({
,}
) -
chunkType
(string
) — token type for the value (1
) -
acorn
(Acorn
) — object withacorn.parse
andacorn.parseExpressionAt
-
acornOptions
(AcornOptions
) — configuration for acorn -
boolean
(addResult
, default:false
) — addestree
to token -
boolean
(spread
, default:false
) — support a spread ({...a}
) only -
boolean
(allowEmpty
, default:false
) — support an empty expression -
boolean
(allowLazy
, default:false
) — support lazy continuation of an expression
State
.
This package is fully typed with TypeScript.
It exports the additional types Acorn
and
AcornOptions
.
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-factory-mdx-expression@^2
, compatible with Node.js 16.
This package works with micromark
version 3
and later.
This package is safe.
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, organisation, or community you agree to abide by its terms.