(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!")