Skip to content

Commit de00c89

Browse files
committed
👌 Improve rendering of implicit link text
1 parent f791cea commit de00c89

File tree

7 files changed

+31
-22
lines changed

7 files changed

+31
-22
lines changed

myst_parser/mdit_to_docutils/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1098,7 +1098,7 @@ def render_inventory_link(self, token: SyntaxTreeNode) -> None:
10981098
elif match.text:
10991099
ref_node.append(nodes.Text(match.text))
11001100
else:
1101-
ref_node.append(nodes.Text(match.name))
1101+
ref_node.append(nodes.literal(match.name, match.name))
11021102

11031103
def get_inventory_matches(
11041104
self,

myst_parser/mdit_to_docutils/sphinx_.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,29 +80,31 @@ def render_internal_link(self, token: SyntaxTreeNode) -> None:
8080
refdomain="doc", reftarget=docname, reftargetid=path_id, **kwargs
8181
)
8282
classes = ["xref", "myst"]
83-
text = ""
8483
else:
8584
wrap_node = addnodes.download_reference(
8685
refdomain=None, reftarget=path_dest, **kwargs
8786
)
8887
classes = ["xref", "download", "myst"]
89-
text = destination if not token.children else ""
9088
else:
9189
wrap_node = addnodes.pending_xref(
9290
refdomain=None, reftarget=destination, **kwargs
9391
)
9492
classes = ["xref", "myst"]
95-
text = ""
9693

9794
self.add_line_and_source_path(wrap_node, token)
9895
self.copy_attributes(token, wrap_node, ("class", "id", "title"))
9996
self.current_node.append(wrap_node)
10097

101-
inner_node = nodes.inline("", text, classes=classes)
102-
wrap_node.append(inner_node)
10398
if explicit:
99+
inner_node = nodes.inline("", "", classes=classes)
104100
with self.current_node_context(inner_node):
105101
self.render_children(token)
102+
elif isinstance(wrap_node, addnodes.download_reference):
103+
inner_node = nodes.literal(path_dest, path_dest, classes=classes)
104+
else:
105+
inner_node = nodes.inline("", "", classes=classes)
106+
107+
wrap_node.append(inner_node)
106108

107109
def get_inventory_matches(
108110
self,

myst_parser/sphinx_ext/myst_refs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ def _resolve_myst_ref_intersphinx(
392392
)
393393
else:
394394
newnode.append(
395-
contnode.__class__(match.name, match.name, classes=["iref", "myst"])
395+
nodes.literal(match.name, match.name, classes=["iref", "myst"])
396396
)
397397

398398
return newnode

tests/test_renderers/fixtures/sphinx_link_resolution.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,11 +199,12 @@ c | d
199199
<document source="<src>/index.md">
200200
<paragraph>
201201
<download_reference filename="dd18bf3a8e0a2a3e53e2661c7fb53534/test.txt" refdoc="index" refdomain="True" refexplicit="False" reftarget="test.txt" reftype="myst">
202-
<inline classes="xref download myst">
202+
<literal classes="xref download myst">
203203
test.txt
204204

205205
<download_reference filename="dd18bf3a8e0a2a3e53e2661c7fb53534/test.txt" refdoc="index" refdomain="True" refexplicit="False" reftarget="./test.txt" reftype="myst">
206-
<inline classes="xref download myst">
206+
<literal classes="xref download myst">
207+
./test.txt
207208

208209
<download_reference filename="dd18bf3a8e0a2a3e53e2661c7fb53534/test.txt" refdoc="index" refdomain="True" refexplicit="True" reftarget="/test.txt" reftype="myst">
209210
<inline classes="xref download myst">

tests/test_sphinx/test_sphinx_builds/test_references.html

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,11 @@ <h1>
9393
</p>
9494
<p>
9595
<a class="reference download internal" download="" href="_downloads/1952147a8403903cb78cecf56f049085/file_link2.txt">
96-
<span class="xref download myst">
97-
subfolder/file_link2.txt
98-
</span>
96+
<code class="xref download myst docutils literal notranslate">
97+
<span class="pre">
98+
subfolder/file_link2.txt
99+
</span>
100+
</code>
99101
</a>
100102
</p>
101103
<p id="insidecodeblock">
@@ -225,9 +227,11 @@ <h1>
225227
<p>
226228
Known no title
227229
<a class="reference external" href="https://example.com/index.html#paragraph-target" title="Example 0.0.1">
228-
<span class="iref myst">
229-
paragraph-target
230-
</span>
230+
<code class="iref myst docutils literal notranslate">
231+
<span class="pre">
232+
paragraph-target
233+
</span>
234+
</code>
231235
</a>
232236
</p>
233237
<p>
@@ -251,9 +255,11 @@ <h1>
251255
<p>
252256
Ambiguous
253257
<a class="reference external" href="https://example.com/index.html#module-duplicate" title="Example 0.0.1">
254-
<span class="iref myst">
255-
duplicate
256-
</span>
258+
<code class="iref myst docutils literal notranslate">
259+
<span class="pre">
260+
duplicate
261+
</span>
262+
</code>
257263
</a>
258264
</p>
259265
</section>

tests/test_sphinx/test_sphinx_builds/test_references.resolved.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
link
5555
<paragraph>
5656
<download_reference filename="1952147a8403903cb78cecf56f049085/file_link2.txt" refdoc="index" refdomain="True" refexplicit="False" reftarget="subfolder/file_link2.txt" reftype="myst">
57-
<inline classes="xref download myst">
57+
<literal classes="xref download myst">
5858
subfolder/file_link2.txt
5959
<target refid="insidecodeblock">
6060
<paragraph ids="insidecodeblock" names="insidecodeblock">
@@ -132,7 +132,7 @@
132132
<paragraph>
133133
Known no title
134134
<reference internal="False" reftitle="Example 0.0.1" refuri="https://example.com/index.html#paragraph-target">
135-
<inline classes="iref myst">
135+
<literal classes="iref myst">
136136
paragraph-target
137137
<paragraph>
138138
Known explicit
@@ -148,5 +148,5 @@
148148
<paragraph>
149149
Ambiguous
150150
<reference internal="False" reftitle="Example 0.0.1" refuri="https://example.com/index.html#module-duplicate">
151-
<inline classes="iref myst">
151+
<literal classes="iref myst">
152152
duplicate

tests/test_sphinx/test_sphinx_builds/test_references.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
link
5353
<paragraph>
5454
<download_reference filename="1952147a8403903cb78cecf56f049085/file_link2.txt" refdoc="index" refdomain="True" refexplicit="False" reftarget="subfolder/file_link2.txt" reftype="myst">
55-
<inline classes="xref download myst">
55+
<literal classes="xref download myst">
5656
subfolder/file_link2.txt
5757
<target refid="insidecodeblock">
5858
<paragraph ids="insidecodeblock" names="insidecodeblock">

0 commit comments

Comments
 (0)