From fabbf810b0b830bab695d957b1f4ebb85afbd990 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan <mrpetovan@gmail.com> Date: Sun, 14 Jan 2018 18:59:08 -0500 Subject: [PATCH] Move library/markdown.php to src --- include/bb2diaspora.php | 6 ++---- library/markdown.php | 37 --------------------------------- mod/admin.php | 12 +++++------ mod/babel.php | 6 +++--- mod/help.php | 7 +++---- src/Content/Text/Markdown.php | 39 +++++++++++++++++++++++++++++++++++ 6 files changed, 52 insertions(+), 55 deletions(-) delete mode 100644 library/markdown.php create mode 100644 src/Content/Text/Markdown.php diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index daa8c5e048..73210860d2 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -1,14 +1,12 @@ <?php -use Friendica\App; +use Friendica\Content\Text\Markdown; use Friendica\Core\System; use Friendica\Model\Contact; use Friendica\Network\Probe; - use League\HTMLToMarkdown\HtmlConverter; require_once 'include/event.php'; -require_once 'library/markdown.php'; require_once 'include/html2bbcode.php'; require_once 'include/bbcode.php'; @@ -58,7 +56,7 @@ function diaspora2bb($s) { // Escaping the hash tags $s = preg_replace('/\#([^\s\#])/', '#$1', $s); - $s = Markdown($s); + $s = Markdown::convert($s); $regexp = "/@\{(?:([^\}]+?); )?([^\} ]+)\}/"; $s = preg_replace_callback($regexp, 'diaspora_mention2bb', $s); diff --git a/library/markdown.php b/library/markdown.php deleted file mode 100644 index 308d91bc79..0000000000 --- a/library/markdown.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -/** - * @file library/markdown.php - * - * @brief Parser for Markdown files - */ - -use \Michelf\MarkdownExtra; - -/** - * @brief This function parses a text using php-markdown library to render Markdown syntax to HTML - * - * This function is using the php-markdown library by Michel Fortin to parse a - * string ($text).It returns the rendered HTML code from that text. The optional - * $hardwrap parameter is used to switch between inserting hard breaks after - * every linefeed, which is required for Diaspora compatibility, or not. The - * later is used for parsing documentation and README.md files. - * - * @param string $text - * @param boolean $hardwrap - * @return string - */ - -function Markdown($text, $hardwrap = true) { - $a = get_app(); - - $stamp1 = microtime(true); - - $MarkdownParser = new MarkdownExtra(); - $MarkdownParser->hard_wrap = $hardwrap; - $html = $MarkdownParser->transform($text); - - $a->save_timestamp($stamp1, "parser"); - - return $html; -} diff --git a/mod/admin.php b/mod/admin.php index e7463a3609..81ede51c03 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -4,10 +4,12 @@ * * @brief Friendica admin */ + use Friendica\App; use Friendica\Content\Feature; -use Friendica\Core\System; +use Friendica\Content\Text\Markdown; use Friendica\Core\Config; +use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBM; use Friendica\Database\DBStructure; @@ -1777,9 +1779,7 @@ function admin_page_plugins(App $a) $readme = Null; if (is_file("addon/$plugin/README.md")) { - require_once 'library/markdown.php'; - $readme = file_get_contents("addon/$plugin/README.md"); - $readme = Markdown($readme, false); + $readme = Markdown::convert(file_get_contents("addon/$plugin/README.md"), false); } elseif (is_file("addon/$plugin/README")) { $readme = "<pre>" . file_get_contents("addon/$plugin/README") . "</pre>"; } @@ -2028,9 +2028,7 @@ function admin_page_themes(App $a) $readme = null; if (is_file("view/theme/$theme/README.md")) { - require_once 'library/markdown.php'; - $readme = file_get_contents("view/theme/$theme/README.md"); - $readme = Markdown($readme, false); + $readme = Markdown::convert(file_get_contents("view/theme/$theme/README.md"), false); } elseif (is_file("view/theme/$theme/README")) { $readme = "<pre>" . file_get_contents("view/theme/$theme/README") . "</pre>"; } diff --git a/mod/babel.php b/mod/babel.php index 2b8c379016..a4fbd172ee 100644 --- a/mod/babel.php +++ b/mod/babel.php @@ -1,11 +1,11 @@ <?php -use Friendica\App; +use Friendica\Content\Text\Markdown; require_once 'include/bbcode.php'; -require_once 'library/markdown.php'; require_once 'include/bb2diaspora.php'; require_once 'include/html2bbcode.php'; +require_once 'include/pgettext.php'; function visible_lf($s) { @@ -51,7 +51,7 @@ function babel_content() $o .= '<h2>' . t('bb2diaspora: ') . '</h2>' . EOL . EOL; $o .= visible_lf($diaspora) . EOL . EOL; - $html = Markdown($diaspora); + $html = Markdown::convert($diaspora); $o .= '<h2>' . t('bb2diaspora => Markdown: ') . '</h2>' . EOL . EOL; $o .= $html . EOL . EOL; diff --git a/mod/help.php b/mod/help.php index 9a4b275f95..65221165fd 100644 --- a/mod/help.php +++ b/mod/help.php @@ -1,10 +1,9 @@ <?php use Friendica\App; +use Friendica\Content\Text\Markdown; use Friendica\Core\System; -require_once('library/markdown.php'); - if (!function_exists('load_doc_file')) { function load_doc_file($s) { @@ -50,7 +49,7 @@ function help_content(App $a) { $filename = "Home"; $a->page['title'] = t('Help'); } else { - $a->page['aside'] = Markdown($home, false); + $a->page['aside'] = Markdown::convert($home, false); } if (!strlen($text)) { @@ -61,7 +60,7 @@ function help_content(App $a) { )); } - $html = Markdown($text, false); + $html = Markdown::convert($text, false); if ($filename !== "Home") { // create TOC but not for home diff --git a/src/Content/Text/Markdown.php b/src/Content/Text/Markdown.php new file mode 100644 index 0000000000..2615aa411f --- /dev/null +++ b/src/Content/Text/Markdown.php @@ -0,0 +1,39 @@ +<?php + +/** + * @file src/Content/Text/Markdown.php + */ + +namespace Friendica\Content\Text; + +use Friendica\BaseObject; +use Michelf\MarkdownExtra; + +/** + * Friendica-specific usage of Markdown + * + * @author Hypolite Petovan <mrpetovan@gmail.com> + */ +class Markdown extends BaseObject +{ + /** + * Converts a Markdown string into HTML. The hardwrap parameter maximizes + * compatibility with Diaspora in spite of the Markdown standard. + * + * @brief Converts a Markdown string into HTML + * @param string $text + * @param bool $hardwrap + * @return string + */ + public static function convert($text, $hardwrap = true) { + $stamp1 = microtime(true); + + $MarkdownParser = new MarkdownExtra(); + $MarkdownParser->hard_wrap = $hardwrap; + $html = $MarkdownParser->transform($text); + + self::getApp()->save_timestamp($stamp1, "parser"); + + return $html; + } +} -- 2.39.5