micromark-factory-mdx-expression
micromark factory to parse MDX expressions (found in JSX attributes, flow,
text).
Contents
Install
This package is ESM only.
In Node.js (version 12.20+, 14.14+, 16.0+, or 18.0+), install with npm:
npm install micromark-factory-mdx-expression
In Deno with esm.sh
:
import {mdxExpression} from 'https://esm.sh/micromark-factory-mdx-expression@1'
In browsers with esm.sh
:
<script type="module">
import {mdxExpression} from 'https://esm.sh/micromark-factory-mdx-expression@1?bundle'
</script>
Use
import {ok as assert} from 'uvu/assert'
import {factoryMdxExpression} from 'micromark-factory-mdx-expression'
import {codes} from 'micromark-util-symbol/codes'
function tokenizeFlowExpression(effects, ok, nok) {
return start
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 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 with acorn.parse
and acorn.parseExpressionAt
acornOptions
(AcornOptions
) — Configuration for acornboolean
(addResult
, default: false
) — Add estree
to tokenboolean
(spread
, default: false
) — Support a spread ({...a}
) onlyboolean
(allowEmpty
, default: false
) — Support an empty expressionboolean
(allowLazy
, default: false
) — Support lazy continuation of an
expressionnumber
(startColumn
, default: 0
) — Treat whitespace up to this number
and a tab size as indent
Returns
State
.
Examples
See micromark-extension-mdx-expression
Types
This package is fully typed with TypeScript.
It exports the additional types Acorn
and AcornOptions
.
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.
License
MIT © Titus Wormer