Urara-Blog/node_modules/.pnpm-store/v3/files/69/2c2783263da6f1e46df0d23aaa3e613917f8c96901dc7be2af4afe2caac871ba842a5965955b716fed49ff27cd0d0b0228b2af9009f7a6b1dee646d5b3f172
2022-08-14 01:14:53 +08:00

37 lines
918 B
Text

/**
* @typedef {import('micromark-util-types').Code} Code
*/
import {
markdownLineEndingOrSpace,
unicodePunctuation,
unicodeWhitespace
} from 'micromark-util-character'
import {codes} from 'micromark-util-symbol/codes.js'
import {constants} from 'micromark-util-symbol/constants.js'
/**
* Classify whether a character code represents whitespace, punctuation, or
* something else.
*
* Used for attention (emphasis, strong), whose sequences can open or close
* based on the class of surrounding characters.
*
* Note that eof (`null`) is seen as whitespace.
*
* @param {Code} code
* @returns {number|undefined}
*/
export function classifyCharacter(code) {
if (
code === codes.eof ||
markdownLineEndingOrSpace(code) ||
unicodeWhitespace(code)
) {
return constants.characterGroupWhitespace
}
if (unicodePunctuation(code)) {
return constants.characterGroupPunctuation
}
}