ox.el: Add more customizable `org-export-dispatch' options

* lisp/ox.el (org-export-dispatch): Add customizable variables
`org-export-body-only', `org-export-visible-only', and
`org-export-force-publishing', and use them in `org-export-dispatch'.
* doc/org-manual.org (The Export Dispatcher): Document the new export
variables.
* etc/ORG-NEWS (New customization options for ~org-export-dispatch~):
Announce the new customization options.

Currently when calling `org-export-dispatch', two of the export
options can have their defaults specified with customizable variables:
"Export scope" (via `org-export-initial-scope') and "Async export"
(via `org-export-in-background').  This change adds customizable
variables for the "Body only", "Visible only", and "Force publishing"
options as well.
This commit is contained in:
Jim Wisniewski 2023-04-14 02:46:25 -04:00 committed by Ihor Radchenko
parent 03afd25582
commit 9d06e7bf80
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
3 changed files with 58 additions and 0 deletions

View File

@ -11859,6 +11859,24 @@ further alter what is exported, and how.
in the export. Affects only those backend formats that have
sections like =<head>...</head>= in HTML.
#+vindex: org-export-body-only
To make body-only export the default, customize the variable
~org-export-body-only~.
- {{{kbd(C-f)}}} ::
#+kindex: C-c C-e C-f
Toggle force-publishing export. Publish functions normally only
publish changed files (see [[**Triggering Publication]]). Forced
publishing causes files to be published even if their timestamps do
not indicate the file has been changed.
#+vindex: org-export-force-publishing
To make forced publishing the default, customize the variable
~org-export-force-publishing~. (This is similar to
~org-publish-use-timestamps-flag~, but only affects the export
dispatcher.)
- {{{kbd(C-s)}}} ::
#+kindex: C-c C-e C-s
@ -11880,6 +11898,10 @@ further alter what is exported, and how.
certain parts of an Org document by adjusting the visibility of
particular headings. See also [[*Sparse Trees]].
#+vindex: org-export-visible-only
To make visible-only export the default, customize the variable
~org-export-visible-only~.
** Export Settings
:PROPERTIES:
:DESCRIPTION: Common export settings.

View File

@ -180,6 +180,14 @@ backend used for evaluation of ClojureScript.
official [[https://clojure.org/guides/deps_and_cli][Clojure CLI tools]].
The command can be customized with ~ob-clojure-cli-command~.
*** New customization options for ~org-export-dispatch~
New custom variables ~org-export-body-only~,
~org-export-visible-only~, and ~org-export-force-publishing~ allow the
default settings of "Body only", "Visible only", and "Force
publishing" in the ~org-export-dispatch~ UI to be customized,
respectively.
** New features
*** Add support for ~logind~ idle time in ~org-user-idle-seconds~

View File

@ -956,6 +956,31 @@ these cases."
:group 'org-export-general
:type 'boolean)
(defcustom org-export-body-only nil
"The initial \"Body only\" setting when exporting with `org-export-dispatch'.
Non-nil means only export body code, without the surrounding
template."
:group 'org-export-general
:package-version '(Org . "9.7")
:type 'boolean
:safe #'booleanp)
(defcustom org-export-visible-only nil
"The initial \"Visible only\" setting when exporting with `org-export-dispatch'.
Non-nil means don't export the contents of hidden elements."
:group 'org-export-general
:package-version '(Org . "9.7")
:type 'boolean
:safe #'booleanp)
(defcustom org-export-force-publishing nil
"The initial \"Force publishing\" setting for `org-export-dispatch'.
Non-nil means force all files in the project to be published."
:group 'org-export-general
:package-version '(Org . "9.7")
:type 'boolean
:safe #'booleanp)
(defcustom org-export-in-background nil
"Non-nil means export and publishing commands will run in background.
Results from an asynchronous export are never displayed
@ -7095,6 +7120,9 @@ asynchronous export stack."
(setq org-export-dispatch-last-action
(org-export--dispatch-ui
(list org-export-initial-scope
(and org-export-body-only 'body)
(and org-export-visible-only 'visible)
(and org-export-force-publishing 'force)
(and org-export-in-background 'async))
nil
org-export-dispatch-use-expert-ui)))