1 |
- {"ast":null,"code":"// lheading (---, ===)\n\nexport default function lheading(state, startLine, endLine /*, silent */) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) {\n return false;\n }\n const oldParentType = state.parentType;\n state.parentType = 'paragraph'; // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n let level = 0;\n let marker;\n let nextLine = startLine + 1;\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) {\n continue;\n }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n let pos = state.bMarks[nextLine] + state.tShift[nextLine];\n const max = state.eMarks[nextLine];\n if (pos < max) {\n marker = state.src.charCodeAt(pos);\n if (marker === 0x2D /* - */ || marker === 0x3D /* = */) {\n pos = state.skipChars(pos, marker);\n pos = state.skipSpaces(pos);\n if (pos >= max) {\n level = marker === 0x3D /* = */ ? 1 : 2;\n break;\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) {\n continue;\n }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false;\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) {\n break;\n }\n }\n if (!level) {\n // Didn't find valid underline\n return false;\n }\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n state.line = nextLine + 1;\n const token_o = state.push('heading_open', 'h' + String(level), 1);\n token_o.markup = String.fromCharCode(marker);\n token_o.map = [startLine, state.line];\n const token_i = state.push('inline', '', 0);\n token_i.content = content;\n token_i.map = [startLine, state.line - 1];\n token_i.children = [];\n const token_c = state.push('heading_close', 'h' + String(level), -1);\n token_c.markup = String.fromCharCode(marker);\n state.parentType = oldParentType;\n return true;\n}","map":{"version":3,"names":["lheading","state","startLine","endLine","terminatorRules","md","block","ruler","getRules","sCount","blkIndent","oldParentType","parentType","level","marker","nextLine","isEmpty","pos","bMarks","tShift","max","eMarks","src","charCodeAt","skipChars","skipSpaces","terminate","i","l","length","content","getLines","trim","line","token_o","push","String","markup","fromCharCode","map","token_i","children","token_c"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/markdown-it/lib/rules_block/lheading.mjs"],"sourcesContent":["// lheading (---, ===)\n\nexport default function lheading (state, startLine, endLine/*, silent */) {\n const terminatorRules = state.md.block.ruler.getRules('paragraph')\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false }\n\n const oldParentType = state.parentType\n state.parentType = 'paragraph' // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n let level = 0\n let marker\n let nextLine = startLine + 1\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n let pos = state.bMarks[nextLine] + state.tShift[nextLine]\n const max = state.eMarks[nextLine]\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos)\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker)\n pos = state.skipSpaces(pos)\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2)\n break\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue }\n\n // Some tags can terminate paragraph without empty line.\n let terminate = false\n for (let i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true\n break\n }\n }\n if (terminate) { break }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false\n }\n\n const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim()\n\n state.line = nextLine + 1\n\n const token_o = state.push('heading_open', 'h' + String(level), 1)\n token_o.markup = String.fromCharCode(marker)\n token_o.map = [startLine, state.line]\n\n const token_i = state.push('inline', '', 0)\n token_i.content = content\n token_i.map = [startLine, state.line - 1]\n token_i.children = []\n\n const token_c = state.push('heading_close', 'h' + String(level), -1)\n token_c.markup = String.fromCharCode(marker)\n\n state.parentType = oldParentType\n\n return true\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|