* - #[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