Browse Source

HTML export: Fix problem with table attributes when first table line is special

Eric Fraga writes:

> What am I missing?  I tried exporting the following to HTML and the
> caption and HTML attributes seem to be ignored completely.  Also, the
> alignment directives are ignored as well.
>
> --8<---------------cut here---------------start------------->8---
> #+TITLE: test file for org mode
> #+DESCRIPTION: used for bug reports
> #+AUTHOR:    Eric S Fraga
> #+EMAIL:     Eric S Fraga <e.fraga@ucl.ac.uk>
> #+DATE:      2010-03-11 Thu
> #+KEYWORDS:
> #+LANGUAGE:  en
> #+OPTIONS:   H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
> #+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
> #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
> #+EXPORT_SELECT_TAGS: export
> #+EXPORT_EXCLUDE_TAGS: noexport
> #+LINK_UP:
> #+LINK_HOME:
>
> * tables
>
> #+caption: A very interesting table
> #+attr_html: border="1" rules="all" frame="all" align="center"
> | <r> | <l>                            |
> |  Id | Description                    |
> |-----+--------------------------------|
> |  1. | The first item                 |
> |  2. | the second                     |
> |  4. | we don't have a third one      |
> | 10. | a longer id to check alignment |
> |-----+--------------------------------|
> --8<---------------cut here---------------end--------------->8---
>
> I'm using org current as of yesterday Org-mode version 6.34trans
>  (release_6.34c.186.g1902) and with GNU Emacs 23.1.1
>  (i486-pc-linux-gnu, GTK+ Version 2.18.2) of 2009-11-02 on raven,
>  modified by Debian
Carsten Dominik 15 years ago
parent
commit
c6cfd3cfd3
2 changed files with 12 additions and 3 deletions
  1. 4 0
      lisp/ChangeLog
  2. 8 3
      lisp/org-exp.el

+ 4 - 0
lisp/ChangeLog

@@ -1,5 +1,9 @@
 2010-03-11  Carsten Dominik  <carsten.dominik@gmail.com>
 
+	* org-exp.el (org-export-attach-captions-and-attributes): Add the
+	properties to the entire table, in case the first line is
+	removed.
+
 	* org-archive.el (org-archive-reversed-order): New option.
 	(org-archive-subtree, org-archive-to-archive-sibling): Use the new
 	option `org-archive-reversed-order'.

+ 8 - 3
lisp/org-exp.el

@@ -1888,10 +1888,10 @@ table line.  If it is a link, add it to the line containing the link."
 		    "\\|"
 		    "^[ \t]*#\\+label:[ \t]+\\(.*\\)"
 		    "\\|"
-		    "^[ \t]*|[^-]"
+		    "^[ \t]*\\(|[^-]\\)"
 		    "\\|"
 		    "^[ \t]*\\[\\[.*\\]\\][ \t]*$"))
-	cap attr label)
+	cap attr label end)
     (while (re-search-forward re nil t)
       (cond
        ((match-end 1)
@@ -1901,11 +1901,16 @@ table line.  If it is a link, add it to the line containing the link."
        ((match-end 3)
 	(setq label (org-trim (match-string 3))))
        (t
-	(add-text-properties (point-at-bol) (point-at-eol)
+	(setq end (if (match-end 4)
+		      (let ((ee (org-table-end)))
+			(prog1 (1- (marker-position ee)) (move-marker ee nil)))
+		    (point-at-eol)))
+	(add-text-properties (point-at-bol) end
 			     (list 'org-caption cap
 				   'org-attributes attr
 				   'org-label label))
 	(if label (push (cons label label) target-alist))
+	(goto-char end)
 	(setq cap nil attr nil label nil)))))
   target-alist)