Skip to content

Commit ab287be

Browse files
authored
🐛 FIX: Linkify link nesting levels (#142)
Due to a porting error, linkify link tokens have incorrect nesting levels.
1 parent de09ccf commit ab287be

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

markdown_it/rules_core/linkify.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ def linkify(state: StateCore) -> None:
113113

114114
token = Token("link_open", "a", 1)
115115
token.attrs = [["href", fullUrl]]
116-
token.level = level + 1
116+
token.level = level
117+
level += 1
117118
token.markup = "linkify"
118119
token.info = "auto"
119120
nodes.append(token)
@@ -124,7 +125,8 @@ def linkify(state: StateCore) -> None:
124125
nodes.append(token)
125126

126127
token = Token("link_close", "a", -1)
127-
token.level = level - 1
128+
level -= 1
129+
token.level = level
128130
token.markup = "linkify"
129131
token.info = "auto"
130132
nodes.append(token)

tests/test_linkify.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from markdown_it import MarkdownIt
2+
3+
4+
def test_token_levels():
5+
mdit = MarkdownIt(options_update={"linkify": True}).enable("linkify")
6+
tokens = mdit.parse("www.python.org")
7+
inline = tokens[1]
8+
assert inline.type == "inline"
9+
link_open = inline.children[0]
10+
assert link_open.type == "link_open"
11+
link_text = inline.children[1]
12+
assert link_text.type == "text"
13+
link_close = inline.children[2]
14+
assert link_close.type == "link_close"
15+
16+
# Assert that linkify tokens have correct nesting levels
17+
assert link_open.level == 0
18+
assert link_text.level == 1
19+
assert link_close.level == 0

0 commit comments

Comments
 (0)