diff options
author | Vincent Ambo <tazjin@gmail.com> | 2017-11-12T23·57+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@gmail.com> | 2017-11-12T23·57+0100 |
commit | 040c3487805be38e013934fddf17ec86b5bd7a89 (patch) | |
tree | 945d2862fba4bd5baa1e7158eae3d5d8816a538b | |
parent | b4dad1526d7a68ca089a22bf01fffa65abc9c5d9 (diff) |
feat(blog): Configure org-mode's HTML export to match blog theme
This gets elblog close, but not quite there, to my previous blog theme. Comparison screenshot: http://i.imgur.com/UK49Fhi.png
-rw-r--r-- | blog.css | 37 | ||||
-rw-r--r-- | blog.el | 14 | ||||
-rw-r--r-- | postamble.html | 9 |
3 files changed, 59 insertions, 1 deletions
diff --git a/blog.css b/blog.css new file mode 100644 index 000000000000..842da656b36c --- /dev/null +++ b/blog.css @@ -0,0 +1,37 @@ +<style type="text/css"> +body { + margin: 40px auto; + max-width: 650px; + line-height: 1.6; + font-size: 18px; + color: #383838; + padding: 0 10px +} +h1, h2, h3 { + line-height: 1.2 +} +.footer { + text-align: right; +} +.lod { + text-align: center; +} +.unstyled-link { + color: inherit; + text-decoration: none; +} +.uncoloured-link { + color: inherit; +} +.date { + text-align: right; + font-style: italic; + float: right; +} +.inline { + display: inline; +} +.navigation { + text-align: center; +} +</style> diff --git a/blog.el b/blog.el index 20f141fe41a5..accfda07888d 100644 --- a/blog.el +++ b/blog.el @@ -20,6 +20,17 @@ :group 'elblog :type 'string) +;; org-mode settings need to be configured a certain way for elblog's HTML +;; templating to work correctly. +(defun configure-org-html-export () + (setq org-html-postamble t) + (setq org-html-doctype "html5") + (setq org-html-head-include-scripts nil) + (setq org-html-style-default (f-read-text "blog.css")) + (setq org-html-preamble-format + '(("en" "<header><h1><a class=\"unstyled-link\" href=\"/\">Tazjin's blog</a></h1><hr></header>"))) + (setq org-html-postamble-format `(("en" ,(f-read-text "postamble.html"))))) + ;; Article fetching & rendering functions (defun render-org-buffer (buffer &optional force) @@ -46,7 +57,7 @@ (defun render-article (article) "Renders an article, if it exists." - (let ((output-buffer (render-org-buffer (concat article ".org")))) + (let ((output-buffer (render-org-buffer (concat article ".org") t))) (if output-buffer `(200 . ,(get-buffer-string output-buffer)) article-not-found))) @@ -66,6 +77,7 @@ (defun start-elblog () (interactive) + (configure-org-html-export) (elnode-start 'elblog-handler :port elblog-port :host elblog-host)) diff --git a/postamble.html b/postamble.html new file mode 100644 index 000000000000..16a26218a0c0 --- /dev/null +++ b/postamble.html @@ -0,0 +1,9 @@ +<hr> +<footer><p class="footer">Served with <a class="uncoloured-link" href="https://github.com/tazjin/elblog">Emacs</a>.</p> + <p class="footer"> + <a class="uncoloured-link" href="https://twitter.com/tazjin">Twitter</a> + | + <a class="uncoloured-link" href="mailto:blog@tazj.in">Mail</a> + </p> + <p class="lod">ಠ_ಠ</p> +</footer> |