[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 90d4ae92eb 2/3: ox: New custom option to disable ma
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 90d4ae92eb 2/3: ox: New custom option to disable macro replacement |
Date: |
Wed, 10 Jul 2024 09:58:55 -0400 (EDT) |
branch: externals/org
commit 90d4ae92ebaf4de75c63a6390150a59199b40b8e
Author: Ihor Radchenko <yantar92@posteo.net>
Commit: Ihor Radchenko <yantar92@posteo.net>
ox: New custom option to disable macro replacement
* lisp/ox.el (org-export-replace-macros): New custom option
controlling macro replacement.
(org-export--annotate-info): Honor it, except when processing inline
code block results and their {{{results...}}} macro.
* etc/ORG-NEWS (Allow disabling macro replacement during export):
Announce the new option.
* doc/org-manual.org (Macro Replacement):
(Summary of the export process): Document the new option.
---
doc/org-manual.org | 11 +++++++----
etc/ORG-NEWS | 9 +++++++++
lisp/ox.el | 13 +++++++++++--
3 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/doc/org-manual.org b/doc/org-manual.org
index d30c18e0c7..5f5104f91c 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -12682,9 +12682,11 @@ The following command allows navigating to the
included document:
#+cindex: @samp{MACRO}, keyword
#+vindex: org-export-global-macros
-Macros replace text snippets during export. Macros are defined
-globally in ~org-export-global-macros~, or document-wise with the
-following syntax:
+#+vindex: org-export-replace-macros
+Macros replace text snippets during export[fn::The macro replacement
+can be disabled by setting ~org-export-replace-macros~ to nil (default
+is t).]. Macros are defined globally in ~org-export-global-macros~,
+or document-wise with the following syntax:
: #+MACRO: name replacement text; $1, $2 are arguments
@@ -16702,7 +16704,8 @@ export keywords, does not contribute to the export
output.]:
3. Remove commented subtrees in the whole buffer (see [[*Comment
Lines]]);
-4. Replace macros in the whole buffer (see [[*Macro Replacement]]);
+4. Replace macros in the whole buffer (see [[*Macro Replacement]]),
+ unless ~org-export-replace-macros~ is nil;
5. When ~org-export-use-babel~ is non-nil (default), process code
blocks:
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 0c3b14128a..dcd3241152 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -43,6 +43,15 @@ or newer.
# adding new customizations, or changing the interpretation of the
# existing customizations.
+*** Allow disabling macro replacement during export
+
+New custom option ~org-export-replace-macros~ controls whether Org
+mode replaces macros in the buffer before export. Set it to nil to
+disable macro replacement.
+
+This variable has no effect on the ={{{results...}}}= macros for inline
+code block results.
+
*** Allow headline/olp target in ~org-capture-templates~ to be a
function/variable
The variable ~org-capture-templates~ accepts a target specification as
diff --git a/lisp/ox.el b/lisp/ox.el
index 6fa21be906..902c9f089e 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -860,6 +860,14 @@ This option can also be set with the OPTIONS keyword, e.g.,
:package-version '(Org . "9.7")
:type 'boolean)
+(defcustom org-export-replace-macros t
+ "When non-nil, replace macros before export.
+This variable does not affect {{{results}}} macros when processing
+code block results."
+ :group 'org-export-general
+ :package-version '(Org . "9.8")
+ :type 'boolean)
+
(defcustom org-export-snippet-translation-alist nil
"Alist between export snippets backends and exporter backends.
@@ -3048,8 +3056,9 @@ still inferior to file-local settings."
(org-export-backend-name backend))
(org-export-expand-include-keyword nil nil nil nil (plist-get info
:expand-links))
(org-export--delete-comment-trees)
- (org-macro-initialize-templates org-export-global-macros)
- (org-macro-replace-all org-macro-templates parsed-keywords)
+ (when org-export-replace-macros
+ (org-macro-initialize-templates org-export-global-macros)
+ (org-macro-replace-all org-macro-templates parsed-keywords))
;; Refresh buffer properties and radio targets after previous
;; potentially invasive changes.
(org-set-regexps-and-options)