From 230edb6d7dcb8f26fabab1b9e58b7e8c3c16910e Mon Sep 17 00:00:00 2001 From: Sam Wilson Date: Sun, 27 Aug 2023 10:18:31 +0800 Subject: [PATCH] Escape percent sign in link URLs --- src/LinkRenderer.php | 1 + tests/data/links.md | 2 +- tests/data/links.tex | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/LinkRenderer.php b/src/LinkRenderer.php index 3f3a65f..adb54a7 100644 --- a/src/LinkRenderer.php +++ b/src/LinkRenderer.php @@ -33,6 +33,7 @@ public function render(Node $node, ChildNodeRendererInterface $childRenderer) $replacements = [ '_' => '\\_', '#' => '\#', + '%' => '\%', ]; $url = \str_replace(\array_keys($replacements), $replacements, $node->getUrl()); diff --git a/tests/data/links.md b/tests/data/links.md index e40f783..8811715 100644 --- a/tests/data/links.md +++ b/tests/data/links.md @@ -1,6 +1,6 @@ Link with protocol and fragment: [label](https://example.org/lorem#ipsum). -Relative link: [label](./example.html). +Relative link: [label](./spaced%20example.html). Inline URL with angle brackets: diff --git a/tests/data/links.tex b/tests/data/links.tex index 77a15d4..54a25cb 100644 --- a/tests/data/links.tex +++ b/tests/data/links.tex @@ -1,6 +1,6 @@ Link with protocol and fragment: label\footnote{\url{https://example.org/lorem\#ipsum}}. -Relative link: label\footnote{\url{./example.html}}. +Relative link: label\footnote{\url{./spaced\%20example.html}}. Inline URL with angle brackets: \url{https://example.org}