Urara-Blog/node_modules/.pnpm-store/v3/files/8b/7f9aa5502d813785e6c578964ad0b718b2d6428b7a5ae3ff44ac4502644f958bded5dfba0d1d8c7a778922afe6d62f3672c28acc4e7419a9f1c42b35457b77
2022-08-14 01:14:53 +08:00

36 lines
852 B
Text

/**
* @typedef {import('micromark-util-types').Construct} Construct
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
* @typedef {import('micromark-util-types').State} State
*/
import {markdownLineEnding} from 'micromark-util-character'
/** @type {Construct} */
export const hardBreakEscape = {
name: 'hardBreakEscape',
tokenize: tokenizeHardBreakEscape
}
/** @type {Tokenizer} */
function tokenizeHardBreakEscape(effects, ok, nok) {
return start
/** @type {State} */
function start(code) {
effects.enter('hardBreakEscape')
effects.enter('escapeMarker')
effects.consume(code)
return open
}
/** @type {State} */
function open(code) {
if (markdownLineEnding(code)) {
effects.exit('escapeMarker')
effects.exit('hardBreakEscape')
return ok(code)
}
return nok(code)
}
}