// Replace non graphical smilies for external posts
if (!$nosmile && !$for_plaintext) {
- $text = Smilies::replace($text);
+ $text = Smilies::replace($text);
+ }
+
+ if (!$for_plaintext && DI::config()->get('system', 'big_emojis') && ($simple_html != self::DIASPORA)) {
+ $conv = html_entity_decode(str_replace([' ', "\n", "\r"], '', $text));
+ // Emojis are always 4 byte Unicode characters
+ if (!empty($conv) && (strlen($conv) / mb_strlen($conv) == 4)) {
+ $text = '<span style="font-size: xx-large; line-height: initial;">' . $text . '</span>';
+ }
}
if (!$for_plaintext) {
* - #[url=<anything>]<term>[/url]
* - [url=<anything>]#<term>[/url]
*/
- $text = preg_replace_callback("/(?:#\[url\=[^\[\]]*\]|\[url\=[^\[\]]*\]#)(.*?)\[\/url\]/ism", function($matches) {
- 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 = preg_replace_callback("/(?:#\[url\=[^\[\]]*\]|\[url\=[^\[\]]*\]#)(.*?)\[\/url\]/ism", function($matches) use ($simple_html) {
+ if ($simple_html == BBCode::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);
// We need no target="_blank" rel="noopener noreferrer" for local links