emacs-orgmode
[Top][All Lists]
Advanced

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

[Orgmode] Valid xhtml and org-html.el


From: Sebastian Rose
Subject: [Orgmode] Valid xhtml and org-html.el
Date: Mon, 04 May 2009 11:18:57 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux)

Hi,


appended is a patch for org-html.el.


This is what it does:

  1. <col></col> is no valid XHTML. Coltags must be empty. I.e., <col .... />

  2. <colgroup>...</colgroup> tags where missing

  3. A minor fix for the end of the CSS comments. Safari doesn't like
     /*]]>*///-->
     and is right in this case. `//' does not start a comment in CSS.
     Therefore, I changed it to
     /*]]>*/-->
     which is valid and Safari shuts up.

  4. Change `&' in link descriptions to `&amp;' again.
     Not sure if I did it in the right place though, but I guess
     `org-export-html-format-desc' is only called to format link
     descriptions.


Apropos validation:

  I worked a little on org-search.php this weekend. It now works without
  networking by default and is much faster.
  
  Also, you may now use it without a database, just to validate the
  XHTML output. No installation required anymore. In that case, the
  script just scanns the first 10 files (customizable) found and
  displays the parser-errors.
  
  If you use the script with database, wrong links to images are
  detected now. That's nice, when moving files around in your
  org-directories.
  
  Get it here: 
     http://github.com/SebastianRose/org-search.php/tree/master



diff --git a/lisp/org-html.el b/lisp/org-html.el
index 5608b50..8e3ed4e 100644
--- a/lisp/org-html.el
+++ b/lisp/org-html.el
@@ -123,7 +123,7 @@ not be modified."
                                white-space:nowrap; }
   .org-info-js_search-highlight {background-color:#ffff00; color:#000000;
                                  font-weight:bold; }
-  /*]]>*///-->
+  /*]]>*/-->
 </style>"
   "The default style specification for exported HTML files.
 Please use the variables `org-export-html-style' and
@@ -1353,10 +1353,10 @@ lang=\"%s\" xml:lang=\"%s\">
 
 (defun org-export-html-format-desc (s)
   "Make sure the S is valid as a description in a link."
-  (if (and s (not (get-text-property 1 'org-protected s)))
-      (save-match-data
-       (org-html-do-expand s))
-    s))
+  (save-match-data
+    (if (and s (not (get-text-property 1 'org-protected s)))
+       (org-html-do-expand s)
+      (org-html-protect s))))
 
 (defun org-export-html-format-image (src par-open)
   "Create image tag with source and attributes."
@@ -1492,23 +1492,18 @@ lang=\"%s\" xml:lang=\"%s\">
     (setq html (nreverse html))
     (unless splice
       ;; Put in col tags with the alignment (unfortunately often ignored...)
-      (push (mapconcat
-            (lambda (x)
-              (setq gr (pop org-table-colgroup-info))
-              (format "%s<col align=\"%s\"></col>%s"
-                      (if (memq gr '(:start :startend))
-                          (prog1
-                              (if colgropen "</colgroup>\n<colgroup>" 
"<colgroup>")
-                            (setq colgropen t))
-                        "")
+      (push (concat
+            "<colgroup>"
+            (mapconcat
+             (lambda (x)
+               (setq gr (pop org-table-colgroup-info))
+               (format "<col align=\"%s\" />"
                       (if (> (/ (float x) nlines) org-table-number-fraction)
-                          "right" "left")
-                      (if (memq gr '(:end :startend))
-                          (progn (setq colgropen nil) "</colgroup>")
-                        "")))
-            fnum "")
+                          "right" "left")))
+             fnum "")
+            "</colgroup>")
            html)
-      (if colgropen (setq html (cons (car html) (cons "</colgroup>" (cdr 
html)))))
+
       ;; Since the output of HTML table formatter can also be used in
       ;; DocBook document, we want to always include the caption to make
       ;; DocBook XML file valid.

Regards

     Sebastian

reply via email to

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