From c90be9ae8a3269ec935e3ebf378e99d0af4cbd8f Mon Sep 17 00:00:00 2001 From: Chris Sewell Date: Sun, 9 Jan 2022 19:42:47 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20FIX:=20linkify=20link=20renderin?= =?UTF-8?q?g=20(#499)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Linkify links should always be treated as external links, and the child text should be rendered (rather than using the href) --- myst_parser/docutils_renderer.py | 10 ++++++---- tests/test_renderers/fixtures/myst-config.txt | 10 ++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/myst_parser/docutils_renderer.py b/myst_parser/docutils_renderer.py index eba7718b..5ac476d9 100644 --- a/myst_parser/docutils_renderer.py +++ b/myst_parser/docutils_renderer.py @@ -677,7 +677,7 @@ def render_link(self, token: SyntaxTreeNode) -> None: or any scheme if `myst_url_schemes` is None. - Otherwise, forward to `render_internal_link` """ - if token.markup == "autolink": + if token.info == "auto": # handles both autolink and linkify return self.render_autolink(token) if self.md_config.all_links_external: @@ -733,10 +733,12 @@ def render_internal_link(self, token: SyntaxTreeNode) -> None: self.render_children(token) def render_autolink(self, token: SyntaxTreeNode) -> None: - refuri = target = escapeHtml(token.attrGet("href") or "") # type: ignore[arg-type] - ref_node = nodes.reference(target, target, refuri=refuri) + refuri = escapeHtml(token.attrGet("href") or "") # type: ignore[arg-type] + ref_node = nodes.reference() + ref_node["refuri"] = refuri self.add_line_and_source_path(ref_node, token) - self.current_node.append(ref_node) + with self.current_node_context(ref_node, append=True): + self.render_children(token) def render_html_inline(self, token: SyntaxTreeNode) -> None: self.render_html_block(token) diff --git a/tests/test_renderers/fixtures/myst-config.txt b/tests/test_renderers/fixtures/myst-config.txt index ef4a81f6..b482a401 100644 --- a/tests/test_renderers/fixtures/myst-config.txt +++ b/tests/test_renderers/fixtures/myst-config.txt @@ -24,3 +24,13 @@ title: "The title *nested syntax*" Other header . + +[linkify] --myst-enable-extensions=linkify +. +www.example.com +. +<document source="<string>"> + <paragraph> + <reference refuri="http://www.example.com"> + www.example.com +.