Fix issues with TOC, internal links and html-doctype.

* contrib/lisp/ox-deck.el (deck): add new deck specific link handler.
(org-deck-toc): Add "sec-" to non-custom link ids.
(org-deck-link): New function. Rename internal link to point at
container instead of heading.
(org-deck-template): Use alist doctype instead of string (per changes
to ox-html).
This commit is contained in:
Rick Frankel 2013-05-28 07:41:30 -04:00
parent d3f9b1cb7b
commit 36812e72ac
1 changed files with 15 additions and 4 deletions

View File

@ -68,6 +68,7 @@
'((headline . org-deck-headline) '((headline . org-deck-headline)
(inner-template . org-deck-inner-template) (inner-template . org-deck-inner-template)
(item . org-deck-item) (item . org-deck-item)
(link . org-deck-link)
(template . org-deck-template))) (template . org-deck-template)))
(defgroup org-export-deck nil (defgroup org-export-deck nil
@ -300,9 +301,11 @@ and have the id \"title-slide\"."
(format (format
"<a href='#outline-container-%s'>%s</a>" "<a href='#outline-container-%s'>%s</a>"
(or (org-element-property :CUSTOM_ID headline) (or (org-element-property :CUSTOM_ID headline)
(concat
"sec-"
(mapconcat (mapconcat
'number-to-string 'number-to-string
(org-export-get-headline-number headline info) "-")) (org-export-get-headline-number headline info) "-")))
title) title)
title) title)
(org-export-get-relative-level headline info)))) (org-export-get-relative-level headline info))))
@ -373,6 +376,10 @@ the \"slide\" class will be added to the to the list element,
(replace-regexp-in-string "^<li>" "<li class='slide'>" text) (replace-regexp-in-string "^<li>" "<li class='slide'>" text)
text))) text)))
(defun org-deck-link (link desc info)
(replace-regexp-in-string "href=\"#" "href=\"#outline-container-"
(org-html-link link desc info)))
(defun org-deck-template (contents info) (defun org-deck-template (contents info)
"Return complete document string after HTML conversion. "Return complete document string after HTML conversion.
CONTENTS is the transcoded contents string. INFO is a plist CONTENTS is the transcoded contents string. INFO is a plist
@ -385,7 +392,11 @@ holding export options."
(mapconcat (mapconcat
'identity 'identity
(list (list
(plist-get info :html-doctype) (let* ((dt (plist-get info :html-doctype))
(dt-cons (assoc dt org-html-doctype-alist)))
(if dt-cons
(cdr dt-cons)
dt))
(let ((lang (plist-get info :language))) (let ((lang (plist-get info :language)))
(mapconcat (mapconcat
(lambda (x) (lambda (x)