123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /**
- * @typedef {import('mdast').Emphasis} Emphasis
- * @typedef {import('mdast').Parents} Parents
- * @typedef {import('../types.js').Info} Info
- * @typedef {import('../types.js').State} State
- */
- import {checkEmphasis} from '../util/check-emphasis.js'
- emphasis.peek = emphasisPeek
- // To do: there are cases where emphasis cannot “form” depending on the
- // previous or next character of sequences.
- // There’s no way around that though, except for injecting zero-width stuff.
- // Do we need to safeguard against that?
- /**
- * @param {Emphasis} node
- * @param {Parents | undefined} _
- * @param {State} state
- * @param {Info} info
- * @returns {string}
- */
- export function emphasis(node, _, state, info) {
- const marker = checkEmphasis(state)
- const exit = state.enter('emphasis')
- const tracker = state.createTracker(info)
- let value = tracker.move(marker)
- value += tracker.move(
- state.containerPhrasing(node, {
- before: value,
- after: marker,
- ...tracker.current()
- })
- )
- value += tracker.move(marker)
- exit()
- return value
- }
- /**
- * @param {Emphasis} _
- * @param {Parents | undefined} _1
- * @param {State} state
- * @returns {string}
- */
- function emphasisPeek(_, _1, state) {
- return state.options.emphasis || '*'
- }
|