]> git.mxchange.org Git - friendica-addons.git/commitdiff
Markdown: Protect some more elements from markdown parsing
authorMichael <heluecht@pirati.ca>
Sun, 29 Dec 2019 21:01:38 +0000 (21:01 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 29 Dec 2019 21:01:38 +0000 (21:01 +0000)
markdown/markdown.php

index bd0e022c856575937d836d856aab4b2d2e4e5158..0f667373ab3afb9b0b6105b9f89a8165d1e07208 100644 (file)
@@ -50,11 +50,11 @@ function markdown_post_local_start(App $a, &$request) {
        }
 
        // Elements that shouldn't be parsed
-       $elements = ['code', 'noparse', 'nobb', 'pre'];
+       $elements = ['code', 'noparse', 'nobb', 'pre', 'share', 'url', 'img'];
        foreach ($elements as $element) {
-               $request['body'] = preg_replace_callback("/\[" . $element . "\](.*?)\[\/" . $element . "\]/ism",
-                       function ($match)  use ($element) {
-                               return '[base64' . $element . ']' . base64_encode($match[1]) . '[/base64' . $element . ']';
+               $request['body'] = preg_replace_callback("/\[" . $element . "(.*?)\](.*?)\[\/" . $element . "\]/ism",
+                       function ($match) use ($element) {
+                               return '[' . $element . '-b64' . base64_encode($match[1]) . ']' . base64_encode($match[2]) . '[/b64-' . $element . ']';
                        },
                        $request['body']
                );
@@ -63,9 +63,9 @@ function markdown_post_local_start(App $a, &$request) {
        $request['body'] = Markdown::toBBCode($request['body']);
 
        foreach (array_reverse($elements) as $element) {
-               $request['body'] = preg_replace_callback("/\[base64" . $element . "\](.*?)\[\/base64" . $element . "\]/ism",
-                       function ($match)  use ($element) {
-                               return '[' . $element . ']' . base64_decode($match[1]) . '[/' . $element . ']';
+               $request['body'] = preg_replace_callback("/\[" . $element . "-b64(.*?)\](.*?)\[\/b64-" . $element . "\]/ism",
+                       function ($match) use ($element) {
+                               return '[' . $element . base64_decode($match[1]) . ']' . base64_decode($match[2]) . '[/' . $element . ']';
                        },
                        $request['body']
                );