(defun file-extension (filename) "returns the file extension of the supplied filename, or nil if no extension was present" (car (last (split-string filename "\\.")))) (defun org-html-publish-or-copy (plist filename pub-dir) "If the file extension is `.org`, publish using org-html-publish-to-html, otherwise use org-pubish-attachment." (if (string-equal (file-extension filename) "org") (org-html-publish-to-html plist filename pub-dir) (org-publish-attachment plist filename pub-dir))) (let ((root "~/Documents/orgsite/") (generated "generated/")) (setq org-publish-project-alist `(("blog" :base-directory ,(concat root "blog") :publishing-directory ,(concat root generated "blog") :base-extension any :exclude ".*~" :publishing-function org-html-publish-or-copy :html-head-extra "" :html-postamble nil :with-toc nil :section-numbers nil :language "fi") ; TODO Refactor ("static" :base-directory ,(concat root "static") :publishing-directory ,(concat root generated "static") :base-extension any :publishing-function org-publish-attachment) ("img" :base-directory ,(concat root "img") :publishing-directory ,(concat root generated "img") :base-extension any :publishing-function org-publish-attachment) )))