From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bastien Guerry Subject: [Accepted] org-faq: Invalid XHTML Date: Mon, 31 Jan 2011 19:36:50 +0100 (CET) Message-ID: <20110131183650.3E9D387AB@myhost.localdomain> References: <87lj23eqa7.wl%dmaus@ictsoc.de> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from [140.186.70.92] (port=48131 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PjycM-0003g5-Nk for emacs-orgmode@gnu.org; Mon, 31 Jan 2011 13:36:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PjycL-0001v8-5v for emacs-orgmode@gnu.org; Mon, 31 Jan 2011 13:36:50 -0500 Received: from mail-ww0-f49.google.com ([74.125.82.49]:37516) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PjycK-0001uu-P6 for emacs-orgmode@gnu.org; Mon, 31 Jan 2011 13:36:49 -0500 Received: by wwb17 with SMTP id 17so6251453wwb.30 for ; Mon, 31 Jan 2011 10:36:48 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Patch 563 (http://patchwork.newartisans.com/patch/563/) is now "Accepted". Maintainer comment: none This relates to the following submission: http://mid.gmane.org/%3C87lj23eqa7.wl%25dmaus%40ictsoc.de%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: [Orgmode] org-faq: Invalid XHTML > Date: Sat, 29 Jan 2011 19:30:08 -0000 > From: David Maus > X-Patchwork-Id: 563 > Message-Id: <87lj23eqa7.wl%dmaus@ictsoc.de> > To: Jambunathan K > Cc: emacs-orgmode@gnu.org > > At Tue, 11 Jan 2011 03:31:11 +0530, > Jambunathan K wrote: > > > > > > There are 16 errors while validating org-faq page. > > > > http://validator.w3.org/check?uri=http%3A%2F%2Forgmode.org%2Fworg%2Forg-faq.html&charset=%28detect+automatically%29&doctype=Inline&group=0 > > > > Can such errors be not caught as soon as it happens? > > Attached patch fixes a glitch in Org's HTML export and mitigates the > problem of invalid id and name attributes. > > Best, > -- David > > --- > OpenPGP... 0x99ADB83B5A4478E6 > Jabber.... dmjena@jabber.org > Email..... dmaus@ictsoc.de > >From 7d3072bec82934499d463a076488dc7b36192756 Mon Sep 17 00:00:00 2001 > From: David Maus > Date: Sat, 29 Jan 2011 15:19:53 +0100 > Subject: [PATCH] Create proper id and name attribute values > > * org-html.el (org-export-as-html) > (org-export-html-format-image, org-format-org-table-html) > (org-html-level-start): Solidify link targets. > * org-exp.el (org-solidify-link-text): Use better regexp and replace > string for id attributes. > > This fixes a problem with HTML export reported by Jambunathan K > gmail.com>. > > The regexp of invalid characters in `org-solidify-link-text' is > oriented towards the xml:id 1.0 specification > (cf. http://www.w3.org/TR/xml-id/). > --- > lisp/org-exp.el | 2 +- > lisp/org-html.el | 17 +++++++++-------- > 2 files changed, 10 insertions(+), 9 deletions(-) > > diff --git a/lisp/org-exp.el b/lisp/org-exp.el > index a055bac..97f17e5 100644 > --- a/lisp/org-exp.el > +++ b/lisp/org-exp.el > @@ -1971,7 +1971,7 @@ can work correctly." > (let* ((rtn > (mapconcat > 'identity > - (org-split-string s "[ \t\r\n]+") "==")) > + (org-split-string s "[^a-zA-Z0-9_\\.-]+") "--")) > (a (assoc rtn alist))) > (or (cdr a) rtn)))) > > diff --git a/lisp/org-html.el b/lisp/org-html.el > index 9a5d225..8faf60f 100644 > --- a/lisp/org-html.el > +++ b/lisp/org-html.el > @@ -1150,7 +1150,7 @@ lang=\"%s\" xml:lang=\"%s\"> > (setq href > (replace-regexp-in-string > "\\." "_" (format "sec-%s" snumber))) > - (setq href (or (cdr (assoc href org-export-preferred-target-alist)) href)) > + (setq href (org-solidify-link-text (or (cdr (assoc href org-export-preferred-target-alist)) href))) > (push > (format > (if todo > @@ -1814,7 +1814,7 @@ lang=\"%s\" xml:lang=\"%s\"> > (format "%s
>

" > (if org-par-open "

\n" "") > - (if label (format "id=\"%s\" " label) ""))) > + (if label (format "id=\"%s\" " (org-solidify-link-text label)) ""))) > (format "" > src > (if (string-match "\\ @@ -1999,7 +1999,7 @@ for formatting. This is required for the DocBook exporter." > ;; DocBook document, we want to always include the caption to make > ;; DocBook XML file valid. > (push (format "%s" (or caption "")) html) > - (when label (push (format "" label label) > + (when label (push (format "" (org-solidify-link-text label) (org-solidify-link-text label)) > html)) > (push html-table-tag html)) > (setq html (mapcar > @@ -2327,7 +2327,8 @@ When TITLE is nil, just close all open levels." > (setq extra-targets (remove (or preferred target) extra-targets)) > (setq extra-targets > (mapconcat (lambda (x) > - (if (org-uuidgen-p x) (setq x (concat "ID-" x))) > + (setq x (org-solidify-link-text > + (if (org-uuidgen-p x) (concat "ID-" x) x))) > (format "" > x x)) > extra-targets > @@ -2363,13 +2364,13 @@ When TITLE is nil, just close all open levels." > (progn > (org-close-li) > (if target > - (insert (format "
  • " (or preferred target)) > + (insert (format "
  • " (org-solidify-link-text (or preferred target))) > extra-targets title "
    \n") > (insert "
  • " title "
    \n"))) > (aset org-levels-open (1- level) t) > (org-close-par-maybe) > (if target > - (insert (format "
      \n
    • " (or preferred target)) > + (insert (format "
        \n
      • " (org-solidify-link-text (or preferred target))) > extra-targets title "
        \n") > (insert "
          \n
        • " title "
          \n")))) > (aset org-levels-open (1- level) t) > @@ -2383,8 +2384,8 @@ When TITLE is nil, just close all open levels." > " " title))) > (unless (= head-count 1) (insert "\n
  • \n")) > (setq href (cdr (assoc (concat "sec-" snu) org-export-preferred-target-alist))) > - (setq suffix (or href snu)) > - (setq href (or href (concat "sec-" snu))) > + (setq suffix (org-solidify-link-text (or href snu))) > + (setq href (org-solidify-link-text (or href (concat "sec-" snu)))) > (insert (format "\n
    \n%s%s\n
    \n" > suffix level (if extra-class (concat " " extra-class) "") > level href >