unified

Project: micromark/micromark

Package: micromark-factory-destination@1.0.0

  1. Dependents: 0
  2. micromark factory to parse destinations (found in resources, definitions)
  1. micromark 36
  2. factory 7
  3. destination 2

micromark-factory-destination

Build Coverage Downloads Size Sponsors Backers Chat

micromark factory to parse destinations (found in resources, definitions).

Contents

Install

This package is ESM only. In Node.js (version 12.20+, 14.14+, 16.0+, 18.0+), install with npm:

npm install micromark-factory-destination

In Deno with esm.sh:

import {factoryDestination} from 'https://esm.sh/micromark-factory-destination@1'

In browsers with esm.sh:

<script type="module">
  import {factoryDestination} from 'https://esm.sh/micromark-factory-destination@1?bundle'
</script>

Use

import {factoryDestination} from 'micromark-factory-destination'
import {codes} from 'micromark-util-symbol/codes'
import {types} from 'micromark-util-symbol/types'

// A micromark tokenizer that uses the factory:
/**
 * @this {TokenizeContext}
 * @type {Tokenizer}
 */
function tokenizeResource(effects, ok, nok) {
  return start

  // …

  /** @type {State} */
  function open(code) {
    if (code === codes.rightParenthesis) {
      return end(code)
    }

    return factoryDestination(
      effects,
      destinationAfter,
      nok,
      types.resourceDestination,
      types.resourceDestinationLiteral,
      types.resourceDestinationLiteralMarker,
      types.resourceDestinationRaw,
      types.resourceDestinationString,
      constants.linkResourceDestinationBalanceMax
    )(code)
  }

  // …
}

API

This module exports the following identifiers: factoryDestination. There is no default export.

factoryDestination(…)

Parameters
Returns

State.

Examples
<a>
<a\>b>
<a b>
<a)>
a
a\)b
a(b)c
a(b)

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