blob: fc556b86b01deadb2ca4fdeb6a6da7cc63d90271 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
(setq package-user-dir "pkgs")
(package-initialize)
(require 'ox-publish)
(use-package org-publish-rss
:vc (:url "https://git.sr.ht/~taingram/org-publish-rss"
:rev :newest))
(defun file-to-string (file)
(with-temp-buffer
(insert-file-contents file)
(buffer-string)))
(setq org-html-validation-link nil
org-html-head-include-scripts nil
org-html-doctype "html5"
org-html-html5-fancy t
org-html-head-include-default-style nil
org-html-head (file-to-string "templates/head.html")
org-html-postamble nil
org-export-with-section-numbers nil
org-export-with-timestamps nil
org-export-with-toc nil
org-export-with-smart-quotes t)
(defun sitemap-format-entry (entry style project)
(let ((spec `((?t . ,(org-publish-find-title entry project))
(?d . ,(format-time-string "%F" (org-publish-find-date entry project)))
(?h . ,entry))))
(format-spec "%d - [[file:%h][%t]]" spec)))
(defun sitemap-function (title list) ; todo change this
(let ((spec `((?t . ,title)
(?l . ,(org-list-to-org list)))))
(format-spec (file-to-string "templates/blog-sitemap.org") spec)))
(setq org-publish-project-alist
(list
(list "blog"
:base-directory "src/blog"
:publishing-directory "public/blog"
:publishing-function 'org-html-publish-to-html
:auto-sitemap t
:sitemap-title "Lemurblog"
:sitemap-filename "index.org"
:sitemap-sort-files 'anti-chronologically
:sitemap-format-entry 'sitemap-format-entry
:sitemap-function 'sitemap-function
:auto-rss t
:rss-description "The Lemurian Mage's Awesome Lemur Blog"
:rss-link "https://lemurianmage.srht.site/blog"
:rss-copyright "nah"
:completion-function 'org-publish-rss)
(list "pages"
:base-directory "src"
:publishing-function 'org-html-publish-to-html
:publishing-directory "public")
(list "assets"
:recursive t
:base-directory "src/assets"
:base-extension 'any
:include '("../blog/rss.xml")
:publishing-function 'org-publish-attachment
:publishing-directory "public/assets")))
(delete-directory "public" :recursive t)
(setenv "TZ" "UTC0") ; remove the timezone from rss output
(org-publish-all t)
(delete-file "src/blog/rss.xml~") ; I have no clue why this thing appears at all
(message "Build done!")
|