| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /**
- * @import {
- * Construct,
- * State,
- * TokenizeContext,
- * Tokenizer
- * } from 'micromark-util-types'
- */
- import { markdownLineEnding } from 'micromark-util-character';
- /** @type {Construct} */
- export const hardBreakEscape = {
- name: 'hardBreakEscape',
- tokenize: tokenizeHardBreakEscape
- };
- /**
- * @this {TokenizeContext}
- * Context.
- * @type {Tokenizer}
- */
- function tokenizeHardBreakEscape(effects, ok, nok) {
- return start;
- /**
- * Start of a hard break (escape).
- *
- * ```markdown
- * > | a\
- * ^
- * | b
- * ```
- *
- * @type {State}
- */
- function start(code) {
- effects.enter("hardBreakEscape");
- effects.consume(code);
- return after;
- }
- /**
- * After `\`, at eol.
- *
- * ```markdown
- * > | a\
- * ^
- * | b
- * ```
- *
- * @type {State}
- */
- function after(code) {
- if (markdownLineEnding(code)) {
- effects.exit("hardBreakEscape");
- return ok(code);
- }
- return nok(code);
- }
- }
|