website/make.el
Magic_RB 328f26dd29
Add Hydra placeholder and create template for blog index
Signed-off-by: Magic_RB <magic_rb@redalder.org>
2021-03-31 14:08:34 +02:00

115 lines
3.3 KiB
EmacsLisp

;;; Package -- make.el
;;; Commentary:
;;;
;;; Code:
(load-file "./ox-thtml.el")
;; (load-file "./htmlize.el")
(require 'org)
(require 'ox)
(require 'ox-html)
(dolist (d '("public_html"))
(unless (file-exists-p d)
(make-directory d)))
;; https://alhassy.github.io/AlBasmala.html#Floating-TOC
(advice-add 'org-html--translate :before-until 'display-toc-as-toc)
(defun display-toc-as-toc (phrase info)
(when (equal phrase "Table of Contents")
"<a>
TOC
</a>"))
;; DOES NOT WORK https://github.com/alphapapa/unpackaged.el#export-to-html-with-useful-anchors
(setq org-export-with-sub-superscripts '{}
org-export-headline-levels 6
; emacs-htmlize does not work when Emacs is ran in =script= mode unfortunately
;; org-html-html5-fancy t
;; org-html-htmlize-output-type 'inline-css
)
(defvar org-publish-project-alist)
(setq org-publish-project-alist
`(
;; Blog
("blog-content"
:base-directory ,(expand-file-name "./blog/")
:base-extension "org"
:publishing-directory ,(expand-file-name "./public_html/blog")
:recursive t
:section-numbers nil
:with-toc nil
:with-date nil
:html-template ,(templated-html-load-template "./templates/blog.html")
:publishing-function org-html-publish-to-templated-html
:headline-levels 5
:exclude "^\\(index.org\\|*.inc\\)"
:auto-preamble t
:auto-sitemap t
:sitemap-folders ignore
:sitemap-style list
:sitemap-title "Magic_RB's blog"
:sitemap-filename "sitemap.inc"
:sitemap-sort-files anti-chronologically)
("blog-index"
:base-directory ,(expand-file-name "./blog/")
:root-directory ,(expand-file-name "./blog/")
:recursive t
:base-extension "org"
:exclude "^.*$"
:include ("index.org")
:publishing-directory ,(expand-file-name "./public_html/blog/")
:section-numbers nil
:with-toc nil
:with-date nil
:html-template ,(templated-html-load-template "./templates/blog-index.html")
:publishing-function org-html-publish-to-templated-html)
("blog"
:components ("blog-content" "blog-index"))
;; Homepage
("homepage"
:base-directory ,(expand-file-name "./home")
:recursive nil
:base-extension "org"
:exclude "^.*$"
:include ("index.org")
:with-toc nil
:publishing-directory ,(expand-file-name "./public_html/")
:html-template ,(templated-html-load-template "./templates/index.html")
:publishing-function org-html-publish-to-templated-html)
;; Hydra placeholder
("hydra-placeholder"
:base-directory ,(expand-file-name "./home")
:recursive nil
:base-extension "org"
:exclude "^.*$"
:include ("hydra.org")
:with-toc nil
:publishing-directory ,(expand-file-name "./public_html/")
:html-template ,(templated-html-load-template "./templates/hydra-placeholder.html")
:publishing-function org-html-publish-to-templated-html)
;; Static images and css and js
("assets"
:base-directory ,(expand-file-name "./assets/")
:publishing-directory ,(expand-file-name "./public_html/")
:recursive t
:base-extension "\\(ttf\\|svg\\|jpg\\|gif\\|png\\|css\\|js\\|el\\|nb\\|ipynb\\|pdf\\|xml\\)"
:publishing-function org-publish-attachment)
;; top-level trigger
("publish"
:components ("blog" "assets" "homepage" "hydra-placeholder"))))
(org-publish "publish" t)
(provide 'make)
;;; make.el ends here