]> git.mxchange.org Git - friendica.git/blobdiff - library/markdown.php
Shared posts to Libertree now look better.
[friendica.git] / library / markdown.php
index 83082f7ca77072a4eee47ef82bca1ccba814c1a8..8def53fcbdaba4906f5ea5bf9403a97795079d29 100644 (file)
@@ -1,13 +1,38 @@
 <?php
-require_once("library/parsedown/Parsedown.php");
 
-function Markdown($text) {
+/**
+ * @file library/markdown.php
+ *
+ * @brief Parser for Markdown files
+ */
 
-       // Bugfix for the library:
-       // "[Title](http://domain.tld/ )" isn't handled correctly
-       $text = preg_replace("/\[(.*?)\]\s*?\(\s*?(\S*?)\s*?\)/ism", '[$1]($2)', $text);
+require_once "library/php-markdown/Michelf/MarkdownExtra.inc.php";
+use \Michelf\MarkdownExtra;
 
-       $Parsedown = new Parsedown();
-       return($Parsedown->text($text));
+/**
+ * @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;
 }
-?>