]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Debug/Babel.php
Merge pull request #8632 from annando/fix-fatal
[friendica.git] / src / Module / Debug / Babel.php
index 35037f45e41254cfa1cfad4c6637eb5c0fb9e4ad..ecad73f4dcd82eee64b5bd39415b2883f9efbffc 100644 (file)
@@ -26,6 +26,7 @@ use Friendica\Content\Text;
 use Friendica\Core\Renderer;
 use Friendica\DI;
 use Friendica\Model\Item;
+use Friendica\Model\Tag;
 use Friendica\Util\XML;
 
 /**
@@ -37,9 +38,7 @@ class Babel extends BaseModule
        {
                function visible_whitespace($s)
                {
-                       $s = str_replace(' ', ' ', $s);
-
-                       return str_replace(["\r\n", "\n", "\r"], '<br />', $s);
+                       return '<pre>' . htmlspecialchars($s) . '</pre>';
                }
 
                $results = [];
@@ -61,7 +60,7 @@ class Babel extends BaseModule
                                        $html = Text\BBCode::convert($bbcode);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('BBCode::convert (raw HTML)'),
-                                               'content' => visible_whitespace(htmlspecialchars($html))
+                                               'content' => visible_whitespace($html)
                                        ];
 
                                        $results[] = [
@@ -78,13 +77,13 @@ class Babel extends BaseModule
                                        $markdown = Text\BBCode::toMarkdown($bbcode);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('BBCode::toMarkdown'),
-                                               'content' => visible_whitespace(htmlspecialchars($markdown))
+                                               'content' => visible_whitespace($markdown)
                                        ];
 
                                        $html2 = Text\Markdown::convert($markdown);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('BBCode::toMarkdown => Markdown::convert (raw HTML)'),
-                                               'content' => visible_whitespace(htmlspecialchars($html2))
+                                               'content' => visible_whitespace($html2)
                                        ];
                                        $results[] = [
                                                'title'   => DI::l10n()->t('BBCode::toMarkdown => Markdown::convert'),
@@ -103,10 +102,9 @@ class Babel extends BaseModule
                                                'content' => visible_whitespace($bbcode4)
                                        ];
 
-                                       $item = [
-                                               'body' => $bbcode,
-                                               'tag'  => '',
-                                       ];
+                                       $item = ['body' => $bbcode];
+
+                                       $tags = Text\BBCode::getTags($bbcode);
 
                                        Item::setHashtags($item);
                                        $results[] = [
@@ -115,20 +113,31 @@ class Babel extends BaseModule
                                        ];
                                        $results[] = [
                                                'title'   => DI::l10n()->t('Item Tags'),
-                                               'content' => $item['tag']
+                                               'content' => visible_whitespace(var_export($tags, true)),
                                        ];
                                        break;
-                               case 'markdown':
-                                       $markdown = trim($_REQUEST['text']);
+                               case 'diaspora':
+                                       $diaspora = trim($_REQUEST['text']);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('Source input (Diaspora format)'),
-                                               'content' => '<pre>' . htmlspecialchars($markdown) . '</pre>'
+                                               'content' => visible_whitespace($diaspora),
+                                       ];
+
+                                       $markdown = XML::unescape($diaspora);
+                               case 'markdown':
+                                       if (!isset($markdown)) {
+                                               $markdown = trim($_REQUEST['text']);
+                                       }
+
+                                       $results[] = [
+                                               'title'   => DI::l10n()->t('Source input (Markdown)'),
+                                               'content' => visible_whitespace($markdown),
                                        ];
 
-                                       $html = Text\Markdown::convert(html_entity_decode($markdown,ENT_COMPAT, 'UTF-8'));
+                                       $html = Text\Markdown::convert($markdown);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('Markdown::convert (raw HTML)'),
-                                               'content' => visible_whitespace(htmlspecialchars($html))
+                                               'content' => visible_whitespace($html),
                                        ];
 
                                        $results[] = [
@@ -136,17 +145,17 @@ class Babel extends BaseModule
                                                'content' => $html
                                        ];
 
-                                       $bbcode = Text\Markdown::toBBCode(XML::unescape($markdown));
+                                       $bbcode = Text\Markdown::toBBCode($markdown);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('Markdown::toBBCode'),
-                                               'content' => '<pre>' . $bbcode . '</pre>'
+                                               'content' => visible_whitespace($bbcode),
                                        ];
                                        break;
                                case 'html' :
                                        $html = trim($_REQUEST['text']);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('Raw HTML input'),
-                                               'content' => htmlspecialchars($html)
+                                               'content' => visible_whitespace($html),
                                        ];
 
                                        $results[] = [
@@ -174,7 +183,7 @@ class Babel extends BaseModule
                                        $bbcode2plain = Text\BBCode::toPlaintext($bbcode);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('HTML::toBBCode => BBCode::toPlaintext'),
-                                               'content' => '<pre>' . $bbcode2plain . '</pre>'
+                                               'content' => visible_whitespace($bbcode2plain),
                                        ];
 
                                        $markdown = Text\HTML::toMarkdown($html);
@@ -186,13 +195,13 @@ class Babel extends BaseModule
                                        $text = Text\HTML::toPlaintext($html, 0);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('HTML::toPlaintext'),
-                                               'content' => '<pre>' . $text . '</pre>'
+                                               'content' => visible_whitespace($text),
                                        ];
 
                                        $text = Text\HTML::toPlaintext($html, 0, true);
                                        $results[] = [
                                                'title'   => DI::l10n()->t('HTML::toPlaintext (compact)'),
-                                               'content' => '<pre>' . $text . '</pre>'
+                                               'content' => visible_whitespace($text),
                                        ];
                        }
                }
@@ -201,6 +210,7 @@ class Babel extends BaseModule
                $o = Renderer::replaceMacros($tpl, [
                        '$text'          => ['text', DI::l10n()->t('Source text'), $_REQUEST['text'] ?? '', ''],
                        '$type_bbcode'   => ['type', DI::l10n()->t('BBCode'), 'bbcode', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'bbcode'],
+                       '$type_diaspora' => ['type', DI::l10n()->t('Diaspora'), 'diaspora', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'diaspora'],
                        '$type_markdown' => ['type', DI::l10n()->t('Markdown'), 'markdown', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'markdown'],
                        '$type_html'     => ['type', DI::l10n()->t('HTML'), 'html', '', (($_REQUEST['type'] ?? '') ?: 'bbcode') == 'html'],
                        '$results'       => $results