From db1c6676a13798ee57dbac429a1d5045b60356fb Mon Sep 17 00:00:00 2001 From: altaf-creator Date: Thu, 30 Apr 2026 22:01:53 +0800 Subject: quite a big commit --- packages/markdown-it-14.1.0/lib/parser_block.mjs | 134 ----------------------- 1 file changed, 134 deletions(-) delete mode 100644 packages/markdown-it-14.1.0/lib/parser_block.mjs (limited to 'packages/markdown-it-14.1.0/lib/parser_block.mjs') diff --git a/packages/markdown-it-14.1.0/lib/parser_block.mjs b/packages/markdown-it-14.1.0/lib/parser_block.mjs deleted file mode 100644 index 486d68f..0000000 --- a/packages/markdown-it-14.1.0/lib/parser_block.mjs +++ /dev/null @@ -1,134 +0,0 @@ -/** internal - * class ParserBlock - * - * Block-level tokenizer. - **/ - -import Ruler from './ruler.mjs' -import StateBlock from './rules_block/state_block.mjs' - -import r_table from './rules_block/table.mjs' -import r_code from './rules_block/code.mjs' -import r_fence from './rules_block/fence.mjs' -import r_blockquote from './rules_block/blockquote.mjs' -import r_hr from './rules_block/hr.mjs' -import r_list from './rules_block/list.mjs' -import r_reference from './rules_block/reference.mjs' -import r_html_block from './rules_block/html_block.mjs' -import r_heading from './rules_block/heading.mjs' -import r_lheading from './rules_block/lheading.mjs' -import r_paragraph from './rules_block/paragraph.mjs' - -const _rules = [ - // First 2 params - rule name & source. Secondary array - list of rules, - // which can be terminated by this one. - ['table', r_table, ['paragraph', 'reference']], - ['code', r_code], - ['fence', r_fence, ['paragraph', 'reference', 'blockquote', 'list']], - ['blockquote', r_blockquote, ['paragraph', 'reference', 'blockquote', 'list']], - ['hr', r_hr, ['paragraph', 'reference', 'blockquote', 'list']], - ['list', r_list, ['paragraph', 'reference', 'blockquote']], - ['reference', r_reference], - ['html_block', r_html_block, ['paragraph', 'reference', 'blockquote']], - ['heading', r_heading, ['paragraph', 'reference', 'blockquote']], - ['lheading', r_lheading], - ['paragraph', r_paragraph] -] - -/** - * new ParserBlock() - **/ -function ParserBlock () { - /** - * ParserBlock#ruler -> Ruler - * - * [[Ruler]] instance. Keep configuration of block rules. - **/ - this.ruler = new Ruler() - - for (let i = 0; i < _rules.length; i++) { - this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() }) - } -} - -// Generate tokens for input range -// -ParserBlock.prototype.tokenize = function (state, startLine, endLine) { - const rules = this.ruler.getRules('') - const len = rules.length - const maxNesting = state.md.options.maxNesting - let line = startLine - let hasEmptyLines = false - - while (line < endLine) { - state.line = line = state.skipEmptyLines(line) - if (line >= endLine) { break } - - // Termination condition for nested calls. - // Nested calls currently used for blockquotes & lists - if (state.sCount[line] < state.blkIndent) { break } - - // If nesting level exceeded - skip tail to the end. That's not ordinary - // situation and we should not care about content. - if (state.level >= maxNesting) { - state.line = endLine - break - } - - // Try all possible rules. - // On success, rule should: - // - // - update `state.line` - // - update `state.tokens` - // - return true - const prevLine = state.line - let ok = false - - for (let i = 0; i < len; i++) { - ok = rules[i](state, line, endLine, false) - if (ok) { - if (prevLine >= state.line) { - throw new Error("block rule didn't increment state.line") - } - break - } - } - - // this can only happen if user disables paragraph rule - if (!ok) throw new Error('none of the block rules matched') - - // set state.tight if we had an empty line before current tag - // i.e. latest empty line should not count - state.tight = !hasEmptyLines - - // paragraph might "eat" one newline after it in nested lists - if (state.isEmpty(state.line - 1)) { - hasEmptyLines = true - } - - line = state.line - - if (line < endLine && state.isEmpty(line)) { - hasEmptyLines = true - line++ - state.line = line - } - } -} - -/** - * ParserBlock.parse(str, md, env, outTokens) - * - * Process input string and push block tokens into `outTokens` - **/ -ParserBlock.prototype.parse = function (src, md, env, outTokens) { - if (!src) { return } - - const state = new this.State(src, md, env, outTokens) - - this.tokenize(state, state.line, state.lineMax) -} - -ParserBlock.prototype.State = StateBlock - -export default ParserBlock -- cgit v1.2.3