summary refs log tree commit diff stats
path: root/lisp/+ox.el
blob: 8748a553ebf25051c2ae619c57257ae151b065ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
;;; +ox.el --- org-export helpers -*- lexical-binding: t; -*-

;;; Commentary:

;;; Code:

(require 'ox)

;;; Run hooks before doing any exporting at all

(defcustom +org-export-pre-hook nil
  "Functions to run /before/ `org-export-as' does anything.
These will run on the buffer about to be exported, NOT a copy."
  :type 'hook)

(defun +org-export-pre-run-hooks (&rest _)
  "Run hooks in `+org-export-pre-hook'."
  (run-hooks '+org-export-pre-hook))

(defun +org-export-pre-hooks-insinuate ()
  "Advise `org-export-as' to run `+org-export-pre-hook'."
  (advice-add 'org-export-as :before #'+org-export-pre-run-hooks))

(defun +org-export-pre-hooks-remove ()
  "Remove pre-hook advice on `org-export-as'."
  (advice-remove 'org-export-as #'+org-export-pre-run-hooks))

(provide '+ox)
;;; +ox.el ends here