doomemacs/modules/lang/org/+export.el
Henrik Lissner 6853196017
lang/org: general refactor; split init into hooks
lang/org's initialization process is now split up into hooks on
org-load-hook. This approach is cleaner and easier to customize. I also
removed the escape binding in org-agenda-mode-map, as the popup system
makes it redundant.
2018-01-08 20:41:56 -05:00

38 lines
1.3 KiB
EmacsLisp

;;; lang/org/+export.el -*- lexical-binding: t; -*-
(add-hook 'org-load-hook #'+org|init-export)
;; I don't have any beef with org's built-in export system, but I do wish it
;; would export to a central directory, rather than `default-directory'. This is
;; because all my org files are usually in one place, and I want to be able to
;; refer back to old exports if needed.
(def-package! ox-pandoc
:defer t
:config
(when (executable-find "pandoc")
(push 'pandoc org-export-backends))
(setq org-pandoc-options
'((standalone . t)
(mathjax . t)
(parse-raw . t))))
;;
(defun +org|init-export ()
(add-transient-hook! #'org-export-dispatch (require 'ox-pandoc))
(setq org-export-directory (expand-file-name ".export" +org-dir)
org-export-backends '(ascii html latex md)
org-export-with-toc t
org-export-with-author t)
;; Always export to a central location
(unless (file-directory-p org-export-directory)
(make-directory org-export-directory t))
(defun +org*export-output-file-name (args)
"Return a centralized export location."
(unless (nth 2 args)
(setq args (append args (list org-export-directory))))
args)
(advice-add #'org-export-output-file-name
:filter-args #'+org*export-output-file-name))