From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- .../markdown-it/lib/rules_inline/text_collapse.js | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 node_modules/markdown-it/lib/rules_inline/text_collapse.js (limited to 'node_modules/markdown-it/lib/rules_inline/text_collapse.js') diff --git a/node_modules/markdown-it/lib/rules_inline/text_collapse.js b/node_modules/markdown-it/lib/rules_inline/text_collapse.js new file mode 100644 index 00000000..3104c0c6 --- /dev/null +++ b/node_modules/markdown-it/lib/rules_inline/text_collapse.js @@ -0,0 +1,33 @@ +// Merge adjacent text nodes into one, and re-calculate all token levels +// +'use strict'; + + +module.exports = function text_collapse(state) { + var curr, last, + level = 0, + tokens = state.tokens, + max = state.tokens.length; + + for (curr = last = 0; curr < max; curr++) { + // re-calculate levels + level += tokens[curr].nesting; + tokens[curr].level = level; + + if (tokens[curr].type === 'text' && + curr + 1 < max && + tokens[curr + 1].type === 'text') { + + // collapse two adjacent text nodes + tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content; + } else { + if (curr !== last) { tokens[last] = tokens[curr]; } + + last++; + } + } + + if (curr !== last) { + tokens.length = last; + } +}; -- cgit v1.2.3