From 1a5f35c6dbea99cfca66ad5c4de098ba02c73306 Mon Sep 17 00:00:00 2001 From: Jim Wisniewski Date: Fri, 14 Apr 2023 02:46:25 -0400 Subject: [PATCH] ox.el: Customize 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. --- doc/org-manual.org | 22 ++++++++++++++++++++++ etc/ORG-NEWS | 8 ++++++++ lisp/ox.el | 28 ++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) diff --git a/doc/org-manual.org b/doc/org-manual.org index a54bd6f35..2e98793bf 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -11773,6 +11773,24 @@ further alter what is exported, and how. in the export. Affects only those back-end formats that have sections like =...= 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 @@ -11794,6 +11812,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. diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index b6acafc3d..59a7498a0 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -168,6 +168,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~ diff --git a/lisp/ox.el b/lisp/ox.el index 8be60985f..af5b0abe8 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -955,6 +955,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 when exporting with `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 @@ -7094,6 +7119,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))) -- 2.39.2