123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /**
- * @typedef {import('mdast').Parents} Parents
- * @typedef {import('mdast').Strong} Strong
- * @typedef {import('../types.js').Info} Info
- * @typedef {import('../types.js').State} State
- */
- import {checkStrong} from '../util/check-strong.js'
- strong.peek = strongPeek
- // 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 {Strong} node
- * @param {Parents | undefined} _
- * @param {State} state
- * @param {Info} info
- * @returns {string}
- */
- export function strong(node, _, state, info) {
- const marker = checkStrong(state)
- const exit = state.enter('strong')
- const tracker = state.createTracker(info)
- let value = tracker.move(marker + marker)
- value += tracker.move(
- state.containerPhrasing(node, {
- before: value,
- after: marker,
- ...tracker.current()
- })
- )
- value += tracker.move(marker + marker)
- exit()
- return value
- }
- /**
- * @param {Strong} _
- * @param {Parents | undefined} _1
- * @param {State} state
- * @returns {string}
- */
- function strongPeek(_, _1, state) {
- return state.options.strong || '*'
- }
|