Created
July 10, 2021 18:41
-
-
Save takaxp/454a328e724c12866e6293248d54e830 to your computer and use it in GitHub Desktop.
org-html-template-md.el
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun org-html-template (contents info) | |
"Return complete document string after HTML conversion. | |
CONTENTS is the transcoded contents string. INFO is a plist | |
holding export options." | |
(concat | |
(when (and (not (org-html-html5-p info)) (org-html-xhtml-p info)) | |
(let* ((xml-declaration (plist-get info :html-xml-declaration)) | |
(decl (or (and (stringp xml-declaration) xml-declaration) | |
(cdr (assoc (plist-get info :html-extension) | |
xml-declaration)) | |
(cdr (assoc "html" xml-declaration)) | |
""))) | |
(when (not (or (not decl) (string= "" decl))) | |
(format "%s\n" | |
(format decl | |
(or (and org-html-coding-system | |
(fboundp 'coding-system-get) | |
(coding-system-get org-html-coding-system 'mime-charset)) | |
"iso-8859-1")))))) | |
(org-html-doctype info) | |
"\n" | |
(concat "<html" | |
(cond ((org-html-xhtml-p info) | |
(format | |
" xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"%s\" xml:lang=\"%s\"" | |
(plist-get info :language) (plist-get info :language))) | |
((org-html-html5-p info) | |
(format " lang=\"%s\"" (plist-get info :language)))) | |
">\n") | |
"<head>\n" | |
(org-html--build-meta-info info) | |
(org-html--build-head info) | |
(org-html--build-mathjax-config info) | |
"</head>\n" | |
"<body>\n" | |
"<div class=\"markdown-body\">\n" | |
(let ((link-up (org-trim (plist-get info :html-link-up))) | |
(link-home (org-trim (plist-get info :html-link-home)))) | |
(unless (and (string= link-up "") (string= link-home "")) | |
(format (plist-get info :html-home/up-format) | |
(or link-up link-home) | |
(or link-home link-up)))) | |
;; Preamble. | |
(org-html--build-pre/postamble 'preamble info) | |
;; Document contents. | |
(let ((div (assq 'content (plist-get info :html-divs)))) | |
(format "<%s id=\"%s\">\n" (nth 1 div) (nth 2 div))) | |
;; Document title. | |
(when (plist-get info :with-title) | |
(let ((title (and (plist-get info :with-title) | |
(plist-get info :title))) | |
(subtitle (plist-get info :subtitle)) | |
(html5-fancy (org-html--html5-fancy-p info))) | |
(when title | |
(format | |
(if html5-fancy | |
"<header>\n<h1 class=\"title\">%s</h1>\n%s</header>" | |
"<h1 class=\"title\">%s%s</h1>\n") | |
(org-export-data title info) | |
(if subtitle | |
(format | |
(if html5-fancy | |
"<p class=\"subtitle\">%s</p>\n" | |
(concat "\n" (org-html-close-tag "br" nil info) "\n" | |
"<span class=\"subtitle\">%s</span>\n")) | |
(org-export-data subtitle info)) | |
""))))) | |
contents | |
(format "</%s>\n" (nth 1 (assq 'content (plist-get info :html-divs)))) | |
;; Postamble. | |
(org-html--build-pre/postamble 'postamble info) | |
;; Possibly use the Klipse library live code blocks. | |
(when (plist-get info :html-klipsify-src) | |
(concat "<script>" (plist-get info :html-klipse-selection-script) | |
"</script><script src=\"" | |
org-html-klipse-js | |
"\"></script><link rel=\"stylesheet\" type=\"text/css\" href=\"" | |
org-html-klipse-css "\"/>")) | |
;; Closing document. | |
"</div></body>\n</html>")) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment