diff options
Diffstat (limited to 'node_modules/markdown-it/lib/rules_inline/text_collapse.js')
| -rw-r--r-- | node_modules/markdown-it/lib/rules_inline/text_collapse.js | 33 |
1 files changed, 33 insertions, 0 deletions
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; + } +}; |
