summaryrefslogtreecommitdiff
path: root/packages/markdown-it-14.1.0/lib/rules_inline/fragments_join.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'packages/markdown-it-14.1.0/lib/rules_inline/fragments_join.mjs')
-rw-r--r--packages/markdown-it-14.1.0/lib/rules_inline/fragments_join.mjs38
1 files changed, 0 insertions, 38 deletions
diff --git a/packages/markdown-it-14.1.0/lib/rules_inline/fragments_join.mjs b/packages/markdown-it-14.1.0/lib/rules_inline/fragments_join.mjs
deleted file mode 100644
index e89ef9e..0000000
--- a/packages/markdown-it-14.1.0/lib/rules_inline/fragments_join.mjs
+++ /dev/null
@@ -1,38 +0,0 @@
-// Clean up tokens after emphasis and strikethrough postprocessing:
-// merge adjacent text nodes into one and re-calculate all token levels
-//
-// This is necessary because initially emphasis delimiter markers (*, _, ~)
-// are treated as their own separate text tokens. Then emphasis rule either
-// leaves them as text (needed to merge with adjacent text) or turns them
-// into opening/closing tags (which messes up levels inside).
-//
-
-export default function fragments_join (state) {
- let curr, last
- let level = 0
- const tokens = state.tokens
- const max = state.tokens.length
-
- for (curr = last = 0; curr < max; curr++) {
- // re-calculate levels after emphasis/strikethrough turns some text nodes
- // into opening/closing tags
- if (tokens[curr].nesting < 0) level-- // closing tag
- tokens[curr].level = level
- if (tokens[curr].nesting > 0) level++ // opening tag
-
- 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
- }
-}