From 563a31988df9fb1b1b2093918e03cd92b7a671a0 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: 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 =...= 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