stephane-adjemian.fr/publish.el

64 lines
2.2 KiB
EmacsLisp

(setq user-full-name "Stephane Adjemian")
(setq user-mail-address "stepan@adjemian.eu")
(set-language-environment "UTF-8")
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
(package-initialize)
(use-package ox-publish
:init
(setq sa-blog-header-file "~/website/stephane-adjemian.fr/assets/partials/header.html"
sa-blog-footer-file "~/website/stephane-adjemian.fr/assets/partials/footer.html"
org-html-validation-link nil
make-backup-files nil)
(defun sa-blog-header (arg)
(with-temp-buffer
(insert-file-contents sa-blog-header-file)
(buffer-string)))
(defun sa-blog-footer (arg)
(with-temp-buffer
(insert-file-contents sa-blog-footer-file)
(buffer-string)))
(defun sa-filter-local-links (link backend info)
"Filter that converts all the /index.html links to /"
(if (org-export-derived-backend-p backend 'html)
(replace-regexp-in-string "/index.html" "/" link)))
:config
(setq org-publish-project-alist
'(
;; Content that should be processed.
("pages"
:base-directory "./sources"
:base-extension "org"
:publishing-directory "./output"
:recursive t
:publishing-function org-html-publish-to-html
:headline-levels 4
:section-numbers nil
:html-head nil
:html-head-include-default-style nil
:html-head-include-scripts nil
:html-preamble sa-blog-header
:html-postamble sa-blog-footer
)
;; For static files (untouched by emacs)
("static"
:base-directory "./sources"
:base-extension "asc\\|css\\|scss\\|less\\|ttf\\|woff\\|woff2\\|eot\\|yml\\|json\\|js\\|png\\|ttf\\|jpg\\|gif\\|pdf\\|svg\\|tex\\|m\\|py\\|jl"
:publishing-directory "./output"
:recursive t
:publishing-function org-publish-attachment
)
;; Combine the two previous components in a single one
("site" :components ("pages" "static"))))
(add-to-list 'org-export-filter-link-functions 'sa-filter-local-links)
)