* [PATCH] Update to slideshows for changed ox-html functions
@ 2013-02-26 22:56 Rick Frankel
2013-02-26 23:17 ` Nicolas Goaziou
0 siblings, 1 reply; 2+ messages in thread
From: Rick Frankel @ 2013-02-26 22:56 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 144 bytes --]
Attached is a patch to fix a couple of bugs which slipped by during
the re-integration. Also, a fix for the renamed functions in ox-html.
rick
[-- Attachment #2: 0001-Slideshow-bugfixes-and-sync-with-ox-html-function-na.patch --]
[-- Type: text/plain, Size: 6489 bytes --]
From daf83f8743cf512185e8ba2168571759bf51eac4 Mon Sep 17 00:00:00 2001
From: Rick Frankel <emacs@rickster.com>
Date: Tue, 26 Feb 2013 14:26:27 -0500
Subject: [PATCH] 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.
---
contrib/lisp/ox-deck.el | 21 +++++++--------------
contrib/lisp/ox-s5.el | 35 ++++++++++++++++++++++++++++++-----
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..1e76324 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-optional-title headline info) info)
+ (and tags " ") (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
--
1.8.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-02-26 23:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-26 22:56 [PATCH] Update to slideshows for changed ox-html functions Rick Frankel
2013-02-26 23:17 ` Nicolas Goaziou
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).