Package Exports
- micromark-factory-mdx-expression
Readme
micromark-factory-mdx-expression
micromark factory to parse MDX expressions (found in JSX attributes, flow, text).
Contents
Install
npm:
npm install micromark-factory-mdx-expressionUse
import assert from 'node:assert'
import {factoryMdxExpression} from 'micromark-factory-mdx-expression'
import {codes} from 'micromark-util-symbol/codes'
// 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)
}
// …
}API
This module exports the following identifiers: factoryMdxExpression.
There is no default export.
The export map supports the endorsed
development condition.
Run node --conditions development module.js to get instrumented dev code.
Without this condition, production code is loaded.
factoryMdxExpression(…)
Parameters
effects(Effects) — Contextok(State) — State switched to when successfultype(string) — Token type for whole ({})markerType(string) — Token type for the markers ({,})chunkType(string) — Token type for the value (1)acorn(Acorn) — Object withacorn.parseandacorn.parseExpressionAtacornOptions(AcornOptions) — Configuration for acornboolean(addResult, default:false) — Addestreeto tokenboolean(spread, default:false) — Support a spread ({...a}) onlyboolean(allowEmpty, default:false) — Support an empty expressionboolean(allowLazy, default:false) — Support lazy continuation of an expression
Returns
State.
Examples
See micromark-extension-mdx-expression
Security
See security.md in micromark/.github for how to
submit a security report.
Contribute
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.