From d607ac12097afb5cb6f398a4e7b5cf4316efedc6 Mon Sep 17 00:00:00 2001 From: altaf-creator Date: Sun, 12 May 2024 12:14:02 +0700 Subject: self host --- .../lib/rules_block/paragraph.mjs | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 packages/markdown-it-14.1.0/lib/rules_block/paragraph.mjs (limited to 'packages/markdown-it-14.1.0/lib/rules_block/paragraph.mjs') diff --git a/packages/markdown-it-14.1.0/lib/rules_block/paragraph.mjs b/packages/markdown-it-14.1.0/lib/rules_block/paragraph.mjs new file mode 100644 index 0000000..6ecdcef --- /dev/null +++ b/packages/markdown-it-14.1.0/lib/rules_block/paragraph.mjs @@ -0,0 +1,46 @@ +// Paragraph + +export default function paragraph (state, startLine, endLine) { + const terminatorRules = state.md.block.ruler.getRules('paragraph') + const oldParentType = state.parentType + let nextLine = startLine + 1 + state.parentType = 'paragraph' + + // jump line-by-line until empty one or EOF + for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) { + // this would be a code block normally, but after paragraph + // it's considered a lazy continuation regardless of what's there + if (state.sCount[nextLine] - state.blkIndent > 3) { continue } + + // quirk for blockquotes, this line should already be checked by that rule + if (state.sCount[nextLine] < 0) { continue } + + // Some tags can terminate paragraph without empty line. + let terminate = false + for (let i = 0, l = terminatorRules.length; i < l; i++) { + if (terminatorRules[i](state, nextLine, endLine, true)) { + terminate = true + break + } + } + if (terminate) { break } + } + + const content = state.getLines(startLine, nextLine, state.blkIndent, false).trim() + + state.line = nextLine + + const token_o = state.push('paragraph_open', 'p', 1) + token_o.map = [startLine, state.line] + + const token_i = state.push('inline', '', 0) + token_i.content = content + token_i.map = [startLine, state.line] + token_i.children = [] + + state.push('paragraph_close', 'p', -1) + + state.parentType = oldParentType + + return true +} -- cgit v1.2.3