(defun org-export-as-s5 (arg &optional hidden ext-plist to-buffer body-only pub-dir) "Wrap `org-export-as-html' in setting for S5 export." (interactive "P") (flet ((join (lst) (mapconcat #'identity lst "\n")) (sheet (href media id) (org-fill-template (concat "") `(("href" . ,href) ("media" . ,media) ("id" . ,id))))) (let ((org-export-html-style-extra (join `("" "" "" "" ,(sheet "ui/default/slides.css" "projection" "slideProj") ,(sheet "ui/default/outline.css" "screen" "outlineStyle") ,(sheet "ui/default/print.css" "print" "slidePrint") ,(sheet "ui/default/opera.css" "projection" "operaFix") "" ,(concat "")))) (org-export-html-toplevel-hlevel 1) (org-export-headline-levels 2) (org-export-preprocess-hook (list (lambda () (let ((class "slide")) (org-map-entries (lambda () (save-excursion ;; from `org-export-remember-html-container-classes' (org-back-to-heading t) (if (looking-at "^\\* ") (put-text-property (point-at-bol) (point-at-eol) 'html-container-class class)))))) ))) (org-export-html-final-hook (list (lambda () (save-excursion (replace-regexp (regexp-quote "
") (mapconcat #'identity `("
" "
" "
" "
" "
" ,(format "

%s - %s

" author title) "
" "
" "" "
" "
" ,(format "

%s

%s

%s

" title author date) "
") "\n")))) (lambda () (save-excursion (replace-regexp (regexp-quote "
") "
")))))) (org-export-as-html arg hidden ext-plist to-buffer body-only pub-dir))))