emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <cdominik@newartisans.com>
To: emacs-orgmode@gnu.org
Subject: [Accepted]  org-html.el: Fix export of table.el tables.
Date: Tue, 24 May 2011 15:06:15 +0200 (CEST)	[thread overview]
Message-ID: <20110524130615.9D02C45FE59@u016822.science.uva.nl> (raw)
In-Reply-To: 81hb9nclv4.fsf@gmail.com

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 <kjambunathan@gmail.com>
> X-Patchwork-Id: 764
> Message-Id: <81hb9nclv4.fsf@gmail.com>
> To: emacs-orgmode@gnu.org
> 
> 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 <kjambunathan@gmail.com>
> 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:]_@#%:]+:\\)[ \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
> 
> 

      parent reply	other threads:[~2011-05-24 13:06 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-24 22:42 [PATCH] org-html.el: Fix export of table.el tables Jambunathan K
2011-04-24 22:47 ` Jambunathan K
2011-04-26 12:55 ` Manuel Giraud
2011-04-26 12:57   ` Manuel Giraud
2011-04-26 13:49     ` Jambunathan K
2011-04-26 15:14       ` Manuel Giraud
2011-05-24 13:06 ` Carsten Dominik [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110524130615.9D02C45FE59@u016822.science.uva.nl \
    --to=cdominik@newartisans.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).