/** | |
* @typedef {import('micromark-util-types').Construct} Construct | |
* @typedef {import('micromark-util-types').State} State | |
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext | |
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer | |
*/ | |
import {factorySpace} from 'micromark-factory-space' | |
import {markdownLineEnding} from 'micromark-util-character' | |
/** @type {Construct} */ | |
export const lineEnding = { | |
name: 'lineEnding', | |
tokenize: tokenizeLineEnding | |
} | |
/** | |
* @this {TokenizeContext} | |
* @type {Tokenizer} | |
*/ | |
function tokenizeLineEnding(effects, ok) { | |
return start | |
/** @type {State} */ | |
function start(code) { | |
effects.enter('lineEnding') | |
effects.consume(code) | |
effects.exit('lineEnding') | |
return factorySpace(effects, ok, 'linePrefix') | |
} | |
} | |