From 54d7a435a3b3acde952c3e71e558e946a9254345 Mon Sep 17 00:00:00 2001 From: Michael <heluecht@pirati.ca> Date: Sat, 21 May 2022 11:46:38 +0000 Subject: [PATCH] Don't parse tags in links --- src/Content/Text/BBCode.php | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index 4f7ff1f241..77ca4dbe26 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -1952,17 +1952,20 @@ class BBCode * - #[url=<anything>]<term>[/url] * - [url=<anything>]#<term>[/url] */ - $text = preg_replace_callback("/(?:#\[url\=[^\[\]]*\]|\[url\=[^\[\]]*\]#)(.*?)\[\/url\]/ism", function($matches) use ($simple_html) { - if ($simple_html == self::ACTIVITYPUB) { - return '<a href="' . DI::baseUrl() . '/search?tag=' . rawurlencode($matches[1]) - . '" data-tag="' . XML::escape($matches[1]) . '" rel="tag ugc">#' - . XML::escape($matches[1]) . '</a>'; - } else { - return '#<a href="' . DI::baseUrl() . '/search?tag=' . rawurlencode($matches[1]) - . '" class="tag" rel="tag" title="' . XML::escape($matches[1]) . '">' - . XML::escape($matches[1]) . '</a>'; - } - }, $text); + self::performWithEscapedTags($text, ['url'], function ($text) use ($simple_html) { + $text = preg_replace_callback("/(?:#\[url\=[^\[\]]*\]|\[url\=[^\[\]]*\]#)(.*?)\[\/url\]/ism", function($matches) use ($simple_html) { + if ($simple_html == self::ACTIVITYPUB) { + return '<a href="' . DI::baseUrl() . '/search?tag=' . rawurlencode($matches[1]) + . '" data-tag="' . XML::escape($matches[1]) . '" rel="tag ugc">#' + . XML::escape($matches[1]) . '</a>'; + } else { + return '#<a href="' . DI::baseUrl() . '/search?tag=' . rawurlencode($matches[1]) + . '" class="tag" rel="tag" title="' . XML::escape($matches[1]) . '">' + . XML::escape($matches[1]) . '</a>'; + } + }, $text); + return $text; + }); // We need no target="_blank" rel="noopener noreferrer" for local links // convert links start with DI::baseUrl() as local link without the target="_blank" rel="noopener noreferrer" attribute -- 2.39.5