mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-03 05:19:30 +08:00
34 lines
731 B
Text
34 lines
731 B
Text
/**
|
|
* @typedef {import('micromark-util-types').Code} Code
|
|
*/
|
|
import {
|
|
markdownLineEndingOrSpace,
|
|
unicodePunctuation,
|
|
unicodeWhitespace
|
|
} from 'micromark-util-character'
|
|
|
|
/**
|
|
* 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 === null ||
|
|
markdownLineEndingOrSpace(code) ||
|
|
unicodeWhitespace(code)
|
|
) {
|
|
return 1
|
|
}
|
|
|
|
if (unicodePunctuation(code)) {
|
|
return 2
|
|
}
|
|
}
|