93 lines
2.6 KiB
Org Mode
93 lines
2.6 KiB
Org Mode
#+TITLE: Emacs Log 1: This Blog
|
|
#+DATE: <2022-03-18 Fri>
|
|
|
|
* Emacs Log 1: This Blog
|
|
_/*WARNING:*/_ This blog post is still under construction! tehe~
|
|
|
|
This blog is built on top of =org-mode='s publishing capabilities.
|
|
|
|
* Appendix A: config.el snippet
|
|
#+BEGIN_SRC emacs-lisp
|
|
(require 'ox-publish)
|
|
|
|
;; Get project settings
|
|
(defun akko/blog-spec ()
|
|
"Return project settings for use with `org-publish-project-alist'."
|
|
(let* ((get-util (lambda (x)
|
|
(with-temp-buffer
|
|
(insert-file-contents (concat "~/Blog/util/"
|
|
x))
|
|
(buffer-string))))
|
|
(html-head (funcall get-util "head.html"))
|
|
(html-preamble (funcall get-util "preamble.html"))
|
|
(html-postamble (funcall get-util "postamble.html")))
|
|
`(
|
|
("pages"
|
|
:base-directory "~/Blog/org"
|
|
:base-extension "org"
|
|
:recursive t
|
|
:publishing-directory "~/Blog/html"
|
|
:publishing-function org-html-publish-to-html
|
|
|
|
:html-doctype "html5"
|
|
:html-html5-fancy t
|
|
|
|
:language "en"
|
|
:section-numbers nil
|
|
|
|
:with-toc nil
|
|
:with-date nil
|
|
:with-title nil
|
|
:with-author nil
|
|
|
|
:auto-sitemap t
|
|
|
|
:sitemap-sort-files anti-chronologically
|
|
:sitemap-format-entry
|
|
(lambda (entry style project)
|
|
(cond ((not (directory-name-p entry))
|
|
(format
|
|
"[[file:%s][%s]]\n"
|
|
entry
|
|
(org-publish-find-title entry project)))
|
|
((eq style 'tree)
|
|
(capitalize (file-name-nondirectory (directory-file-name entry))))
|
|
(t entry)))
|
|
|
|
:headline-levels 4
|
|
:html-head ,html-head
|
|
|
|
:html-preamble ,html-preamble
|
|
:html-postamble ,html-postamble)
|
|
|
|
("static"
|
|
:base-directory "~/Blog/static"
|
|
:base-extension "css\\|txt\\|jpg\\|gif\\|png"
|
|
:recursive t
|
|
:publishing-directory "~/Blog/html/static"
|
|
:publishing-function org-publish-attachment)
|
|
|
|
("blog" :components ("pages" "static")))))
|
|
|
|
(setq org-publish-project-alist (akko/blog-spec))
|
|
|
|
(defun akko/publish-blog ()
|
|
(interactive)
|
|
(setq org-publish-project-alist (akko/blog-spec))
|
|
(org-publish-all))
|
|
|
|
(defun akko/force-publish-blog ()
|
|
(interactive)
|
|
(setq org-publish-project-alist (akko/blog-spec))
|
|
(org-publish-remove-all-timestamps)
|
|
(org-publish-all))
|
|
|
|
(map! :leader
|
|
(:prefix ("a" . "akko")
|
|
:desc "Publish Blog"
|
|
"b" #'akko/publish-blog))
|
|
|
|
(setq org-html-htmlize-output-type 'css)
|
|
(setq org-html-htmlize-font-prefix "org-")
|
|
#+END_SRC
|