summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRick Frankel <emacs@rickster.com>2013-02-26 14:26:27 -0500
committerNicolas Goaziou <n.goaziou@gmail.com>2013-02-27 00:15:37 +0100
commit43297f9ab78d7386e801b171b6f6cd1686e78dbb (patch)
treee98cad835a1097c4e559f2d0a867122992258572
parent86563e0119e1f0b710fb833e58504d1dc607b660 (diff)
downloadorg-mode-43297f9ab78d7386e801b171b6f6cd1686e78dbb.tar.gz
Slideshow bugfixes and sync with ox-html function name changes.
* contrib/lisp/ox-deck.el: Default org-deck-directories to "./deck.js". (org-deck-toc): Sync w/ ox-html name change (org-html--toc-text.) (org-deck-inner-template): Remove duplicate toc generation code. * contrib/lisp/ox-s5.el: Add inner template to fix duplicate content div error. (org-s5-toc): Sync w/ ox-html name change (org-html--toc-text) and make toc entries static since s5 doesn't support deep linking.
-rw-r--r--contrib/lisp/ox-deck.el21
-rw-r--r--contrib/lisp/ox-s5.el35
2 files changed, 37 insertions, 19 deletions
diff --git a/contrib/lisp/ox-deck.el b/contrib/lisp/ox-deck.el
index a5327e9..5d25369 100644
--- a/contrib/lisp/ox-deck.el
+++ b/contrib/lisp/ox-deck.el
@@ -37,6 +37,7 @@
;; works (it is derived from ox-html.)
(require 'ox-html)
+(eval-when-compile (require 'cl))
(org-export-define-derived-backend deck html
:menu-entry
@@ -62,9 +63,7 @@
(:deck-include-extensions "DECK_INCLUDE_EXTENSIONS" nil
org-deck-include-extensions split)
(:deck-exclude-extensions "DECK_EXCLUDE_EXTENSIONS" nil
- org-deck-exclude-extensions split)
- (:deck-directories "DECK_DIRECTORIES" nil
- org-deck-directories split))
+ org-deck-exclude-extensions split))
:translate-alist
((headline . org-deck-headline)
(inner-template . org-deck-inner-template)
@@ -76,7 +75,7 @@
:tag "Org Export DECK"
:group 'org-export-html)
-(defcustom org-deck-directories nil
+(defcustom org-deck-directories '("./deck.js")
"Directories to search for deck.js components (jquery,
modernizr; core, extensions and themes directories.)"
:group 'org-export-deck
@@ -250,7 +249,7 @@ Note that the wrapper div must include the class \"slide\"."
"<div id=\"table-of-contents\" class=\"slide\">\n"
(format "<h2>%s</h2>\n"
(org-html--translate "Table of Contents" info))
- (org-html-toc-text
+ (org-html--toc-text
(mapcar
(lambda (headline)
(let* ((class (org-element-property :HTML_CONTAINER_CLASS headline))
@@ -269,7 +268,7 @@ Note that the wrapper div must include the class \"slide\"."
"</?a[^>]*>" ""
(org-export-data
(org-element-property :title headline) info)))))
- (list
+ (cons
(if (and class (string-match-p "\\<slide\\>" class))
(format
"<a href='#outline-container-%s'>%s</a>"
@@ -319,17 +318,11 @@ Note that the wrapper div must include the class \"slide\"."
(list :scripts (nreverse scripts) :sheets (nreverse sheets)
:snippets snippets)))
-(defun org-html-inner-template (contents info)
+(defun org-deck-inner-template (contents info)
"Return body of document string after HTML conversion.
CONTENTS is the transcoded contents string. INFO is a plist
holding export options."
- (concat
- ;; Table of contents.
- (let ((depth (plist-get info :with-toc)))
- (when depth (org-deck-toc depth info)))
- ;; Document contents.
- contents
- "\n"))
+ (concat contents "\n"))
(defun org-deck-headline (headline contents info)
(let ((org-html-toplevel-hlevel 2)
diff --git a/contrib/lisp/ox-s5.el b/contrib/lisp/ox-s5.el
index 9b140c5..7cbaf01 100644
--- a/contrib/lisp/ox-s5.el
+++ b/contrib/lisp/ox-s5.el
@@ -74,6 +74,7 @@
:translate-alist
((headline . org-s5-headline)
(plain-list . org-s5-plain-list)
+ (inner-template . org-s5-inner-template)
(template . org-s5-template)))
(defgroup org-export-s5 nil
@@ -150,20 +151,37 @@ Note that the wrapper div must include the class \"slide\"."
:type 'string)
+(defun org-s5--format-toc-headline (headline info)
+ "Return an appropriate table of contents entry for HEADLINE.
+Note that (currently) the S5 exporter does not support deep links,
+so the table of contents is not \"active\".
+INFO is a plist used as a communication channel."
+ (let* ((headline-number (org-export-get-headline-number headline info))
+ (section-number
+ (and (not (org-export-low-level-p headline info))
+ (org-export-numbered-headline-p headline info)
+ (concat (mapconcat 'number-to-string headline-number ".") ". ")))
+ (tags (and (eq (plist-get info :with-tags) t)
+ (org-export-get-tags headline info))))
+ (concat section-number
+ (org-export-data
+ (org-export-get-alt-title headline info) info)
+ (and tags "&nbsp;&nbsp;&nbsp;") (org-html--tags tags))))
+
(defun org-s5-toc (depth info)
(let* ((headlines (org-export-collect-headlines info depth))
(toc-entries
- (loop for headline in headlines collect
- (list (org-html-format-headline--wrap
- headline info 'org-html-format-toc-headline)
- (org-export-get-relative-level headline info)))))
+ (mapcar (lambda (headline)
+ (cons (org-s5--format-toc-headline headline info)
+ (org-export-get-relative-level headline info)))
+ (org-export-collect-headlines info depth))))
(when toc-entries
(concat
"<div id=\"table-of-contents\" class=\"slide\">\n"
(format "<h1>%s</h1>\n"
(org-html--translate "Table of Contents" info))
"<div id=\"text-table-of-contents\">"
- (org-html-toc-text toc-entries)
+ (org-html--toc-text toc-entries)
"</div>\n"
"</div>\n"))))
@@ -240,6 +258,12 @@ which will make the list into a \"build\"."
("date" . ,(nth 0 (plist-get info :date)))
("file" . ,(plist-get info :input-file))))
+(defun org-s5-inner-template (contents info)
+ "Return body of document string after HTML conversion.
+CONTENTS is the transcoded contents string. INFO is a plist
+holding export options."
+ (concat contents "\n"))
+
(defun org-s5-template (contents info)
"Return complete document string after HTML conversion.
CONTENTS is the transcoded contents string. INFO is a plist
@@ -270,6 +294,7 @@ holding export options."
;; title page
(org-fill-template
org-s5-title-page-template (org-s5-template-alist info))
+ ;; table of contents.
(let ((depth (plist-get info :with-toc)))
(when depth (org-s5-toc depth info)))
contents