Files
coopgo/node_modules/micromark/lib/tokenize/label-start-image.mjs
sgauthier 6e64e138e2
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
planning
2024-10-14 09:15:30 +02:00

49 lines
1.1 KiB
JavaScript

import labelEnd from './label-end.mjs'
var labelStartImage = {
name: 'labelStartImage',
tokenize: tokenizeLabelStartImage,
resolveAll: labelEnd.resolveAll
}
export default labelStartImage
import assert from 'assert'
import codes from '../character/codes.mjs'
import types from '../constant/types.mjs'
function tokenizeLabelStartImage(effects, ok, nok) {
var self = this
return start
function start(code) {
assert(code === codes.exclamationMark, 'expected `!`')
effects.enter(types.labelImage)
effects.enter(types.labelImageMarker)
effects.consume(code)
effects.exit(types.labelImageMarker)
return open
}
function open(code) {
if (code === codes.leftSquareBracket) {
effects.enter(types.labelMarker)
effects.consume(code)
effects.exit(types.labelMarker)
effects.exit(types.labelImage)
return after
}
return nok(code)
}
function after(code) {
/* c8 ignore next */
return code === codes.caret &&
/* c8 ignore next */
'_hiddenFootnoteSupport' in self.parser.constructs
? /* c8 ignore next */ nok(code)
: ok(code)
}
}