1234567891011121314151617181920212223242526272829303132333435363738 |
- /**
- * @typedef {import('micromark-util-types').Code} Code
- */
- import {
- markdownLineEndingOrSpace,
- unicodePunctuation,
- unicodeWhitespace
- } from 'micromark-util-character'
- import {codes, constants} from 'micromark-util-symbol'
- /**
- * Classify whether a 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**: eof (`null`) is seen as whitespace.
- *
- * @param {Code} code
- * Code.
- * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}
- * Group.
- */
- export function classifyCharacter(code) {
- if (
- code === codes.eof ||
- markdownLineEndingOrSpace(code) ||
- unicodeWhitespace(code)
- ) {
- return constants.characterGroupWhitespace
- }
- if (unicodePunctuation(code)) {
- return constants.characterGroupPunctuation
- }
- }
|