]> git.mxchange.org Git - friendica.git/commitdiff
Changes in the bbcode to markdown converter to make it more compatible with Diaspora
authorMichael Vogel <icarus@dabo.de>
Sun, 15 Jul 2012 10:47:24 +0000 (12:47 +0200)
committerMichael Vogel <icarus@dabo.de>
Sun, 15 Jul 2012 10:47:24 +0000 (12:47 +0200)
include/bb2diaspora.php
include/bbcode.php
include/markdownify/markdownify.php

index 436412dbd487bc700465314ab812d5670f417df8..25e4640b3aa034c3802b5720707c4b04418762c0 100644 (file)
@@ -196,6 +196,15 @@ function bb2diaspora($Text,$preserve_nl = false) {
        // The bbcode parser now handles youtube-links (and the other stuff) correctly.
        // Additionally the html code is now fixed so that lists are now working.
 
+       // Converting images with size parameters to simple images. Markdown doesn't know it.
+       $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $Text);
+
+       // the following was added on 10-January-2012 due to an inability of Diaspora's
+       // new javascript markdown processor to handle links with images as the link "text"
+       // It is not optimal and may be removed if this ability is restored in the future
+       $Text = preg_replace("/\[url\=([^\[\]]*)\]\[img\](.*?)\[\/img\]\[\/url\]/ism",
+                               "[img]$2[/img]\n[url]$1[/url]", $Text);
+
        // Convert it to HTML - don't try oembed
        $Text = bbcode($Text, $preserve_nl, false);
 
index a90be5de70f00b6fe2669f3b3eeaf3ff6b79be28..b5f2ec569796153f1e2e2410011c605f582b6162 100644 (file)
@@ -115,6 +115,10 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) {
 
        $a = get_app();
 
+       // Move all spaces out of the tags
+       $Text = preg_replace("/\[(\w*)\](\s*)/ism", '$2[$1]', $Text);
+       $Text = preg_replace("/(\s*)\[\/(\w*)\]/ism", '[/$2]$1', $Text);
+
        // Hide all [noparse] contained bbtags by spacefying them
        // POSSIBLE BUG --> Will the 'preg' functions crash if there's an embedded image?
 
index 43730cb77fd8073770d43e9f886628c1e7176fb5..7bbf1cbbed60c9047ff793bac8c104c4cdb97f27 100644 (file)
@@ -735,6 +735,13 @@ class Markdownify {
       $this->parser->tagAttributes['src'] = $this->decode($this->parser->tagAttributes['src']);
     }
 
+// ![Alt text](/path/to/img.jpg "Optional title")
+    if ($this->parser->tagAttributes['title'] != "")
+      $this->out('!['.$this->parser->tagAttributes['alt'].']('.$this->parser->tagAttributes['src'].'"'.$this->parser->tagAttributes['title'].'")', true);
+    else
+      $this->out('!['.$this->parser->tagAttributes['alt'].']('.$this->parser->tagAttributes['src'].')', true);
+
+/*
     # [This link][id]
     $link_id = false;
     if (!empty($this->stack['a'])) {
@@ -759,6 +766,7 @@ class Markdownify {
     }
 
     $this->out('!['.$this->parser->tagAttributes['alt'].']['.$link_id.']', true);
+*/
   }
   /**
    * handle <code> tags
@@ -1181,4 +1189,4 @@ class Markdownify {
   function parent() {
     return end($this->parser->openTags);
   }
-}
\ No newline at end of file
+}