Here's a small enhancement I wrote to add customizable variables for the `org-export-dispatch' UI options that don't already have one. I almost always export with "Body only" switched on, and I got tired of manually toggling it each time; while I was at it I also added variables for "Visible only" and "Force publishing", because why not. Hopefully others will find this helpful as well.
I tried this out locally by eval-ing the new code and customizing the new variables, and it appears to have the desired effect. `make test' and `make compile' also succeed. I sent in the copyright assignment form but haven't gotten the contract back to sign yet. Changelog: * lisp/ox.el: 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: Document the new export variables. 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. -- JJW
From 563a31988df9fb1b1b2093918e03cd92b7a671a0 Mon Sep 17 00:00:00 2001 From: Jim Wisniewski <wis...@gmail.com> Date: Fri, 14 Apr 2023 02:46:25 -0400 Subject: [PATCH] ox.el: Customize org-export-dispatch options * lisp/ox.el: 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: Document the new export variables. 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 ++++++++++++++++++++++ lisp/ox.el | 28 ++++++++++++++++++++++++++++ 2 files changed, 50 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 =<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 @@ -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/lisp/ox.el b/lisp/ox.el index 8be60985f..736d9d1c8 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 + :version "30.0" + :package-version '(Org . "9.7") + :type 'boolean) + +(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 + :version "30.0" + :package-version '(Org . "9.7") + :type 'boolean) + +(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 + :version "30.0" + :package-version '(Org . "9.7") + :type 'boolean) + (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