🎉 initiate project *astro_rewrite*
This commit is contained in:
parent
ffd4d5e86c
commit
2ba37bfbe3
8658 changed files with 2268794 additions and 2538 deletions
44
node_modules/micromark-factory-label/dev/index.d.ts
generated
vendored
Normal file
44
node_modules/micromark-factory-label/dev/index.d.ts
generated
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
/**
|
||||
* Parse labels.
|
||||
*
|
||||
* > 👉 **Note**: labels in markdown are capped at 999 characters in the string.
|
||||
*
|
||||
* ###### Examples
|
||||
*
|
||||
* ```markdown
|
||||
* [a]
|
||||
* [a
|
||||
* b]
|
||||
* [a\]b]
|
||||
* ```
|
||||
*
|
||||
* @this {TokenizeContext}
|
||||
* Tokenize context.
|
||||
* @param {Effects} effects
|
||||
* Context.
|
||||
* @param {State} ok
|
||||
* State switched to when successful.
|
||||
* @param {State} nok
|
||||
* State switched to when unsuccessful.
|
||||
* @param {TokenType} type
|
||||
* Type of the whole label (`[a]`).
|
||||
* @param {TokenType} markerType
|
||||
* Type for the markers (`[` and `]`).
|
||||
* @param {TokenType} stringType
|
||||
* Type for the identifier (`a`).
|
||||
* @returns {State}
|
||||
* Start state.
|
||||
*/
|
||||
export function factoryLabel(
|
||||
this: import('micromark-util-types').TokenizeContext,
|
||||
effects: Effects,
|
||||
ok: State,
|
||||
nok: State,
|
||||
type: TokenType,
|
||||
markerType: TokenType,
|
||||
stringType: TokenType
|
||||
): State
|
||||
export type Effects = import('micromark-util-types').Effects
|
||||
export type State = import('micromark-util-types').State
|
||||
export type TokenizeContext = import('micromark-util-types').TokenizeContext
|
||||
export type TokenType = import('micromark-util-types').TokenType
|
||||
173
node_modules/micromark-factory-label/dev/index.js
generated
vendored
Normal file
173
node_modules/micromark-factory-label/dev/index.js
generated
vendored
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
/**
|
||||
* @typedef {import('micromark-util-types').Effects} Effects
|
||||
* @typedef {import('micromark-util-types').State} State
|
||||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||||
* @typedef {import('micromark-util-types').TokenType} TokenType
|
||||
*/
|
||||
|
||||
import {markdownLineEnding, markdownSpace} from 'micromark-util-character'
|
||||
import {codes} from 'micromark-util-symbol/codes.js'
|
||||
import {constants} from 'micromark-util-symbol/constants.js'
|
||||
import {types} from 'micromark-util-symbol/types.js'
|
||||
import {ok as assert} from 'uvu/assert'
|
||||
|
||||
/**
|
||||
* Parse labels.
|
||||
*
|
||||
* > 👉 **Note**: labels in markdown are capped at 999 characters in the string.
|
||||
*
|
||||
* ###### Examples
|
||||
*
|
||||
* ```markdown
|
||||
* [a]
|
||||
* [a
|
||||
* b]
|
||||
* [a\]b]
|
||||
* ```
|
||||
*
|
||||
* @this {TokenizeContext}
|
||||
* Tokenize context.
|
||||
* @param {Effects} effects
|
||||
* Context.
|
||||
* @param {State} ok
|
||||
* State switched to when successful.
|
||||
* @param {State} nok
|
||||
* State switched to when unsuccessful.
|
||||
* @param {TokenType} type
|
||||
* Type of the whole label (`[a]`).
|
||||
* @param {TokenType} markerType
|
||||
* Type for the markers (`[` and `]`).
|
||||
* @param {TokenType} stringType
|
||||
* Type for the identifier (`a`).
|
||||
* @returns {State}
|
||||
* Start state.
|
||||
*/
|
||||
// eslint-disable-next-line max-params
|
||||
export function factoryLabel(effects, ok, nok, type, markerType, stringType) {
|
||||
const self = this
|
||||
let size = 0
|
||||
/** @type {boolean} */
|
||||
let seen
|
||||
|
||||
return start
|
||||
|
||||
/**
|
||||
* Start of label.
|
||||
*
|
||||
* ```markdown
|
||||
* > | [a]
|
||||
* ^
|
||||
* ```
|
||||
*
|
||||
* @type {State}
|
||||
*/
|
||||
function start(code) {
|
||||
assert(code === codes.leftSquareBracket, 'expected `[`')
|
||||
effects.enter(type)
|
||||
effects.enter(markerType)
|
||||
effects.consume(code)
|
||||
effects.exit(markerType)
|
||||
effects.enter(stringType)
|
||||
return atBreak
|
||||
}
|
||||
|
||||
/**
|
||||
* In label, at something, before something else.
|
||||
*
|
||||
* ```markdown
|
||||
* > | [a]
|
||||
* ^
|
||||
* ```
|
||||
*
|
||||
* @type {State}
|
||||
*/
|
||||
function atBreak(code) {
|
||||
if (
|
||||
size > constants.linkReferenceSizeMax ||
|
||||
code === codes.eof ||
|
||||
code === codes.leftSquareBracket ||
|
||||
(code === codes.rightSquareBracket && !seen) ||
|
||||
// To do: remove in the future once we’ve switched from
|
||||
// `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
|
||||
// which doesn’t need this.
|
||||
// Hidden footnotes hook.
|
||||
/* c8 ignore next 3 */
|
||||
(code === codes.caret &&
|
||||
!size &&
|
||||
'_hiddenFootnoteSupport' in self.parser.constructs)
|
||||
) {
|
||||
return nok(code)
|
||||
}
|
||||
|
||||
if (code === codes.rightSquareBracket) {
|
||||
effects.exit(stringType)
|
||||
effects.enter(markerType)
|
||||
effects.consume(code)
|
||||
effects.exit(markerType)
|
||||
effects.exit(type)
|
||||
return ok
|
||||
}
|
||||
|
||||
// To do: indent? Link chunks and EOLs together?
|
||||
if (markdownLineEnding(code)) {
|
||||
effects.enter(types.lineEnding)
|
||||
effects.consume(code)
|
||||
effects.exit(types.lineEnding)
|
||||
return atBreak
|
||||
}
|
||||
|
||||
effects.enter(types.chunkString, {contentType: constants.contentTypeString})
|
||||
return labelInside(code)
|
||||
}
|
||||
|
||||
/**
|
||||
* In label, in text.
|
||||
*
|
||||
* ```markdown
|
||||
* > | [a]
|
||||
* ^
|
||||
* ```
|
||||
*
|
||||
* @type {State}
|
||||
*/
|
||||
function labelInside(code) {
|
||||
if (
|
||||
code === codes.eof ||
|
||||
code === codes.leftSquareBracket ||
|
||||
code === codes.rightSquareBracket ||
|
||||
markdownLineEnding(code) ||
|
||||
size++ > constants.linkReferenceSizeMax
|
||||
) {
|
||||
effects.exit(types.chunkString)
|
||||
return atBreak(code)
|
||||
}
|
||||
|
||||
effects.consume(code)
|
||||
if (!seen) seen = !markdownSpace(code)
|
||||
return code === codes.backslash ? labelEscape : labelInside
|
||||
}
|
||||
|
||||
/**
|
||||
* After `\`, at a special character.
|
||||
*
|
||||
* ```markdown
|
||||
* > | [a\*a]
|
||||
* ^
|
||||
* ```
|
||||
*
|
||||
* @type {State}
|
||||
*/
|
||||
function labelEscape(code) {
|
||||
if (
|
||||
code === codes.leftSquareBracket ||
|
||||
code === codes.backslash ||
|
||||
code === codes.rightSquareBracket
|
||||
) {
|
||||
effects.consume(code)
|
||||
size++
|
||||
return labelInside
|
||||
}
|
||||
|
||||
return labelInside(code)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue