bjori           Tue Aug  7 18:03:45 2007 UTC

  Modified files:              
    /phd/formats        xhtml.php 
  Log:
   - Add/fix support for the following docbook tags:
    - filename
    - example
    - informalexample
    - literal
    - note
    - para (when used inside <example />)
    - programlisting
    - screen
    - simpara (when used inside <note />, <listitem />, <entry />
    - tip
    - title (when used inside <example />, <note />, <table />
    - warning
  
  
http://cvs.php.net/viewvc.cgi/phd/formats/xhtml.php?r1=1.11&r2=1.12&diff_format=u
Index: phd/formats/xhtml.php
diff -u phd/formats/xhtml.php:1.11 phd/formats/xhtml.php:1.12
--- phd/formats/xhtml.php:1.11  Sun Aug  5 22:50:04 2007
+++ phd/formats/xhtml.php       Tue Aug  7 18:03:44 2007
@@ -1,5 +1,5 @@
 <?php
-/*  $Id: xhtml.php,v 1.11 2007/08/05 22:50:04 bjori Exp $ */
+/*  $Id: xhtml.php,v 1.12 2007/08/07 18:03:44 bjori Exp $ */
 
 class XHTMLPhDFormat extends PhDFormat {
     protected $map = array( /* {{{ */
@@ -27,13 +27,14 @@
             'book'              => 'format_chunk',
             'part'              => 'format_chunk',
         ),
+        'caution'               => 'div',
         'classname'             => 'span',
         'code'                  => 'code',
         'collab'                => 'span',
         'collabname'            => 'span',
         'command'               => 'span',
         'computeroutput'        => 'span',
-        'constant'              => 'span',
+        'constant'              => 'format_constant',
         'emphasis'              => 'em',
         'enumname'              => 'span',
         'entry'                 => array (
@@ -46,7 +47,8 @@
             ),
         ),
         'envar'                 => 'span',
-        'filename'              => 'span',
+        'example'               => 'div',
+        'filename'              => 'var',
         'glossterm'             => 'span',
         'holder'                => 'span',
         'index'                 => array(
@@ -56,31 +58,37 @@
             'part'              => 'format_chunk',
         ),
         'info'                  => 'div',
+        'informalexample'       => 'div',
         'informaltable'         => 'table',
         'itemizedlist'          => 'ul',
         'listitem'              => array(
             /* DEFAULT */          'li',
             'varlistentry'      => 'format_varlistentry_listitem',
         ),
-        'literal'               => 'span',
+        'literal'               => 'i',
         'mediaobject'           => 'div',
         'methodparam'           => 'span',
         'member'                => 'li',
-        'note'                  => 'div',
+        'note'                  => 'format_note',
         'option'                => 'span',    
         'orderedlist'           => 'ol',
-        'para'                  => 'p',
+        'para'                  => array(
+            /* DEFAULT */          'p',
+            'example'           => 'format_example_content',
+        ),
         'parameter'             => 'tt',
         'part'                  => 'format_container_chunk',
         'partintro'             => 'div',
         'personname'            => 'span',
         'preface'               => 'format_chunk',
         'productname'           => 'span',
+        'programlisting'        => 'format_programlisting',
         'propname'              => 'span',
         'property'              => 'span',
         'proptype'              => 'span',
         'refentry'              => 'format_chunk',
         'reference'             => 'format_container_chunk',
+        'screen'                => 'format_screen',
         'sect1'                 => 'format_chunk',
         'sect2'                 => 'format_chunk',
         'sect3'                 => 'format_chunk',
@@ -90,34 +98,43 @@
         'set'                   => 'format_chunk',
         'setindex'              => 'format_chunk',
         'simplelist'            => 'ul',
-        'simpara'               => 'p',
+        'simpara'               => array(
+            /* DEFAULT */          'p',
+            'note'              => 'span',
+            'listitem'          => 'span',
+            'entry'             => 'span',
+        ),
         'systemitem'            => 'format_systemitem',
         'table'                 => 'format_table',
         'term'                  => 'span',
         'tfoot'                 => 'format_th',
         'thead'                 => 'format_th',
+        'tip'                   => 'div',
         'title'                 => array(
             /* DEFAULT */          'h1',
+            'example'           => 'format_bold_paragraph',
             'legalnotice'       => 'h4',
+            'note'              => 'format_note_title',
+            'refsect1'          => 'h3',
             'section'           => 'h2',
             'sect1'             => 'h2',
             'sect2'             => 'h3',
             'sect3'             => 'h4',
-            'refsect1'          => 'h3',
-            'example'           => 'h4',
-            'note'              => 'h4',
+            'table'             => 'format_bold_paragraph',
         ),
         'type'                  => 'format_type',
         'userinput'             => 'format_userinput',
         'variablelist'          => 'format_variablelist',
         'varlistentry'          => 'format_varlistentry',
         'varname'               => 'var',
+        'warning'               => 'div',
         'xref'                  => 'format_link',
         'year'                  => 'span',
     ); /* }}} */
 
     protected $CURRENT_ID  = "";
     protected $ext         = "html";
+    protected $role        = false;
     
     public function __construct(PhDReader $reader, array $IDs, array $IDMap, 
$ext = "html") {
         parent::__construct($reader, $IDs, $IDMap, $ext);
@@ -140,7 +157,13 @@
         return "</$tag>";
     }
     public function CDATA($str) {
-        return sprintf('<div class="phpcode">%s</div>', highlight_string($str, 
1));
+        switch($this->role) {
+        case "php":
+            return sprintf('<div class="phpcode">%s</div>', 
highlight_string(trim($str), 1));
+            break;
+        default:
+            return sprintf('<div class="cdata">%s</div>', $str);
+        }
     }
 
     public function format_container_chunk($open, $name) {
@@ -298,6 +321,51 @@
         }
         return sprintf('<span class="%s %s">%2$s</span>', $name, $type);
     }
+    public function format_example_content($open, $name) {
+        if ($open) {
+            return '<div class="example-contents"><p>';
+        }
+        return "</p></div>";
+    }
+    public function format_programlisting($open, $name) {
+        if ($open) {
+            $this->role = PhDFormat::readAttribute("role");
+
+            return '<div class="example-contents">';
+        }
+        $this->role = false;
+        return "</div>\n";
+    }
+    public function format_screen($open, $name) {
+        if ($open) {
+            return '<div class="example-contents"><pre>';
+        }
+        return '</pre></div>';
+    }
+    public function format_constant($open, $name) {
+        if ($open) {
+            return "<b><tt>";
+        }
+        return "</tt></b>";
+    }
+    public function format_note($open, $name) {
+        if ($open) {
+            return '<blockquote><p>';
+        }
+        return "</p></blockquote>";
+    }
+    public function format_note_title($open, $name) {
+        if ($open) {
+            return '<b>';
+        }
+        return '</b>';
+    }
+    public function format_bold_paragraph($open, $name) {
+        if ($open) {
+            return "<p><b>";
+        }
+        return "</b></p>";
+    }
 
 
     public function format_table($open, $name) {

Reply via email to