X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fbabel.php;h=51bbf7c8a4b7ef8c6382dc21aa1c2dbfaee5c59c;hb=a876c208504af3ee801689886ec8cab8f3eeff00;hp=ca4efee044d142fbe75dcc0daa68f5cf89867dbf;hpb=318de2f59066361db3acd2664a26d13d5069b4ea;p=friendica.git diff --git a/mod/babel.php b/mod/babel.php index ca4efee044..51bbf7c8a4 100644 --- a/mod/babel.php +++ b/mod/babel.php @@ -3,78 +3,166 @@ * @file mod/babel.php */ -use Friendica\Content\Text\BBCode; -use Friendica\Content\Text\Markdown; +use Friendica\Content\Text; use Friendica\Core\L10n; +use Friendica\Core\Renderer; -require_once 'include/bb2diaspora.php'; -require_once 'include/html2bbcode.php'; - -function visible_lf($s) +function visible_whitespace($s) { - return str_replace("\n", '
', $s); + $s = str_replace(' ', ' ', $s); + + return str_replace(["\r\n", "\n", "\r"], '
', $s); } function babel_content() { - $o = '

Babel Diagnostic

'; - - $o .= '
'; - $o .= L10n::t("Source \x28bbcode\x29 text:") . EOL; - $o .= '' . EOL; - $o .= '
'; - - $o .= '

'; - - $o .= '
'; - $o .= L10n::t("Source \x28Diaspora\x29 text to convert to BBcode:") . EOL; - $o .= '' . EOL; - $o .= '
'; - - $o .= '

'; - - if (x($_REQUEST, 'text')) { - $text = trim($_REQUEST['text']); - $o .= '

' . L10n::t('Source input: ') . '

' . EOL . EOL; - $o .= visible_lf($text) . EOL . EOL; - - $html = BBCode::convert($text); - $o .= '

' . L10n::t("bbcode \x28raw HTML\x29: ") . '

' . EOL . EOL; - $o .= htmlspecialchars($html) . EOL . EOL; - - $o .= '

' . L10n::t('bbcode: ') . '

' . EOL . EOL; - $o .= $html . EOL . EOL; - - $bbcode = html2bbcode($html); - $o .= '

' . L10n::t('bbcode => html2bbcode: ') . '

' . EOL . EOL; - $o .= visible_lf($bbcode) . EOL . EOL; - - $diaspora = bb2diaspora($text); - $o .= '

' . L10n::t('bb2diaspora: ') . '

' . EOL . EOL; - $o .= visible_lf($diaspora) . EOL . EOL; - - $html = Markdown::convert($diaspora); - $o .= '

' . L10n::t('bb2diaspora => Markdown: ') . '

' . EOL . EOL; - $o .= $html . EOL . EOL; - - $bbcode = diaspora2bb($diaspora); - $o .= '

' . L10n::t('bb2diaspora => diaspora2bb: ') . '

' . EOL . EOL; - $o .= visible_lf($bbcode) . EOL . EOL; - - $bbcode = html2bbcode($html); - $o .= '

' . L10n::t('bbcode => html2bbcode: ') . '

' . EOL . EOL; - $o .= visible_lf($bbcode) . EOL . EOL; + $results = []; + if (!empty($_REQUEST['text'])) { + switch (defaults($_REQUEST, 'type', 'bbcode')) { + case 'bbcode': + $bbcode = trim($_REQUEST['text']); + $results[] = [ + 'title' => L10n::t('Source input'), + 'content' => visible_whitespace($bbcode) + ]; + + $plain = Text\BBCode::toPlaintext($bbcode, false); + $results[] = [ + 'title' => L10n::t('BBCode::toPlaintext'), + 'content' => visible_whitespace($plain) + ]; + + $html = Text\BBCode::convert($bbcode); + $results[] = [ + 'title' => L10n::t('BBCode::convert (raw HTML)'), + 'content' => visible_whitespace(htmlspecialchars($html)) + ]; + + $results[] = [ + 'title' => L10n::t('BBCode::convert'), + 'content' => $html + ]; + + $bbcode2 = Text\HTML::toBBCode($html); + $results[] = [ + 'title' => L10n::t('BBCode::convert => HTML::toBBCode'), + 'content' => visible_whitespace($bbcode2) + ]; + + $markdown = Text\BBCode::toMarkdown($bbcode); + $results[] = [ + 'title' => L10n::t('BBCode::toMarkdown'), + 'content' => visible_whitespace($markdown) + ]; + + $html2 = Text\Markdown::convert($markdown); + $results[] = [ + 'title' => L10n::t('BBCode::toMarkdown => Markdown::convert'), + 'content' => $html2 + ]; + + $bbcode3 = Text\Markdown::toBBCode($markdown); + $results[] = [ + 'title' => L10n::t('BBCode::toMarkdown => Markdown::toBBCode'), + 'content' => visible_whitespace($bbcode3) + ]; + + $bbcode4 = Text\HTML::toBBCode($html2); + $results[] = [ + 'title' => L10n::t('BBCode::toMarkdown => Markdown::convert => HTML::toBBCode'), + 'content' => visible_whitespace($bbcode4) + ]; + + $item = [ + 'body' => $bbcode, + 'tag' => '', + ]; + + \Friendica\Model\Item::setHashtags($item); + $results[] = [ + 'title' => L10n::t('Item Body'), + 'content' => visible_whitespace($item['body']) + ]; + $results[] = [ + 'title' => L10n::t('Item Tags'), + 'content' => $item['tag'] + ]; + break; + case 'markdown': + $markdown = trim($_REQUEST['text']); + $results[] = [ + 'title' => L10n::t('Source input (Diaspora format)'), + 'content' => '
' . $markdown . '
' + ]; + + $html = Text\Markdown::convert($markdown); + $results[] = [ + 'title' => L10n::t('Markdown::convert (raw HTML)'), + 'content' => visible_whitespace(htmlspecialchars($html)) + ]; + + $results[] = [ + 'title' => L10n::t('Markdown::convert'), + 'content' => $html + ]; + + $bbcode = Text\Markdown::toBBCode($markdown); + $results[] = [ + 'title' => L10n::t('Markdown::toBBCode'), + 'content' => '
' . $bbcode . '
' + ]; + break; + case 'html' : + $html = trim($_REQUEST['text']); + $results[] = [ + 'title' => L10n::t('Raw HTML input'), + 'content' => htmlspecialchars($html) + ]; + + $results[] = [ + 'title' => L10n::t('HTML Input'), + 'content' => $html + ]; + + $bbcode = Text\HTML::toBBCode($html); + $results[] = [ + 'title' => L10n::t('HTML::toBBCode'), + 'content' => visible_whitespace($bbcode) + ]; + + $html2 = Text\BBCode::convert($bbcode); + $results[] = [ + 'title' => L10n::t('HTML::toBBCode => BBCode::convert'), + 'content' => $html2 + ]; + + $results[] = [ + 'title' => L10n::t('HTML::toBBCode => BBCode::convert (raw HTML)'), + 'content' => htmlspecialchars($html2) + ]; + + $markdown = Text\HTML::toMarkdown($html); + $results[] = [ + 'title' => L10n::t('HTML::toMarkdown'), + 'content' => visible_whitespace($markdown) + ]; + + $text = Text\HTML::toPlaintext($html); + $results[] = [ + 'title' => L10n::t('HTML::toPlaintext'), + 'content' => '
' . $text . '
' + ]; + } } - if (x($_REQUEST, 'd2bbtext')) { - $d2bbtext = trim($_REQUEST['d2bbtext']); - $o .= '

' . L10n::t("Source input \x28Diaspora format\x29: ") . '

' . EOL . EOL; - $o .= '
' . $d2bbtext . '
' . EOL . EOL; - - $bb = diaspora2bb($d2bbtext); - $o .= '

' . L10n::t('diaspora2bb: ') . '

' . EOL . EOL; - $o .= '
' . $bb . '
' . EOL . EOL; - } + $tpl = Renderer::getMarkupTemplate('babel.tpl'); + $o = Renderer::replaceMacros($tpl, [ + '$text' => ['text', L10n::t('Source text'), defaults($_REQUEST, 'text', ''), ''], + '$type_bbcode' => ['type', L10n::t('BBCode'), 'bbcode', '', defaults($_REQUEST, 'type', 'bbcode') == 'bbcode'], + '$type_markdown' => ['type', L10n::t('Markdown'), 'markdown', '', defaults($_REQUEST, 'type', 'bbcode') == 'markdown'], + '$type_html' => ['type', L10n::t('HTML'), 'html', '', defaults($_REQUEST, 'type', 'bbcode') == 'html'], + '$results' => $results + ]); return $o; }