From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: [Accepted] org-html.el: Fix export of table.el tables. Date: Tue, 24 May 2011 15:06:15 +0200 (CEST) Message-ID: <20110524130615.9D02C45FE59@u016822.science.uva.nl> References: <81hb9nclv4.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([140.186.70.92]:45919) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOrJT-0002tm-WB for emacs-orgmode@gnu.org; Tue, 24 May 2011 09:06:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QOrJR-0002Th-Hs for emacs-orgmode@gnu.org; Tue, 24 May 2011 09:06:19 -0400 Received: from u016822.science.uva.nl ([146.50.39.34]:50419) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOrJQ-0002TI-V9 for emacs-orgmode@gnu.org; Tue, 24 May 2011 09:06:17 -0400 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org 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 > 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 >
>

1 Table.el Table with no Spanning

>
> > > > > > > > > > > > > >
TermPercentage
Quarter
One-Fourth
25%
Half
One-by-Two
50%
Three-Quarters
Three-Fourths
75%
Full
Whole
100%
> >
> >
> >
>

2 Table.el Table with Spanning

>
> > >

> -——— -——— > -——— -——— > -——— -——— >

> > > >
Name
rgb
Xah
total
cmd calls
93 534
82 090
203 118
Percentage
46%
40%
100%
> >
> >
> >
>

3 Another Table.el Table with Spanning

>
> > > > > > > > >
R1C1R1C2
R2C1 R2C2
R3C1
-———
R4C1
R3C2

R4C2
>
>
> #+end_src > > > * correct export (post-patch) > ** org-export-prefer-native-exporter-for-tables is t > #+begin_src html >
>

1 Table.el Table with no Spanning

>
> > > > > > > > > > > > > > > > > > > > > > > > >
> Term            > > Percentage      >
> Quarter        
> One-Fourth      >
> 25%            
>                 >
> Half           
> One-by-Two      >
> 50%            
>                 >
> Three-Quarters 
> Three-Fourths   >
> 75%            
>                 >
> Full           
> Whole           >
> 100%           
>                 >
> >
> >
> >
>

2 Table.el Table with Spanning

>
> > > > > > > > > > > > > > > > > > > > > >
> Name       > > cmd        calls     
>                      
> 93         534       
>                      
> 82         090       
>                      
> 203        118        >
> Percentage >
> rgb        > > 46%        >
> Xah        > > 40%        >
> total      > > 100%       >
> >
> >
> >
>

3 Another Table.el Table with Spanning

>
> > > > > > > > > > > > > > > > > > >
>    R1C1     > >    R1C2    >
>       R2C1 R2C2        >
>    R3C1    
>            
>    R4C1     >
>    R3C2    >
>    R4C2    >
>
>
> #+end_src > > ** org-export-prefer-native-exporter-for-tables is nil > > #+begin_src html >
>

1 Table.el Table with no Spanning

>
> > > > > > > > > > > > > >
TermPercentage
Quarter
One-Fourth
25%
Half
One-by-Two
50%
Three-Quarters
Three-Fourths
75%
Full
Whole
100%
> >
> >
> >
>

2 Table.el Table with Spanning

>
> > > > > > > > > > > > > > > > > > > > > >
> Name       > > cmd        calls     
>                      
> 93         534       
>                      
> 82         090       
>                      
> 203        118        >
> Percentage >
> rgb        > > 46%        >
> Xah        > > 40%        >
> total      > > 100%       >
> >
> >
> >
>

3 Another Table.el Table with Spanning

>
> > > > > > > > > > > > > > > > > > >
>    R1C1     > >    R1C2    >
>       R2C1 R2C2        >
>    R3C1    
>            
>    R4C1     >
>    R3C2    >
>    R4C2    >
>
>
> #+end_src > > --- > > > >From 3c8ff02efa0d2a4a08fe5341b9faa1de193048e9 Mon Sep 17 00:00:00 2001 > From: Jambunathan K > 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 "@>..<" 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 "\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 \"\"." > @@ -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 > >