(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)))
(setq org-publish-use-timestamps-flag nil)
(let ((root "~/Documents/orgsite/") (generated "generated/"))
(setq org-publish-project-alist
(nconc
(seq-map (lambda (lang)
`(,(car lang)
:base-directory ,(concat root (car lang))
:publishing-directory ,(concat root generated (car lang))
:base-extension any
:exclude ".*~"
:recursive t
:publishing-function org-html-publish-or-copy
:html-head-extra ""
:html-postamble nil
:html-preamble ,(concat "")
:with-toc nil
:section-numbers nil
:author "Joel Kronqvist"
:language ,lang))
'(("fi" . "Siirry pääsisältöön") ("en" . "Skip to content")))
(seq-map (lambda (ident)
`(,ident
:base-directory ,(concat root ident)
:publishing-directory ,(concat root generated ident)
:base-extension any
:publishing-function org-publish-attachment))
'("static" "img")))))