micromark-factory-mdx-expression

micromark factory to parse MDX expressions (found in JSX attributes, flow, text)

Usage no npm install needed!

<script type="module">
  import micromarkFactoryMdxExpression from 'https://cdn.skypack.dev/micromark-factory-mdx-expression';
</script>

README

micromark-factory-mdx-expression

Build Coverage Downloads Size Sponsors Backers Chat

micromark factory to parse MDX expressions (found in JSX attributes, flow, text).

Contents

Install

npm:

npm install micromark-factory-mdx-expression

Use

import {ok as assert} from 'uvu/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) — 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 with acorn.parse and acorn.parseExpressionAt
  • acornOptions (AcornOptions) — Configuration for acorn
  • boolean (addResult, default: false) — Add estree 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
  • number (startColumn, default: 0) — Treat whitespace up to this number and a tab size as indent
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.

License

MIT © Titus Wormer