summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRavi R Kiran <aine.marina@gmail.com>2022-01-16 23:09:50 (GMT)
committerRavi R Kiran <aine.marina@gmail.com>2022-01-16 23:09:50 (GMT)
commit897a69e5f4a93253136273929086ce28a9cb8241 (patch)
treeee8b9cabbad2db373372540856415a503e7fd688
parent7fefa76d40e9b9d4440eb5f7e0e96d8cd249988f (diff)
downloaddotemacs-897a69e5f4a93253136273929086ce28a9cb8241.zip
dotemacs-897a69e5f4a93253136273929086ce28a9cb8241.tar.gz
dotemacs-897a69e5f4a93253136273929086ce28a9cb8241.tar.bz2
Static blogging with org
-rw-r--r--lisp/ravi-init-org.el46
1 files changed, 46 insertions, 0 deletions
diff --git a/lisp/ravi-init-org.el b/lisp/ravi-init-org.el
index c4c3585..20039cd 100644
--- a/lisp/ravi-init-org.el
+++ b/lisp/ravi-init-org.el
@@ -154,5 +154,51 @@ background of code according to theme"
(when (fboundp 'ravi/setup-org-capture)
(ravi/setup-org-capture)))
+(use-package org-static-blog
+ :commands (org-static-blog-create-new-post org-static-blog-publish)
+ :config
+ (defun ravi/org-static-blog-data-file (blog-dir fname)
+ (with-temp-buffer
+ (insert-file-contents (expand-file-name (concat "data/" fname) blog-dir))
+ (buffer-string)))
+
+ (defun ravi/org-static-blog-setup (blog-name blog-domain blog-title)
+ (let ((blog-dir (expand-file-name (concat blog-name "." blog-domain "/") "~/Documents"))
+ (blog-url (concat "https://" blog-name "." blog-domain ".com")))
+ (setq org-static-blog-use-preview t
+ org-static-blog-preview-convert-titles t
+ org-static-blog-preview-ellipsis "..."
+ org-static-blog-enable-tags t
+ org-static-blog-publish-url (concat blog-url "/")
+ org-static-blog-publish-title blog-title
+ org-static-blog-posts-directory (expand-file-name "posts/" blog-dir)
+ org-static-blog-drafts-directory (expand-file-name "drafts/" blog-dir)
+ org-static-blog-publish-directory (expand-file-name "blog/" blog-dir))
+ (setq org-static-blog-page-header
+ (concat
+ "<meta name=\"author\" content=\"Ravi R Kiran\">"
+ "<meta name=\"referrer\" content=\"no-referrer\">"
+ "<link href= \"/static/style.css\" rel=\"stylesheet\"
+ type=\"text/css\" />"
+ "<link rel=\"icon\" href=\"static/favicon.ico\">")
+
+ org-static-blog-page-preamble
+ (ravi/org-static-blog-data-file blog-dir "preamble.html")
+ org-static-blog-page-postamble
+ (ravi/org-static-blog-data-file blog-dir "postamble.html"))))
+ (run-hooks 'ravi/org-static-blog-hook)
+
+ ;; Ensure that generated files are saved in a separate directory
+ ;; shared with published blog directory, i.e.,
+ ;; (expand-file "generated" org-static-blog-posts-directory)
+ ;; (expand-file "generated" org-static-blog-drafts-directory)
+ ;; are symlinks to
+ ;; (expand-file "generated" org-static-blog-publish-directory)
+ (defun ravi/org-static-blog-generated-files (&rest args)
+ (save-excursion
+ (beginning-of-line)
+ (insert "#+property: header-args:plantuml :output-dir generated/\n")))
+ (advice-add 'org-static-blog-create-new-post :after #'ravi/org-static-blog-generated-files))
+
(provide 'ravi-init-org)
;;; ravi-init-org.el ends here