From f3efdbf230657ce0c7ada803b97161b8fe4d5ae8 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 15 Mar 2024 22:34:27 +0000 Subject: adjust encrypted content representation and also add it to bb_to_markdown --- include/bbcode.php | 14 +++++++------- include/markdown.php | 23 +++++++++++++++++++++-- 2 files changed, 28 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/bbcode.php b/include/bbcode.php index 20a866073..db4147c1e 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -297,20 +297,20 @@ function bb_parse_crypt($match) { */ function bb_parse_b64_crypt($match) { - if(empty($match[2])) + if(empty($match[1])) { return; + } + + $r = '-----BEGIN ENCRYPTED MESSAGE-----' . "\n"; + $r .= $match[1] . "\n"; + $r .= '-----END ENCRYPTED MESSAGE-----' . "\n"; - $r .= ''; - $r .= '----- ENCRYPTED CONTENT -----' . '
'; - $r .= $match[2] . '
'; - $r .= '----- END ENCRYPTED CONTENT -----'; - $r .= '
'; + $r = '' . str_replace("\n", '
', wordwrap($r, 75, "\n", true)) . '
'; return $r; } - function bb_parse_app($match) { $app = Zotlabs\Lib\Apps::app_decode($match[1]); diff --git a/include/markdown.php b/include/markdown.php index 7fba1259f..b2adcd0d5 100644 --- a/include/markdown.php +++ b/include/markdown.php @@ -221,6 +221,21 @@ function bb_to_markdown_transform_tags($match) { return '#'. str_replace(' ', '_', $match[3]); } +function bb_to_markdown_parse_b64_crypt($match) { + + if(empty($match[1])) { + return; + } + + $r = '```' . "\n"; + $r .= '-----BEGIN ENCRYPTED MESSAGE-----' . "\n"; + $r .= $match[1] . "\n"; + $r .= '-----END ENCRYPTED MESSAGE-----' . "\n"; + $r .= '```' . "\n"; + + return wordwrap($r, 75, "\n", true); + +} /** * @brief Convert bbcode to Markdown. @@ -244,6 +259,10 @@ function bb_to_markdown($Text, $options = []) { $Text = preg_replace_callback("/\[share(.*?)\](.*?)\[\/share\]/ism", 'bb_to_markdown_share', $Text); + if (str_contains($Text, '[/crypt]')) { + $Text = preg_replace_callback("/\[crypt\](.*?)\[\/crypt\]/ism", 'bb_to_markdown_parse_b64_crypt', $Text); + } + $x = [ 'bbcode' => $Text, 'options' => $options ]; /** @@ -264,8 +283,8 @@ function bb_to_markdown($Text, $options = []) { // Now convert HTML to Markdown $Text = html2markdown($Text); - //html2markdown adds backslashes infront of hashes after a new line. remove them - $Text = str_replace("\n\#", "\n#", $Text); + //html2markdown adds backslashes infront of hashes and dashes after a new line. remove them + $Text = str_replace(["\n\#", "\n\-----"], ["\n#", "\n-----"], $Text); // If the text going into bbcode() has a plain URL in it, i.e. // with no [url] tags around it, it will come out of parseString() -- cgit v1.2.3