Kaynağa Gözat

dokuwiki to asciidoc: add support for note

Travis 9 yıl önce
ebeveyn
işleme
4e7a1ff3e3

+ 41 - 3
src/dokuwiki/lib/plugins/asciidoc/helper.php

@@ -14,6 +14,7 @@ class helper_plugin_asciidoc extends DokuWiki_Plugin {
      */
     function _asciidoc_extension(&$renderer,$name,$data) {
         switch ($name) {
+          /*
             case 'htmlcomment':
                 list($state, $match) = $data;
                 $renderer->doc .= '<!--';
@@ -36,16 +37,53 @@ class helper_plugin_asciidoc extends DokuWiki_Plugin {
                 $renderer->doc .= $renderer->_xmlEntities($data);
                 $renderer->doc .= '</plaintext>';
                 return true;
+            case 'tag_topic':
+                list($ns, $tag, $flags) = $data;
+                $renderer->doc .= '<topic namespace="'.$ns.'" tags="'.$tag.'" flags="'.implode(' ',$flags).'" />'.DOKU_LF;
+                return true;
+              */
             case 'tag_tag':
                 foreach ($data as $tag) {
                     array_push($renderer->keywords, $renderer->_xmlEntities($tag));
                 }
                 return true;
-            case 'tag_topic':
-                list($ns, $tag, $flags) = $data;
-                $renderer->doc .= '<topic namespace="'.$ns.'" tags="'.$tag.'" flags="'.implode(' ',$flags).'" />'.DOKU_LF;
+            case 'iframe':
+                $str = 'iframe:'.$data['url'].'[width="'. $data['width'].'", height="'. $data['height'].'", alt="'. $data['alt'].'", scroll="'. var_export($data['scroll'], true).'",border="'. var_export($data['border'], true).'",align="'. var_export($data['align'], true).'"]'.DOKU_LF;
+                $renderer->doc .= $str;
+                return true;
+            case 'note':
+                list($kind, $m1, $m2) = $data;
+                switch ($kind) {
+                  case '1':
+                    switch ($m1) {
+                      case 'notewarning': 
+                        $renderer->doc .= DOKU_LF."[WARNING]";
+                        break;
+                      case 'notetip': 
+                        $renderer->doc .= DOKU_LF."[TIP]";
+                        break;
+                      case 'noteimportant': 
+                        $renderer->doc .= DOKU_LF."[IMPORTANT]";
+                        break;
+                      case 'noteclassic': 
+                        $renderer->doc .= DOKU_LF."[NOTE]";
+                        break;
+                      default:
+                        fwrite(STDERR, "note ,'". $m1 ."''\n");
+                        $renderer->doc .= DOKU_LF."[NOTE]";
+                    }
+                    $renderer->doc .= DOKU_LF."====".DOKU_LF;
+                    return true;
+                  case '3':
+                    $renderer->doc .= $renderer->_xmlEntities($m1);
+                    return true;
+                  case '4':
+                    $renderer->doc .= DOKU_LF."====".DOKU_LF;
+                    return true;
+                }
                 return true;
         }
+        fwrite(STDERR, "case ,'". $name ."' data: '". var_export($data, TRUE) ."'\n");
         return false;
     }
 }

+ 2 - 2
src/dokuwiki/lib/plugins/asciidoc/renderer.php

@@ -356,8 +356,8 @@ class renderer_plugin_asciidoc extends Doku_Renderer {
     function code($text, $lang = null, $file = null) {
       $this->doc .= DOKU_LF.'[source';
       if ($lang != null) $this->doc .= ',' . $lang;
-      $this->doc .= ']'.DOKU_LF;
-      if ($file != null) $this->doc .= '.' . $file;
+      $this->doc .= ']';
+      if ($file != null) $this->doc .= DOKU_LF.'.' . $file;
       $this->doc .= DOKU_LF.'----'.DOKU_LF;
       $this->doc .= $text;
       $this->doc .= DOKU_LF.'----'.DOKU_LF;