Ver código fonte

New variable to set the initial export scope.

* org-exp.el (org-export-initial-scope): new custom variable.
(org-export): Use this new variable.  If there is an active
region, tell it when prompting the user for an export command.
Also change the way the function handles selection of buffer
and subtree export.

----
Now `1' switches between subtree/buffer export until the user
select an export command.  Also, when there is an active region,
modify the message so that the user is aware he will only export
the surrounding subtree.
Bastien Guerry 14 anos atrás
pai
commit
3411a9d759
1 arquivos alterados com 26 adições e 9 exclusões
  1. 26 9
      lisp/org-exp.el

+ 26 - 9
lisp/org-exp.el

@@ -109,6 +109,14 @@ force an export command into the current process."
   :group 'org-export-general
   :type 'boolean)
 
+(defcustom org-export-initial-scope 'buffer
+  "The initial scope when exporting with `org-export'.
+This variable can be either set to 'buffer or 'subtree."
+  :group 'org-export-general
+  :type '(choice
+	  (const :tag "Export current buffer" 'buffer)
+	  (const :tag "Export current subtree" 'subtree)))
+
 (defcustom org-export-select-tags '("export")
   "Tags that select a tree for export.
 If any such tag is found in a buffer, all trees that do not carry one
@@ -872,13 +880,18 @@ to a file.  For details see the docstring of `org-export-run-in-background'.
 The prefix argument ARG will be passed to the exporter.  However, if
 ARG is a double universal prefix \\[universal-argument] \\[universal-argument], \
 that means to inverse the
-value of `org-export-run-in-background'."
+value of `org-export-run-in-background'.
+
+If `org-export-initial-scope' is set to 'subtree, try to export
+the current subtree, otherwise try to export the whole buffer.
+Pressing `1' will switch between these two options."
   (interactive "P")
   (let* ((bg (org-xor (equal arg '(16)) org-export-run-in-background))
-	 subtree-p
+	 (subtree-p (or (org-region-active-p)
+			(eq org-export-initial-scope 'subtree)))
 	 (help "[t]   insert the export option template
 \[v]   limit export to visible part of outline tree
-\[1]   only export the current subtree
+\[1]   switch buffer/subtree export
 \[SPC] publish enclosing subtree (with LaTeX_CLASS or EXPORT_FILE_NAME prop)
 
 \[a/n/u] export as ASCII/Latin-1/UTF-8         [A/N/U] to temporary buffer
@@ -937,17 +950,21 @@ value of `org-export-run-in-background'."
 	 (cpos (point)) (cbuf (current-buffer)) bpos)
     (save-excursion
       (save-window-excursion
+	(if subtree-p
+	    (message "Export subtree: ")
+	  (message "Export buffer: "))
 	(delete-other-windows)
 	(with-output-to-temp-buffer "*Org Export/Publishing Help*"
 	  (princ help))
 	(org-fit-window-to-buffer (get-buffer-window
 				   "*Org Export/Publishing Help*"))
-	(message "Select command: ")
-	(setq r1 (read-char-exclusive))
-	(when (eq r1 ?1)
-	  (setq subtree-p t)
-	  (message "Select command (for subtree): ")
-	  (setq r1 (read-char-exclusive)))
+	(while (eq (setq r1 (read-char-exclusive)) ?1)
+	  (cond (subtree-p
+		 (setq subtree-p nil)
+		 (message "Export buffer: "))
+		((not subtree-p) 
+		 (setq subtree-p t)
+		 (message "Export subtree: "))))
 	(when (eq r1 ?\ )
 	  (let ((case-fold-search t))
 	    (if (re-search-backward