emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] [Accepted] org-html.el: Fix export of table.el tables.


From: Carsten Dominik
Subject: [O] [Accepted] org-html.el: Fix export of table.el tables.
Date: Tue, 24 May 2011 15:06:15 +0200 (CEST)

Patch 764 (http://patchwork.newartisans.com/patch/764/) is now "Accepted".

Maintainer comment: none

This relates to the following submission:

http://mid.gmane.org/%3C81hb9nclv4.fsf%40gmail.com%3E

Here is the original message containing the patch:

> Content-Type: text/plain; charset="utf-8"
> MIME-Version: 1.0
> Content-Transfer-Encoding: 7bit
> Subject: [O] org-html.el: Fix export of table.el tables.
> Date: Mon, 25 Apr 2011 03:42:23 -0000
> From: Jambunathan K <address@hidden>
> X-Patchwork-Id: 764
> Message-Id: <address@hidden>
> To: address@hidden
> 
> Changelog
> ---------
> 
> org-html.el: Fix export of table.el tables.
> 
> * lisp/org-html.el (org-export-as-html): Don't expand non-data
> lines of table.el tables.
> (org-html-expand): Removed the (buggy) test for non-data lines
> in table.el tables. The test is now done as part of
> org-export-as-html.
> (org-format-table-table-html-using-table-generate-source):
> Added test for spanning of cells in table.el tables using
> table.el's own library routine. Optionlly Suppress export of
> simple table.el tables.
> (org-format-table-html): Removed the (buggy) test for spanned
> table.el tables. The test is now done as part of
> org-format-table-table-html-using-table-generate-source.
> * Table.el Table with no Spanning
> # See org-export-prefer-native-exporter-for-tables
> 
>     +---------------+---------------+
>     |Term           |Percentage     |
>     +---------------+---------------+
>     |Quarter        |25%            |
>     |One-Fourth     |               |
>     +---------------+---------------+
>     |Half           |50%            |
>     |One-by-Two     |               |
>     +---------------+---------------+
>     |Three-Quarters |75%            |
>     |Three-Fourths  |               |
>     +---------------+---------------+
>     |Full           |100%           |
>     |Whole          |               |
>     +---------------+---------------+
>     
> * Table.el Table with Spanning
>    
>   +----------+---------------------+----------+
>   |Name      |cmd        calls     |Percentage|
>   +----------+                     +----------+
>   |rgb       |93         534       |46%       |
>   +----------+                     +----------+
>   |Xah       |82         090       |40%       |
>   +----------+                     +----------+
>   |total     |203        118       |100%      |
>   +----------+---------------------+----------+
>   
> * Another Table.el Table with Spanning
> 
>   +-----------+----------+
>   |   R1C1    |   R1C2   |
>   +-----------+----------+
>   |      R2C1 R2C2       |
>   +-----------+----------+
>   |   R3C1    |   R3C2   |
>   |           +----------+
>   |   R4C1    |   R4C2   |
>   +-----------+----------+
> 
> * buggy export (pre-patch)
> 
> ** org-export-prefer-native-exporter-for-tables is nil
>  
> #+begin_src html
>       <div id="outline-container-1" class="outline-2">
>       <h2 id="sec-1"><span class="section-number-2">1</span> Table.el Table 
> with no Spanning </h2>
>       <div class="outline-text-2" id="text-1">
> 
> 
>         <table border="2" cellspacing="0" cellpadding="6" rules="groups" 
> frame="hsides">
>           <tr><th scope="col">Term</th>
>           <th scope="col">Percentage</th></tr>
>           <tr><td>Quarter<br/>One-Fourth</td>
>           <td>25%<br/></td></tr>
>           <tr><td>Half<br/>One-by-Two</td>
>           <td>50%<br/></td></tr>
>           <tr><td>Three-Quarters<br/>Three-Fourths</td>
>           <td>75%<br/></td></tr>
>           <tr><td>Full<br/>Whole</td>
>           <td>100%<br/></td></tr>
>         </table>
> 
>       </div>
> 
>       </div>
> 
>       <div id="outline-container-2" class="outline-2">
>       <h2 id="sec-2"><span class="section-number-2">2</span> Table.el Table 
> with Spanning </h2>
>       <div class="outline-text-2" id="text-2">
> 
> 
>         <p>   
>           <del>-&mdash;&mdash;&mdash;</del>                     
> <del>-&mdash;&mdash;&mdash;</del>
>           <del>-&mdash;&mdash;&mdash;</del>                     
> <del>-&mdash;&mdash;&mdash;</del>
>           <del>-&mdash;&mdash;&mdash;</del>                     
> <del>-&mdash;&mdash;&mdash;</del>
>           </p><table border="2" cellspacing="0" cellpadding="6" 
> rules="groups" frame="hsides">
>           <tr><th scope="col">Name<br/>rgb<br/>Xah<br/>total</th>
>           <th scope="col">cmd        calls<br/>93         534<br/>82         
> 090<br/>203        118</th>
>           <th scope="col">Percentage<br/>46%<br/>40%<br/>100%</th></tr>
>         </table>
> 
>       </div>
> 
>       </div>
> 
>       <div id="outline-container-3" class="outline-2">
>       <h2 id="sec-3"><span class="section-number-2">3</span> Another Table.el 
> Table with Spanning </h2>
>       <div class="outline-text-2" id="text-3">
> 
> 
>         <table border="2" cellspacing="0" cellpadding="6" rules="groups" 
> frame="hsides">
>           <tr><th scope="col">R1C1</th>
>           <th scope="col">R1C2</th></tr>
>           <tr><td>R2C1 R2C2</td></tr>
>           <tr><td>R3C1<br/><del>-&mdash;&mdash;&mdash;</del><br/>R4C1</td>
>           <td>R3C2<br/><br/>R4C2</td></tr>
>         </table>
>       </div>
>       </div>
> #+end_src
> 
> 
> * correct export (post-patch)
> ** org-export-prefer-native-exporter-for-tables is t
> #+begin_src html
>   <div id="outline-container-1" class="outline-2">
>     <h2 id="sec-1"><span class="section-number-2">1</span> Table.el Table 
> with no Spanning </h2>
>     <div class="outline-text-2" id="text-1">
>   
>   
>       <!-- This HTML table template is generated by emacs 24.0.50.1 -->
>       <table border="1">
>         <tr>
>           <td align="left" valign="top">
>             
> Term&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             Percentage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             Quarter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
>             One-Fourth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             
> 25%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             
> Half&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
>             One-by-Two&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             
> 50%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             Three-Quarters&nbsp;<br />
>             Three-Fourths&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             
> 75%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             
> Full&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
>             Whole&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             
> 100%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>       </table>
>   
>     </div>
>   
>   </div>
>   
>   <div id="outline-container-2" class="outline-2">
>     <h2 id="sec-2"><span class="section-number-2">2</span> Table.el Table 
> with Spanning </h2>
>     <div class="outline-text-2" id="text-2">
>   
>   
>       <!-- This HTML table template is generated by emacs 24.0.50.1 -->
>       <table border="1">
>         <tr>
>           <td align="left" valign="top">
>             Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td rowspan="4" align="left" valign="top">
>             
> cmd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;calls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> 93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;534&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> 82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;090&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> 203&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;118&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             Percentage
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             46%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             Xah&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             40%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             100%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>       </table>
>   
>     </div>
>   
>   </div>
>   
>   <div id="outline-container-3" class="outline-2">
>     <h2 id="sec-3"><span class="section-number-2">3</span> Another Table.el 
> Table with Spanning </h2>
>     <div class="outline-text-2" id="text-3">
>   
>   
>       <!-- This HTML table template is generated by emacs 24.0.50.1 -->
>       <table border="1">
>         <tr>
>           <td align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R1C1&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R1C2&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td colspan="2" align="center" valign="top">
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R2C1&nbsp;R2C2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td rowspan="2" align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R3C1&nbsp;&nbsp;&nbsp;&nbsp;<br />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
>             &nbsp;&nbsp;&nbsp;R4C1&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R3C2&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R4C2&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>       </table>
>     </div>
>   </div>
> #+end_src
> 
> ** org-export-prefer-native-exporter-for-tables is nil
> 
> #+begin_src html
>   <div id="outline-container-1" class="outline-2">
>     <h2 id="sec-1"><span class="section-number-2">1</span> Table.el Table 
> with no Spanning </h2>
>     <div class="outline-text-2" id="text-1">
>   
>   
>       <table border="2" cellspacing="0" cellpadding="6" rules="groups" 
> frame="hsides">
>         <tr><th scope="col">Term</th>
>         <th scope="col">Percentage</th></tr>
>         <tr><td>Quarter<br/>One-Fourth</td>
>         <td>25%<br/></td></tr>
>         <tr><td>Half<br/>One-by-Two</td>
>         <td>50%<br/></td></tr>
>         <tr><td>Three-Quarters<br/>Three-Fourths</td>
>         <td>75%<br/></td></tr>
>         <tr><td>Full<br/>Whole</td>
>         <td>100%<br/></td></tr>
>       </table>
>   
>     </div>
>   
>   </div>
>   
>   <div id="outline-container-2" class="outline-2">
>     <h2 id="sec-2"><span class="section-number-2">2</span> Table.el Table 
> with Spanning </h2>
>     <div class="outline-text-2" id="text-2">
>   
>   
>       <!-- This HTML table template is generated by emacs 24.0.50.1 -->
>       <table border="1">
>         <tr>
>           <td align="left" valign="top">
>             Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td rowspan="4" align="left" valign="top">
>             
> cmd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;calls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> 93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;534&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> 82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;090&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br
>  />
>             
> 203&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;118&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             Percentage
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             rgb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             46%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             Xah&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             40%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="left" valign="top">
>             total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="left" valign="top">
>             100%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>       </table>
>   
>     </div>
>   
>   </div>
>   
>   <div id="outline-container-3" class="outline-2">
>     <h2 id="sec-3"><span class="section-number-2">3</span> Another Table.el 
> Table with Spanning </h2>
>     <div class="outline-text-2" id="text-3">
>   
>   
>       <!-- This HTML table template is generated by emacs 24.0.50.1 -->
>       <table border="1">
>         <tr>
>           <td align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R1C1&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R1C2&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td colspan="2" align="center" valign="top">
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R2C1&nbsp;R2C2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td rowspan="2" align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R3C1&nbsp;&nbsp;&nbsp;&nbsp;<br />
>             
> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
>             &nbsp;&nbsp;&nbsp;R4C1&nbsp;&nbsp;&nbsp;&nbsp;
>           </td>
>           <td align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R3C2&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>         <tr>
>           <td align="center" valign="top">
>             &nbsp;&nbsp;&nbsp;R4C2&nbsp;&nbsp;&nbsp;
>           </td>
>         </tr>
>       </table>
>     </div>
>   </div>
> #+end_src
> 
> ---
> 
> 
> >From 3c8ff02efa0d2a4a08fe5341b9faa1de193048e9 Mon Sep 17 00:00:00 2001
> From: Jambunathan K <address@hidden>
> Date: Mon, 25 Apr 2011 03:35:03 +0530
> Subject: [PATCH] org-html: Fix export of table.el tables.
> 
> * lisp/org-html.el (org-export-as-html): Don't expand non-data
> lines of table.el tables.
> (org-html-expand): Removed the (buggy) test for non-data lines
> in table.el tables. The test is now done as part of
> org-export-as-html.
> (org-format-table-table-html-using-table-generate-source):
> Added test for spanning of cells in table.el tables using
> table.el's own library routine. Optionlly Suppress export of
> simple table.el tables.
> (org-format-table-html): Removed the (buggy) test for spanned
> table.el tables. The test is now done as part of
> org-format-table-table-html-using-table-generate-source.
> ---
>  lisp/org-html.el |   72 +++++++++++++++++++++++++++--------------------------
>  1 files changed, 37 insertions(+), 35 deletions(-)
> 
> diff --git a/lisp/org-html.el b/lisp/org-html.el
> index 7a4564d..29bb825 100644
> --- a/lisp/org-html.el
> +++ b/lisp/org-html.el
> @@ -1543,6 +1543,7 @@ lang=\"%s\" xml:lang=\"%s\">
>         ;; handle @<..> HTML tags (replace "@&gt;..&lt;" by "<..>")
>         ;; Also handle sub_superscripts and checkboxes
>         (or (string-match org-table-hline-regexp line)
> +           (string-match "^[ \t]*\\([+]-\\||[ ]\\)[-+ |]*[+|][ \t]*$" line)
>             (setq line (org-html-expand line)))
>  
>         ;; Format the links
> @@ -1888,24 +1889,13 @@ NO-CSS is passed to the exporter."
>    (if (string-match "^[ \t]*|" (car lines))
>        ;; A normal org table
>        (org-format-org-table-html lines nil no-css)
> -    ;; Table made by table.el - test for spanning
> -    (let* ((hlines (delq nil (mapcar
> -                           (lambda (x)
> -                             (if (string-match "^[ \t]*\\+-" x) x
> -                               nil))
> -                           lines)))
> -        (first (car hlines))
> -        (ll (and (string-match "\\S-+" first)
> -                 (match-string 0 first)))
> -        (re (concat "^[ \t]*" (regexp-quote ll)))
> -        (spanning (delq nil (mapcar (lambda (x) (not (string-match re x)))
> -                                    hlines))))
> -      (if (and (not spanning)
> -            (not org-export-prefer-native-exporter-for-tables))
> -       ;; We can use my own converter with HTML conversions
> -       (org-format-table-table-html lines)
> -     ;; Need to use the code generator in table.el, with the original text.
> -     (org-format-table-table-html-using-table-generate-source olines)))))
> +    ;; Table made by table.el 
> +    (or (org-format-table-table-html-using-table-generate-source
> +      olines (not org-export-prefer-native-exporter-for-tables))
> +     ;; We are here only when table.el table has NO col or row
> +     ;; spanning and the user prefers using org's own converter for
> +     ;; exporting of such simple table.el tables.
> +     (org-format-table-table-html lines))))
>  
>  (defvar org-table-number-fraction) ; defined in org-table.el
>  (defun org-format-org-table-html (lines &optional splice no-css)
> @@ -2116,10 +2106,20 @@ But it has the disadvantage, that no cell- or 
> row-spanning is allowed."
>      (setq html (concat html "</table>\n"))
>      html))
>  
> -(defun org-format-table-table-html-using-table-generate-source (lines)
> +(defun org-format-table-table-html-using-table-generate-source (lines
> +                                                             &optional
> +                                                             spanned-only)
>    "Format a table into html, using `table-generate-source' from table.el.
> -This has the advantage that cell- or row-spanning is allowed.
> -But it has the disadvantage, that Org-mode's HTML conversions cannot be 
> used."
> +Use SPANNED-ONLY to suppress exporting of simple table.el tables.
> +
> +When SPANNED-ONLY is nil, all table.el tables are exported.  When
> +SPANNED-ONLY is non-nil, only tables with either row or column
> +spans are exported.
> +
> +This routine returns the generated source or nil as appropriate.
> +
> +Refer docstring of `org-export-prefer-native-exporter-for-tables'
> +for further information."
>    (require 'table)
>    (with-current-buffer (get-buffer-create " org-tmp1 ")
>      (erase-buffer)
> @@ -2128,10 +2128,14 @@ But it has the disadvantage, that Org-mode's HTML 
> conversions cannot be used."
>      (if (not (re-search-forward "|[^+]" nil t))
>       (error "Error processing table"))
>      (table-recognize-table)
> -    (with-current-buffer (get-buffer-create " org-tmp2 ") (erase-buffer))
> -    (table-generate-source 'html " org-tmp2 ")
> -    (set-buffer " org-tmp2 ")
> -    (buffer-substring (point-min) (point-max))))
> +    (when (or (not spanned-only)
> +           (let* ((dim (table-query-dimension))
> +                  (c (nth 4 dim)) (r (nth 5 dim)) (cells (nth 6 dim)))
> +             (not (= (* c r) cells))))
> +      (with-current-buffer (get-buffer-create " org-tmp2 ") (erase-buffer))
> +      (table-generate-source 'html " org-tmp2 ")
> +      (set-buffer " org-tmp2 ")
> +      (buffer-substring (point-min) (point-max)))))
>  
>  (defun org-export-splice-style (style extra)
>    "Splice EXTRA into STYLE, just before \"</style>\"."
> @@ -2234,16 +2238,14 @@ If there are links in the string, don't modify these."
>    (let* ((re (concat org-bracket-link-regexp "\\|"
>                    (org-re "[ \t]+\\(:[[:alnum:address@hidden:]+:\\)[ 
> \t]*$")))
>        m s l res)
> -    (if (string-match "^[ \t]*\\+-[-+]*\\+[ \t]*$" string)
> -     string
> -      (while (setq m (string-match re string))
> -     (setq s (substring string 0 m)
> -           l (match-string 0 string)
> -           string (substring string (match-end 0)))
> -     (push (org-html-do-expand s) res)
> -     (push l res))
> -      (push (org-html-do-expand string) res)
> -      (apply 'concat (nreverse res)))))
> +    (while (setq m (string-match re string))
> +      (setq s (substring string 0 m)
> +         l (match-string 0 string)
> +         string (substring string (match-end 0)))
> +      (push (org-html-do-expand s) res)
> +      (push l res))
> +    (push (org-html-do-expand string) res)
> +    (apply 'concat (nreverse res))))
>  
>  (defun org-html-do-expand (s)
>    "Apply all active conversions to translate special ASCII to HTML."
> -- 
> 1.7.2.3
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]