Merge Org 8.2.4
This commit is contained in:
parent
64ed4306fc
commit
73d3db828e
27 changed files with 621 additions and 433 deletions
|
@ -1,3 +1,12 @@
|
|||
2013-12-06 Nicolas Goaziou <n.goaziou@gmail.com>
|
||||
|
||||
* org.texi (Creating one-off styles): Use new export snippet
|
||||
syntax.
|
||||
|
||||
* org.texi (Export settings): documentation describing how text
|
||||
above the first heading is ignored when an :export: tag is in a
|
||||
file.
|
||||
|
||||
2013-12-05 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* dbus.texi (Type Conversion): Clarify unibyte-ness of strings.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
@c %**start of header
|
||||
@setfilename ../../info/org
|
||||
@settitle The Org Manual
|
||||
@set VERSION 8.2.3 (GNU Emacs 24.3)
|
||||
@set VERSION 8.2.4 (GNU Emacs 24.3)
|
||||
|
||||
@c Use proper quote and backtick for code sections in PDF output
|
||||
@c Cf. Texinfo manual 14.2
|
||||
|
@ -10518,7 +10518,8 @@ clocktable.
|
|||
The tags that select a tree for export (@code{org-export-select-tags}). The
|
||||
default value is @code{:export:}. Within a subtree tagged with
|
||||
@code{:export:}, you can still exclude entries with @code{:noexport:} (see
|
||||
below).
|
||||
below). When headlines are selectively exported with @code{:export:}
|
||||
anywhere in a file, text before the first headline is ignored.
|
||||
|
||||
@item EXCLUDE_TAGS
|
||||
The tags that exclude a tree from export (@code{org-export-exclude-tags}).
|
||||
|
@ -12542,13 +12543,13 @@ file. The use of this feature is better illustrated with couple of examples.
|
|||
@enumerate
|
||||
@item Embedding ODT tags as part of regular text
|
||||
|
||||
You can include simple OpenDocument tags by prefixing them with
|
||||
@samp{@@}. For example, to highlight a region of text do the following:
|
||||
You can inline OpenDocument syntax by enclosing it within
|
||||
@samp{@@@@odt:...@@@@} markup. For example, to highlight a region of text do
|
||||
the following:
|
||||
|
||||
@example
|
||||
@@<text:span text:style-name="Highlight">This is a
|
||||
highlighted text@@</text:span>. But this is a
|
||||
regular text.
|
||||
@@@@odt:<text:span text:style-name="Highlight">This is a highlighted
|
||||
text</text:span>@@@@. But this is a regular text.
|
||||
@end example
|
||||
|
||||
@strong{Hint:} To see the above example in action, edit your
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
% Reference Card for Org Mode
|
||||
\def\orgversionnumber{8.2.3}
|
||||
\def\orgversionnumber{8.2.4}
|
||||
\def\versionyear{2013} % latest update
|
||||
\input emacsver.tex
|
||||
|
||||
|
|
|
@ -1,3 +1,187 @@
|
|||
2013-12-06 Achim Gratz <Stromeko@Stromeko.DE>
|
||||
|
||||
* org-crypt.el: Declare `epg-context´.
|
||||
(org-encrypt-string): Correct indentation.
|
||||
|
||||
* org.el (org-version): Replace `_version´ by `version1´.
|
||||
|
||||
2013-12-06 Alexander Vorobiev <alexander.vorobiev@gmail.com> (tiny change)
|
||||
|
||||
* org-compat.el (org-get-x-clipboard): Use w32-get-clipboard-data
|
||||
to get the clipboard data under Windows.
|
||||
|
||||
2013-12-06 Bastien Guerry <bzg@gnu.org>
|
||||
|
||||
* ox.el (org-export-with-sub-superscripts):
|
||||
* org.el (org-use-sub-superscripts): Fix version and enhance
|
||||
docstring again.
|
||||
|
||||
* ox.el (org-export-with-sub-superscripts):
|
||||
* org.el (org-use-sub-superscripts): Enhance docstrings.
|
||||
|
||||
* org-macs.el (org-autoload): Delete.
|
||||
|
||||
* org-docview.el ("docview"): Fix declarations and require
|
||||
doc-view directly.
|
||||
|
||||
* org-id.el (org-id-copy)
|
||||
(org-id-get-with-outline-path-completion)
|
||||
(org-id-get-with-outline-drilling, org-id-new):
|
||||
|
||||
* org-colview.el:
|
||||
(org-colview-initial-truncate-line-value)
|
||||
(org-columns-open-link, org-string-to-number):
|
||||
* org-clock.el:
|
||||
(org-clock-put-overlay, org-count-quarter, org-clock-loaded):
|
||||
* org-archive.el (org-get-local-archive-location):
|
||||
* org-agenda.el (org-agenda-todo-custom-ignore-p):
|
||||
Autoload.
|
||||
|
||||
* org.el (org-return-follows-link):
|
||||
* ob-python.el (org-babel-python-command): Don't use :set.
|
||||
|
||||
* ox-odt.el (org-odt-content-template-file): Fix version.
|
||||
|
||||
* ox-texinfo.el (org-texinfo-filename): Fix default value.
|
||||
(org-texinfo-format-headline-function): Use 'ignore as the
|
||||
default value.
|
||||
(org-texinfo-format-drawer-function): Use a function as the
|
||||
default value. Update docstring.
|
||||
(org-texinfo-drawer): Always use
|
||||
`org-texinfo-format-drawer-function' as it is now a function
|
||||
by default.
|
||||
(org-texinfo-headline): Compare
|
||||
`org-texinfo-format-headline-function' against 'ignore.
|
||||
(org-texinfo-inlinetask): Compare
|
||||
`org-texinfo-format-inlinetask-function' against 'ignore.
|
||||
|
||||
* ox-odt.el (org-odt-format-drawer-function): Use a function as
|
||||
the default value. Update docstring.
|
||||
(org-odt-format-headline-function)
|
||||
(org-odt-format-inlinetask-function): Fix default value.
|
||||
(org-odt-drawer): Always use `org-odt-format-drawer-function'
|
||||
as it is now a function by default.
|
||||
(org-odt-format-headline--wrap): Compare
|
||||
`org-odt-format-headline-function' against 'ignore.
|
||||
|
||||
* ox-latex.el (org-latex-format-drawer-function): Use a function
|
||||
as the default value. Update docstring.
|
||||
(org-latex-format-inlinetask-function): Fix default value.
|
||||
(org-latex-drawer): Always use
|
||||
`org-latex-format-drawer-function' as it is now a function by
|
||||
default.
|
||||
(org-latex-inlinetask): Compare
|
||||
`org-latex-format-inlinetask-function' against 'ignore.
|
||||
|
||||
* ox-html.el (org-html-format-drawer-function): Use a function as
|
||||
the default value. Update docstring.
|
||||
(org-html-format-headline-function)
|
||||
(org-html-format-inlinetask-function): Fix default value.
|
||||
(org-html--format-toc-headline)
|
||||
(org-html-format-headline--wrap): Compare
|
||||
`org-html-format-headline-function' against 'ignore.
|
||||
(org-html-inlinetask): Compare
|
||||
`org-html-format-inlinetask-function' against 'ignore.
|
||||
|
||||
* ox-ascii.el (org-ascii-format-drawer-function): Use a
|
||||
function as the default value. Update docstring.
|
||||
(org-ascii-drawer): Always use
|
||||
`org-ascii-format-drawer-function' as it is now a function by
|
||||
default.
|
||||
(org-ascii-format-inlinetask-default): New function.
|
||||
(org-ascii-format-inlinetask-function): Use
|
||||
`org-ascii-format-inlinetask-default' as the default.
|
||||
|
||||
* org.el (org-mouse-1-follows-link): Use :set to set the default
|
||||
value. Update custom type.
|
||||
(org-log-note-headings): Fix order or list items in the custom
|
||||
type.
|
||||
(orgstruct-heading-prefix-regexp): Use an empty string as the
|
||||
default value. Use 'regexp as the custom type.
|
||||
(orgstruct-make-binding): Tiny docstring enhancement. Assume
|
||||
`orgstruct-heading-prefix-regexp' is a string.
|
||||
|
||||
* org-agenda.el (org-agenda-search-view-max-outline-level): Set
|
||||
default value to 0. Update docstring.
|
||||
(org-agenda-deadline-leaders): Fix custom type.
|
||||
(org-search-view): Assume
|
||||
`org-agenda-search-view-max-outline-level' is a number.
|
||||
|
||||
* ob-ruby.el (org-babel-ruby-nil-to): Fix custom type.
|
||||
|
||||
* ob-python.el (org-babel-python-mode): Use :set to set the
|
||||
default value.
|
||||
(org-babel-python-None-to): Fix custom type.
|
||||
|
||||
* ob-plantuml.el (org-plantuml-jar-path): Fix default value.
|
||||
(org-babel-execute:plantuml): Assume `org-plantuml-jar-path' is a
|
||||
string.
|
||||
|
||||
* ob-latex.el (org-babel-latex-htlatex): Fix default value.
|
||||
(org-babel-latex-htlatex-packages): Fix custom type.
|
||||
(org-babel-execute:latex): Assume `org-babel-latex-htlatex' is a
|
||||
string.
|
||||
|
||||
* ox-odt.el (org-odt-display-outline-level): Fix version.
|
||||
|
||||
* ox-odt.el (org-odt-inline-formula-rules)
|
||||
(org-odt-inline-image-rules, org-odt-use-date-fields): Add version
|
||||
and package-version.
|
||||
|
||||
* ox-html.el (org-html-format-drawer-function)
|
||||
(org-html-format-headline-function)
|
||||
(org-html-format-inlinetask-function)
|
||||
(org-html-creator-string): Add version and package-version.
|
||||
|
||||
* ox-html.el (org-html-text-markup-alist): Fix version.
|
||||
|
||||
* org-agenda.el (org-agenda-set-restriction-lock): Autoload.
|
||||
|
||||
* ob-abc.el (org-babel-expand-body:abc): Use dolist.
|
||||
(org-babel-execute:abc): Fix regexp quoting.
|
||||
|
||||
* ob-calc.el (org--var-syms): Rename from `var-syms'.
|
||||
|
||||
* ob-lilypond.el (ly-compile-lilyfile): Remove redundant
|
||||
let-binding.
|
||||
|
||||
* ob-table.el (sbe): Move debug declaration.
|
||||
|
||||
* org-clock.el (org--msg-extra): Rename from `msg-extra'.
|
||||
|
||||
2013-12-06 Nicolas Goaziou <n.goaziou@gmail.com>
|
||||
|
||||
* org.el (org-ctrl-c-ctrl-c): When point is on an unsupported
|
||||
object, look for something to do at a higher level instead of
|
||||
bailing out.
|
||||
|
||||
* ox-html.el (org-html-format-latex): Add an argument. Ensure
|
||||
latex header is the same as specified in the original buffer when
|
||||
exporting a LaTeX fragment or environment.
|
||||
(org-html-latex-environment, org-html-latex-fragment): Apply
|
||||
signature change.
|
||||
|
||||
* ox-publish.el (org-publish-cache-ctime-of-src): Return an error
|
||||
when publishing a non-existent file.
|
||||
|
||||
* org-element.el (org-element-paragraph-separate): More accurate
|
||||
regexp.
|
||||
|
||||
* org.el (org-entry-get): Widen buffer in order to retrieve
|
||||
properties, as `org-entry-properties' and
|
||||
`org-entry-get-with-inheritance' already do.
|
||||
|
||||
* ox-html.el (org-html--format-toc-headline): Add missing headline
|
||||
number in TOC entries.
|
||||
|
||||
* org.el (org-entry-properties): Ignore narrowing when retrieving
|
||||
current headline properties.
|
||||
|
||||
2013-12-06 Thierry Volpiatto <thierry.volpiatto@gmail.com> (tiny change)
|
||||
|
||||
* org-crypt.el (org-encrypt-string, org-encrypt-entry)
|
||||
(org-decrypt-entry): Fix warning.
|
||||
|
||||
2013-11-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Spelling fixes.
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
'((:results . "latex") (:exports . "results"))
|
||||
"Default arguments to use when evaluating a LaTeX source block.")
|
||||
|
||||
(defcustom org-babel-latex-htlatex nil
|
||||
(defcustom org-babel-latex-htlatex ""
|
||||
"The htlatex command to enable conversion of latex to SVG or HTML."
|
||||
:group 'org-babel
|
||||
:type 'string)
|
||||
|
@ -59,7 +59,7 @@
|
|||
'("[usenames]{color}" "{tikz}" "{color}" "{listings}" "{amsmath}")
|
||||
"Packages to use for htlatex export."
|
||||
:group 'org-babel
|
||||
:type '(list string))
|
||||
:type '(list (string)))
|
||||
|
||||
(defun org-babel-expand-body:latex (body params)
|
||||
"Expand BODY according to PARAMS, return the expanded body."
|
||||
|
@ -141,7 +141,7 @@ This function is called by `org-babel-execute-src-block'."
|
|||
(delete-file transient-pdf-file))))))
|
||||
((and (or (string-match "\\.svg$" out-file)
|
||||
(string-match "\\.html$" out-file))
|
||||
org-babel-latex-htlatex)
|
||||
(not (string= "" org-babel-latex-htlatex)))
|
||||
(with-temp-file tex-file
|
||||
(insert (concat
|
||||
"\\documentclass[preview]{standalone}
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
'((:results . "file") (:exports . "results"))
|
||||
"Default arguments for evaluating a plantuml source block.")
|
||||
|
||||
(defcustom org-plantuml-jar-path nil
|
||||
(defcustom org-plantuml-jar-path ""
|
||||
"Path to the plantuml.jar file."
|
||||
:group 'org-babel
|
||||
:version "24.1"
|
||||
|
@ -55,7 +55,7 @@ This function is called by `org-babel-execute-src-block'."
|
|||
(cmdline (cdr (assoc :cmdline params)))
|
||||
(in-file (org-babel-temp-file "plantuml-"))
|
||||
(java (or (cdr (assoc :java params)) ""))
|
||||
(cmd (if (not org-plantuml-jar-path)
|
||||
(cmd (if (string= "" org-plantuml-jar-path)
|
||||
(error "`org-plantuml-jar-path' is not set")
|
||||
(concat "java " java " -jar "
|
||||
(shell-quote-argument
|
||||
|
|
|
@ -54,7 +54,7 @@ This will typically be either 'python or 'python-mode."
|
|||
:group 'org-babel
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'function)
|
||||
:type 'symbol)
|
||||
|
||||
(defvar org-src-preserve-indentation)
|
||||
|
||||
|
@ -70,7 +70,7 @@ This will typically be either 'python or 'python-mode."
|
|||
:group 'org-babel
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'string)
|
||||
:type 'symbol)
|
||||
|
||||
(defun org-babel-execute:python (body params)
|
||||
"Execute a block of Python code with Babel.
|
||||
|
|
|
@ -62,9 +62,7 @@
|
|||
:group 'org-babel
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'string)
|
||||
|
||||
|
||||
:type 'symbol)
|
||||
|
||||
(defun org-babel-execute:ruby (body params)
|
||||
"Execute a block of Ruby code with Babel.
|
||||
|
|
|
@ -1419,13 +1419,14 @@ When nil, they may also match part of a word."
|
|||
:version "24.1"
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom org-agenda-search-view-max-outline-level nil
|
||||
(defcustom org-agenda-search-view-max-outline-level 0
|
||||
"Maximum outline level to display in search view.
|
||||
E.g. when this is set to 1, the search view will only
|
||||
show headlines of level 1."
|
||||
show headlines of level 1. When set to 0, the default
|
||||
value, don't limit agenda view by outline level."
|
||||
:group 'org-agenda-search-view
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:package-version '(Org . "8.3")
|
||||
:type 'integer)
|
||||
|
||||
(defgroup org-agenda-time-grid nil
|
||||
|
@ -1746,10 +1747,9 @@ to capture the number of days."
|
|||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type '(list
|
||||
(string :tag "Deadline today ")
|
||||
(choice :tag "Deadline relative"
|
||||
(string :tag "Format string")
|
||||
(function))))
|
||||
(string :tag "Deadline today ")
|
||||
(string :tag "Deadline in the future ")
|
||||
(string :tag "Deadline in the past ")))
|
||||
|
||||
(defcustom org-agenda-remove-times-when-in-prefix t
|
||||
"Non-nil means remove duplicate time specifications in agenda items.
|
||||
|
@ -4583,7 +4583,7 @@ in `org-agenda-text-search-extra-files'."
|
|||
(goto-char (max (point-min) (1- (point))))
|
||||
(while (re-search-forward regexp nil t)
|
||||
(org-back-to-heading t)
|
||||
(while (and org-agenda-search-view-max-outline-level
|
||||
(while (and (not (zerop org-agenda-search-view-max-outline-level))
|
||||
(> (org-reduced-level (org-outline-level))
|
||||
org-agenda-search-view-max-outline-level)
|
||||
(forward-line -1)
|
||||
|
@ -4593,7 +4593,7 @@ in `org-agenda-text-search-extra-files'."
|
|||
beg1 (point)
|
||||
end (progn
|
||||
(outline-next-heading)
|
||||
(while (and org-agenda-search-view-max-outline-level
|
||||
(while (and (not (zerop org-agenda-search-view-max-outline-level))
|
||||
(> (org-reduced-level (org-outline-level))
|
||||
org-agenda-search-view-max-outline-level)
|
||||
(forward-line 1)
|
||||
|
@ -5451,6 +5451,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines',
|
|||
(>= days n)
|
||||
(<= days n))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item
|
||||
(&optional end)
|
||||
"Do we have a reason to ignore this TODO entry because it has a time stamp?"
|
||||
|
|
|
@ -135,6 +135,7 @@ information."
|
|||
(match-string 1))
|
||||
(t org-archive-location))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-add-archive-files (files)
|
||||
"Splice the archive files into the list of files.
|
||||
This implies visiting all these files and finding out what the
|
||||
|
|
|
@ -1871,6 +1871,7 @@ will be easy to remove."
|
|||
(overlay-put ov 'end-glyph (make-glyph tx)))
|
||||
(push ov org-clock-overlays)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-clock-remove-overlays (&optional beg end noremove)
|
||||
"Remove the occur highlights from the buffer.
|
||||
BEG and END are ignored. If NOREMOVE is nil, remove this function
|
||||
|
@ -2143,6 +2144,7 @@ If you can combine both, the month starting day will have priority."
|
|||
((= n 3) "3rd")
|
||||
((= n 4) "4th")))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-clocktable-shift (dir n)
|
||||
"Try to shift the :block date of the clocktable at point.
|
||||
Point must be in the #+BEGIN: line of a clocktable, or this function
|
||||
|
@ -2752,6 +2754,7 @@ This function is made for clock tables."
|
|||
(defvar org-clock-loaded nil
|
||||
"Was the clock file loaded?")
|
||||
|
||||
;;;###autoload
|
||||
(defun org-clock-update-time-maybe ()
|
||||
"If this is a CLOCK line, update it and return t.
|
||||
Otherwise, return nil."
|
||||
|
|
|
@ -323,6 +323,7 @@ for the duration of the command.")
|
|||
(defvar org-colview-initial-truncate-line-value nil
|
||||
"Remember the value of `truncate-lines' across colview.")
|
||||
|
||||
;;;###autoload
|
||||
(defun org-columns-remove-overlays ()
|
||||
"Remove all currently active column overlays."
|
||||
(interactive)
|
||||
|
@ -670,6 +671,7 @@ around it."
|
|||
(let ((value (get-char-property (point) 'org-columns-value)))
|
||||
(org-open-link-from-string value arg)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-columns-get-format-and-top-level ()
|
||||
(let ((fmt (org-columns-get-format)))
|
||||
(org-columns-goto-top-level)
|
||||
|
@ -951,6 +953,8 @@ display, or in the #+COLUMNS line of the current buffer."
|
|||
|
||||
(defvar org-inlinetask-min-level
|
||||
(if (featurep 'org-inlinetask) org-inlinetask-min-level 15))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-columns-compute (property)
|
||||
"Sum the values of property PROPERTY hierarchically, for the entire buffer."
|
||||
(interactive)
|
||||
|
@ -1054,6 +1058,7 @@ display, or in the #+COLUMNS line of the current buffer."
|
|||
(setq sum (+ (string-to-number (pop l)) (/ sum 60))))
|
||||
sum)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-columns-number-to-string (n fmt &optional printf)
|
||||
"Convert a computed column number to a string value, according to FMT."
|
||||
(cond
|
||||
|
|
|
@ -190,10 +190,12 @@ If DELETE is non-nil, delete all those overlays."
|
|||
found))
|
||||
|
||||
(defun org-get-x-clipboard (value)
|
||||
"Get the value of the x clipboard, compatible with XEmacs, and GNU Emacs 21."
|
||||
(if (eq window-system 'x)
|
||||
(let ((x (org-get-x-clipboard-compat value)))
|
||||
(if x (org-no-properties x)))))
|
||||
"Get the value of the x or Windows clipboard, compatible with XEmacs, and GNU Emacs 21."
|
||||
(cond ((eq window-system 'x)
|
||||
(let ((x (org-get-x-clipboard-compat value)))
|
||||
(if x (org-no-properties x))))
|
||||
((and (eq window-system 'w32) (fboundp 'w32-get-clipboard-data))
|
||||
(w32-get-clipboard-data))))
|
||||
|
||||
(defsubst org-decompose-region (beg end)
|
||||
"Decompose from BEG to END."
|
||||
|
|
|
@ -73,6 +73,8 @@
|
|||
compress-algorithm))
|
||||
(declare-function epg-encrypt-string "epg"
|
||||
(context plain recipients &optional sign always-trust))
|
||||
(defvar epg-context)
|
||||
|
||||
|
||||
(defgroup org-crypt nil
|
||||
"Org Crypt."
|
||||
|
@ -161,8 +163,8 @@ See `org-crypt-disable-auto-save'."
|
|||
(if (and (string= crypt-key (get-text-property 0 'org-crypt-key str))
|
||||
(string= (sha1 str) (get-text-property 0 'org-crypt-checksum str)))
|
||||
(get-text-property 0 'org-crypt-text str)
|
||||
(let ((epg-context (epg-make-context nil t t)))
|
||||
(epg-encrypt-string epg-context str (epg-list-keys epg-context crypt-key)))))
|
||||
(set (make-local-variable 'epg-context) (epg-make-context nil t t))
|
||||
(epg-encrypt-string epg-context str (epg-list-keys epg-context crypt-key))))
|
||||
|
||||
(defun org-encrypt-entry ()
|
||||
"Encrypt the content of the current headline."
|
||||
|
@ -170,11 +172,11 @@ See `org-crypt-disable-auto-save'."
|
|||
(require 'epg)
|
||||
(save-excursion
|
||||
(org-back-to-heading t)
|
||||
(set (make-local-variable 'epg-context) (epg-make-context nil t t))
|
||||
(let ((start-heading (point)))
|
||||
(forward-line)
|
||||
(when (not (looking-at "-----BEGIN PGP MESSAGE-----"))
|
||||
(let ((folded (outline-invisible-p))
|
||||
(epg-context (epg-make-context nil t t))
|
||||
(crypt-key (org-crypt-key-for-heading))
|
||||
(beg (point))
|
||||
end encrypted-text)
|
||||
|
@ -206,11 +208,11 @@ See `org-crypt-disable-auto-save'."
|
|||
(forward-line)
|
||||
(when (looking-at "-----BEGIN PGP MESSAGE-----")
|
||||
(org-crypt-check-auto-save)
|
||||
(set (make-local-variable 'epg-context) (epg-make-context nil t t))
|
||||
(let* ((end (save-excursion
|
||||
(search-forward "-----END PGP MESSAGE-----")
|
||||
(forward-line)
|
||||
(point)))
|
||||
(epg-context (epg-make-context nil t t))
|
||||
(encrypted-text (buffer-substring-no-properties (point) end))
|
||||
(decrypted-text
|
||||
(decode-coding-string
|
||||
|
|
|
@ -44,12 +44,10 @@
|
|||
|
||||
|
||||
(require 'org)
|
||||
(require 'doc-view)
|
||||
|
||||
(declare-function doc-view-goto-page "ext:doc-view" (page))
|
||||
(declare-function image-mode-window-get "ext:image-mode"
|
||||
(prop &optional winprops))
|
||||
|
||||
(org-autoload "doc-view" '(doc-view-goto-page))
|
||||
(declare-function doc-view-goto-page "doc-view" (page))
|
||||
(declare-function image-mode-window-get "image-mode" (prop &optional winprops))
|
||||
|
||||
(org-add-link-type "docview" 'org-docview-open 'org-docview-export)
|
||||
(add-hook 'org-store-link-functions 'org-docview-store-link)
|
||||
|
|
|
@ -143,10 +143,12 @@
|
|||
"$" "\\|"
|
||||
;; Tables (any type).
|
||||
"\\(?:|\\|\\+-[-+]\\)" "\\|"
|
||||
;; Blocks (any type), Babel calls, drawers (any type),
|
||||
;; fixed-width areas and keywords. Note: this is only an
|
||||
;; indication and need some thorough check.
|
||||
"[#:]" "\\|"
|
||||
;; Blocks (any type), Babel calls and keywords. Note: this
|
||||
;; is only an indication and need some thorough check.
|
||||
"#\\(?:[+ ]\\|$\\)" "\\|"
|
||||
;; Drawers (any type) and fixed-width areas. This is also
|
||||
;; only an indication.
|
||||
":" "\\|"
|
||||
;; Horizontal rules.
|
||||
"-\\{5,\\}[ \t]*$" "\\|"
|
||||
;; LaTeX environments.
|
||||
|
|
|
@ -233,6 +233,7 @@ With optional argument FORCE, force the creation of a new ID."
|
|||
(org-entry-put (point) "ID" nil))
|
||||
(org-id-get (point) 'create))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-id-copy ()
|
||||
"Copy the ID of the entry at point to the kill ring.
|
||||
Create an ID if necessary."
|
||||
|
@ -258,6 +259,7 @@ In any case, the ID of the entry is returned."
|
|||
(org-id-add-location id (buffer-file-name (buffer-base-buffer)))
|
||||
id)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-id-get-with-outline-path-completion (&optional targets)
|
||||
"Use `outline-path-completion' to retrieve the ID of an entry.
|
||||
TARGETS may be a setting for `org-refile-targets' to define
|
||||
|
@ -274,6 +276,7 @@ If necessary, the ID is created."
|
|||
(prog1 (org-id-get pom 'create)
|
||||
(move-marker pom nil))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-id-get-with-outline-drilling (&optional targets)
|
||||
"Use an outline-cycling interface to retrieve the ID of an entry.
|
||||
This only finds entries in the current buffer, using `org-get-location'.
|
||||
|
@ -320,6 +323,7 @@ With optional argument MARKERP, return the position as a new marker."
|
|||
|
||||
;; Creating new IDs
|
||||
|
||||
;;;###autoload
|
||||
(defun org-id-new (&optional prefix)
|
||||
"Create a new globally unique ID.
|
||||
|
||||
|
|
|
@ -283,14 +283,6 @@ we turn off invisibility temporarily. Use this in a `let' form."
|
|||
(<= (match-beginning n) pos)
|
||||
(>= (match-end n) pos)))
|
||||
|
||||
(defun org-autoload (file functions)
|
||||
"Establish autoload for all FUNCTIONS in FILE, if not bound already."
|
||||
(let ((d (format "Documentation will be available after `%s.el' is loaded."
|
||||
file))
|
||||
f)
|
||||
(while (setq f (pop functions))
|
||||
(or (fboundp f) (autoload f file d t)))))
|
||||
|
||||
(defun org-match-line (re)
|
||||
"Looking-at at the beginning of the current line."
|
||||
(save-excursion
|
||||
|
|
|
@ -915,6 +915,7 @@ When nil, simply write \"#ERROR\" in corrupted fields.")
|
|||
(setq org-table-may-need-update nil)
|
||||
))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-table-begin (&optional table-type)
|
||||
"Find the beginning of the table and return its position.
|
||||
With argument TABLE-TYPE, go to the beginning of a table.el-type table."
|
||||
|
@ -928,6 +929,7 @@ With argument TABLE-TYPE, go to the beginning of a table.el-type table."
|
|||
(beginning-of-line 2)
|
||||
(point))))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-table-end (&optional table-type)
|
||||
"Find the end of the table and return its position.
|
||||
With argument TABLE-TYPE, go to the end of a table.el-type table."
|
||||
|
@ -1199,6 +1201,7 @@ Return t when the line exists, nil if it does not exist."
|
|||
(< (setq cnt (1+ cnt)) N)))
|
||||
(= cnt N)))
|
||||
|
||||
;;;###autoload
|
||||
(defun org-table-blank-field ()
|
||||
"Blank the current table field or active region."
|
||||
(interactive)
|
||||
|
@ -4121,7 +4124,7 @@ to execute outside of tables."
|
|||
'(arg)
|
||||
(concat "In tables, run `" (symbol-name fun) "'.\n"
|
||||
"Outside of tables, run the binding of `"
|
||||
(mapconcat (lambda (x) (format "%s" x)) keys "' or `")
|
||||
(mapconcat #'key-description keys "' or `")
|
||||
"'.")
|
||||
'(interactive "p")
|
||||
(list 'if
|
||||
|
|
354
lisp/org/org.el
354
lisp/org/org.el
|
@ -309,7 +309,7 @@ When MESSAGE is non-nil, display a message with the version."
|
|||
(if here
|
||||
(insert version)
|
||||
(message version))
|
||||
(if message (message _version))
|
||||
(if message (message version1))
|
||||
version1)))
|
||||
|
||||
(defconst org-version (org-version))
|
||||
|
@ -654,11 +654,17 @@ the following lines anywhere in the buffer:
|
|||
|
||||
(defcustom org-use-sub-superscripts t
|
||||
"Non-nil means interpret \"_\" and \"^\" for display.
|
||||
When this option is turned on, you can use TeX-like syntax for sub- and
|
||||
superscripts. Several characters after \"_\" or \"^\" will be
|
||||
considered as a single item - so grouping with {} is normally not
|
||||
needed. For example, the following things will be parsed as single
|
||||
sub- or superscripts.
|
||||
|
||||
If you want to control how Org exports those characters, see
|
||||
`org-export-with-sub-superscripts'. `org-use-sub-superscripts'
|
||||
used to be an alias for `org-export-with-sub-superscripts' in
|
||||
Org <8.0, it is not anymore.
|
||||
|
||||
When this option is turned on, you can use TeX-like syntax for
|
||||
sub- and superscripts within the buffer. Several characters after
|
||||
\"_\" or \"^\" will be considered as a single item - so grouping
|
||||
with {} is normally not needed. For example, the following things
|
||||
will be parsed as single sub- or superscripts:
|
||||
|
||||
10^24 or 10^tau several digits will be considered 1 item.
|
||||
10^-12 or 10^-tau a leading sign with digits or a word
|
||||
|
@ -666,13 +672,14 @@ sub- or superscripts.
|
|||
terminated by almost any nonword/nondigit char.
|
||||
x_{i^2} or x^(2-i) braces or parenthesis do grouping.
|
||||
|
||||
Still, ambiguity is possible - so when in doubt use {} to enclose
|
||||
the sub/superscript. If you set this variable to the symbol
|
||||
`{}', the braces are *required* in order to trigger
|
||||
interpretations as sub/superscript. This can be helpful in
|
||||
documents that need \"_\" frequently in plain text."
|
||||
Still, ambiguity is possible. So when in doubt, use {} to enclose
|
||||
the sub/superscript. If you set this variable to the symbol `{}',
|
||||
the braces are *required* in order to trigger interpretations as
|
||||
sub/superscript. This can be helpful in documents that need \"_\"
|
||||
frequently in plain text."
|
||||
:group 'org-startup
|
||||
:version "24.1"
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type '(choice
|
||||
(const :tag "Always interpret" t)
|
||||
(const :tag "Only with braces" {})
|
||||
|
@ -1731,7 +1738,12 @@ In tables, the special behavior of RET has precedence."
|
|||
A longer mouse click will still set point. Does not work on XEmacs.
|
||||
Needs to be set before org.el is loaded."
|
||||
:group 'org-link-follow
|
||||
:type 'boolean)
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.3")
|
||||
:type '(choice
|
||||
(const :tag "A double click follows the link" 'double)
|
||||
(const :tag "Unconditionally follow the link with mouse-1" t)
|
||||
(integer :tag "mouse-1 click does not follow the link if longer than N ms" 450)))
|
||||
|
||||
(defcustom org-mark-ring-length 4
|
||||
"Number of different positions to be recorded in the ring.
|
||||
|
@ -2663,12 +2675,12 @@ agenda log mode depends on the format of these entries."
|
|||
"Heading when changing todo state (todo sequence only)"
|
||||
state) string)
|
||||
(cons (const :tag "Heading when just taking a note" note) string)
|
||||
(cons (const :tag "Heading when clocking out" clock-out) string)
|
||||
(cons (const :tag "Heading when an item is no longer scheduled" delschedule) string)
|
||||
(cons (const :tag "Heading when rescheduling" reschedule) string)
|
||||
(cons (const :tag "Heading when an item is no longer scheduled" delschedule) string)
|
||||
(cons (const :tag "Heading when changing deadline" redeadline) string)
|
||||
(cons (const :tag "Heading when deleting a deadline" deldeadline) string)
|
||||
(cons (const :tag "Heading when refiling" refile) string)))
|
||||
(cons (const :tag "Heading when refiling" refile) string)
|
||||
(cons (const :tag "Heading when clocking out" clock-out) string)))
|
||||
|
||||
(unless (assq 'note org-log-note-headings)
|
||||
(push '(note . "%t") org-log-note-headings))
|
||||
|
@ -4242,12 +4254,6 @@ Normal means, no org-mode-specific context."
|
|||
"Detect the first line outside a table when searching from within it.
|
||||
This works for both table types.")
|
||||
|
||||
;; Autoload the functions in org-table.el that are needed by functions here.
|
||||
|
||||
(eval-and-compile
|
||||
(org-autoload "org-table"
|
||||
'(org-table-begin org-table-blank-field org-table-end)))
|
||||
|
||||
(defconst org-TBLFM-regexp "^[ \t]*#\\+TBLFM: "
|
||||
"Detect a #+TBLFM line.")
|
||||
|
||||
|
@ -4328,12 +4334,6 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
|
|||
(re-search-forward org-table-any-border-regexp nil 1))))
|
||||
(unless quietly (message "Mapping tables: done")))
|
||||
|
||||
;; Declare and autoload functions from org-agenda.el
|
||||
|
||||
(eval-and-compile
|
||||
(org-autoload "org-agenda"
|
||||
'(org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item)))
|
||||
|
||||
(declare-function org-clock-save-markers-for-cut-and-paste "org-clock" (beg end))
|
||||
(declare-function org-clock-update-mode-line "org-clock" ())
|
||||
(declare-function org-resolve-clocks "org-clock"
|
||||
|
@ -4359,11 +4359,6 @@ If TABLE-TYPE is non-nil, also check for table.el-type tables."
|
|||
Return nil if no clock is running."
|
||||
(marker-buffer org-clock-marker))
|
||||
|
||||
(eval-and-compile
|
||||
(org-autoload "org-clock" '(org-clock-remove-overlays
|
||||
org-clock-update-time-maybe
|
||||
org-clocktable-shift)))
|
||||
|
||||
(defun org-check-running-clock ()
|
||||
"Check if the current buffer contains the running clock.
|
||||
If yes, offer to stop it and to save the buffer with the changes."
|
||||
|
@ -4563,33 +4558,18 @@ Otherwise, these types are allowed:
|
|||
|
||||
(defalias 'org-advertized-archive-subtree 'org-archive-subtree)
|
||||
|
||||
(eval-and-compile
|
||||
(org-autoload "org-archive"
|
||||
'(org-add-archive-files)))
|
||||
|
||||
;; Autoload Column View Code
|
||||
;; Declare Column View Code
|
||||
|
||||
(declare-function org-columns-number-to-string "org-colview" (n fmt &optional printf))
|
||||
(declare-function org-columns-get-format-and-top-level "org-colview" ())
|
||||
(declare-function org-columns-compute "org-colview" (property))
|
||||
|
||||
(org-autoload (if (featurep 'xemacs) "org-colview-xemacs" "org-colview")
|
||||
'(org-columns-number-to-string
|
||||
org-columns-get-format-and-top-level
|
||||
org-columns-compute
|
||||
org-columns-remove-overlays))
|
||||
|
||||
;; Autoload ID code
|
||||
;; Declare ID code
|
||||
|
||||
(declare-function org-id-store-link "org-id")
|
||||
(declare-function org-id-locations-load "org-id")
|
||||
(declare-function org-id-locations-save "org-id")
|
||||
(defvar org-id-track-globally)
|
||||
(org-autoload "org-id"
|
||||
'(org-id-new
|
||||
org-id-copy
|
||||
org-id-get-with-outline-path-completion
|
||||
org-id-get-with-outline-drilling))
|
||||
|
||||
;;; Variables for pre-computed regular expressions, all buffer local
|
||||
|
||||
|
@ -8850,13 +8830,13 @@ If WITH-CASE is non-nil, the sorting will be case-sensitive."
|
|||
;; command. There might be problems if any of the keys is otherwise
|
||||
;; used as a prefix key.
|
||||
|
||||
(defcustom orgstruct-heading-prefix-regexp nil
|
||||
(defcustom orgstruct-heading-prefix-regexp ""
|
||||
"Regexp that matches the custom prefix of Org headlines in
|
||||
orgstruct(++)-mode."
|
||||
:group 'org
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'string)
|
||||
:package-version '(Org . "8.3")
|
||||
:type 'regexp)
|
||||
;;;###autoload(put 'orgstruct-heading-prefix-regexp 'safe-local-variable 'stringp)
|
||||
|
||||
(defcustom orgstruct-setup-hook nil
|
||||
|
@ -9017,8 +8997,8 @@ buffer. It will also recognize item context in multiline items."
|
|||
"Create a function for binding in the structure minor mode.
|
||||
FUN is the command to call inside a table. KEY is the key that
|
||||
should be checked in for a command to execute outside of tables.
|
||||
Non-nil DISABLE-WHEN-HEADING-PREFIX means to disable the command
|
||||
if `orgstruct-heading-prefix-regexp' is non-nil."
|
||||
Non-nil `disable-when-heading-prefix' means to disable the command
|
||||
if `orgstruct-heading-prefix-regexp' is not empty."
|
||||
(let ((name (concat "orgstruct-hijacker-" (symbol-name fun))))
|
||||
(let ((nname name)
|
||||
(i 0))
|
||||
|
@ -9044,14 +9024,13 @@ if `orgstruct-heading-prefix-regexp' is non-nil."
|
|||
(key-description key) "'."
|
||||
(when disable-when-heading-prefix
|
||||
(concat
|
||||
"\nIf `orgstruct-heading-prefix-regexp' is non-nil, this command will always fall\n"
|
||||
"\nIf `orgstruct-heading-prefix-regexp' is not empty, this command will always fall\n"
|
||||
"back to the default binding due to limitations of Org's implementation of\n"
|
||||
"`" (symbol-name fun) "'.")))
|
||||
(interactive "p")
|
||||
(let* ((disable
|
||||
,(when disable-when-heading-prefix
|
||||
'(and orgstruct-heading-prefix-regexp
|
||||
(not (string= orgstruct-heading-prefix-regexp "")))))
|
||||
,(and disable-when-heading-prefix
|
||||
'(not (string= orgstruct-heading-prefix-regexp ""))))
|
||||
(fallback
|
||||
(or disable
|
||||
(not
|
||||
|
@ -15204,103 +15183,102 @@ is a string only get exactly this property. SPECIFIC can be a string, the
|
|||
specific property we are interested in. Specifying it can speed
|
||||
things up because then unnecessary parsing is avoided."
|
||||
(setq which (or which 'all))
|
||||
(org-with-point-at pom
|
||||
(let ((clockstr (substring org-clock-string 0 -1))
|
||||
(excluded '("TODO" "TAGS" "ALLTAGS" "PRIORITY" "BLOCKED"))
|
||||
(case-fold-search nil)
|
||||
beg end range props sum-props key key1 value string clocksum clocksumt)
|
||||
(save-excursion
|
||||
(when (condition-case nil
|
||||
(and (derived-mode-p 'org-mode) (org-back-to-heading t))
|
||||
(error nil))
|
||||
(setq beg (point))
|
||||
(setq sum-props (get-text-property (point) 'org-summaries))
|
||||
(setq clocksum (get-text-property (point) :org-clock-minutes)
|
||||
clocksumt (get-text-property (point) :org-clock-minutes-today))
|
||||
(outline-next-heading)
|
||||
(setq end (point))
|
||||
(when (memq which '(all special))
|
||||
;; Get the special properties, like TODO and tags
|
||||
(goto-char beg)
|
||||
(when (and (or (not specific) (string= specific "TODO"))
|
||||
(looking-at org-todo-line-regexp) (match-end 2))
|
||||
(push (cons "TODO" (org-match-string-no-properties 2)) props))
|
||||
(when (and (or (not specific) (string= specific "PRIORITY"))
|
||||
(looking-at org-priority-regexp))
|
||||
(push (cons "PRIORITY" (org-match-string-no-properties 2)) props))
|
||||
(when (or (not specific) (string= specific "FILE"))
|
||||
(push (cons "FILE" buffer-file-name) props))
|
||||
(when (and (or (not specific) (string= specific "TAGS"))
|
||||
(setq value (org-get-tags-string))
|
||||
(string-match "\\S-" value))
|
||||
(push (cons "TAGS" value) props))
|
||||
(when (and (or (not specific) (string= specific "ALLTAGS"))
|
||||
(setq value (org-get-tags-at)))
|
||||
(push (cons "ALLTAGS" (concat ":" (mapconcat 'identity value ":")
|
||||
":"))
|
||||
props))
|
||||
(when (or (not specific) (string= specific "BLOCKED"))
|
||||
(push (cons "BLOCKED" (if (org-entry-blocked-p) "t" "")) props))
|
||||
(when (or (not specific)
|
||||
(member specific
|
||||
'("SCHEDULED" "DEADLINE" "CLOCK" "CLOSED"
|
||||
"TIMESTAMP" "TIMESTAMP_IA")))
|
||||
(catch 'match
|
||||
(while (re-search-forward org-maybe-keyword-time-regexp end t)
|
||||
(setq key (if (match-end 1)
|
||||
(substring (org-match-string-no-properties 1)
|
||||
0 -1))
|
||||
string (if (equal key clockstr)
|
||||
(org-trim
|
||||
(buffer-substring-no-properties
|
||||
(match-beginning 3) (goto-char
|
||||
(point-at-eol))))
|
||||
(substring (org-match-string-no-properties 3)
|
||||
1 -1)))
|
||||
;; Get the correct property name from the key. This is
|
||||
;; necessary if the user has configured time keywords.
|
||||
(setq key1 (concat key ":"))
|
||||
(cond
|
||||
((not key)
|
||||
(setq key
|
||||
(if (= (char-after (match-beginning 3)) ?\[)
|
||||
"TIMESTAMP_IA" "TIMESTAMP")))
|
||||
((equal key1 org-scheduled-string) (setq key "SCHEDULED"))
|
||||
((equal key1 org-deadline-string) (setq key "DEADLINE"))
|
||||
((equal key1 org-closed-string) (setq key "CLOSED"))
|
||||
((equal key1 org-clock-string) (setq key "CLOCK")))
|
||||
(if (and specific (equal key specific) (not (equal key "CLOCK")))
|
||||
(progn
|
||||
(push (cons key string) props)
|
||||
;; no need to search further if match is found
|
||||
(throw 'match t))
|
||||
(when (or (equal key "CLOCK") (not (assoc key props)))
|
||||
(push (cons key string) props)))))))
|
||||
(org-with-wide-buffer
|
||||
(org-with-point-at pom
|
||||
(let ((clockstr (substring org-clock-string 0 -1))
|
||||
(excluded '("TODO" "TAGS" "ALLTAGS" "PRIORITY" "BLOCKED"))
|
||||
(case-fold-search nil)
|
||||
beg end range props sum-props key key1 value string clocksum clocksumt)
|
||||
(when (and (derived-mode-p 'org-mode)
|
||||
(ignore-errors (org-back-to-heading t)))
|
||||
(setq beg (point))
|
||||
(setq sum-props (get-text-property (point) 'org-summaries))
|
||||
(setq clocksum (get-text-property (point) :org-clock-minutes)
|
||||
clocksumt (get-text-property (point) :org-clock-minutes-today))
|
||||
(outline-next-heading)
|
||||
(setq end (point))
|
||||
(when (memq which '(all special))
|
||||
;; Get the special properties, like TODO and tags
|
||||
(goto-char beg)
|
||||
(when (and (or (not specific) (string= specific "TODO"))
|
||||
(looking-at org-todo-line-regexp) (match-end 2))
|
||||
(push (cons "TODO" (org-match-string-no-properties 2)) props))
|
||||
(when (and (or (not specific) (string= specific "PRIORITY"))
|
||||
(looking-at org-priority-regexp))
|
||||
(push (cons "PRIORITY" (org-match-string-no-properties 2)) props))
|
||||
(when (or (not specific) (string= specific "FILE"))
|
||||
(push (cons "FILE" buffer-file-name) props))
|
||||
(when (and (or (not specific) (string= specific "TAGS"))
|
||||
(setq value (org-get-tags-string))
|
||||
(string-match "\\S-" value))
|
||||
(push (cons "TAGS" value) props))
|
||||
(when (and (or (not specific) (string= specific "ALLTAGS"))
|
||||
(setq value (org-get-tags-at)))
|
||||
(push (cons "ALLTAGS" (concat ":" (mapconcat 'identity value ":")
|
||||
":"))
|
||||
props))
|
||||
(when (or (not specific) (string= specific "BLOCKED"))
|
||||
(push (cons "BLOCKED" (if (org-entry-blocked-p) "t" "")) props))
|
||||
(when (or (not specific)
|
||||
(member specific
|
||||
'("SCHEDULED" "DEADLINE" "CLOCK" "CLOSED"
|
||||
"TIMESTAMP" "TIMESTAMP_IA")))
|
||||
(catch 'match
|
||||
(while (re-search-forward org-maybe-keyword-time-regexp end t)
|
||||
(setq key (if (match-end 1)
|
||||
(substring (org-match-string-no-properties 1)
|
||||
0 -1))
|
||||
string (if (equal key clockstr)
|
||||
(org-trim
|
||||
(buffer-substring-no-properties
|
||||
(match-beginning 3) (goto-char
|
||||
(point-at-eol))))
|
||||
(substring (org-match-string-no-properties 3)
|
||||
1 -1)))
|
||||
;; Get the correct property name from the key. This is
|
||||
;; necessary if the user has configured time keywords.
|
||||
(setq key1 (concat key ":"))
|
||||
(cond
|
||||
((not key)
|
||||
(setq key
|
||||
(if (= (char-after (match-beginning 3)) ?\[)
|
||||
"TIMESTAMP_IA" "TIMESTAMP")))
|
||||
((equal key1 org-scheduled-string) (setq key "SCHEDULED"))
|
||||
((equal key1 org-deadline-string) (setq key "DEADLINE"))
|
||||
((equal key1 org-closed-string) (setq key "CLOSED"))
|
||||
((equal key1 org-clock-string) (setq key "CLOCK")))
|
||||
(if (and specific (equal key specific) (not (equal key "CLOCK")))
|
||||
(progn
|
||||
(push (cons key string) props)
|
||||
;; no need to search further if match is found
|
||||
(throw 'match t))
|
||||
(when (or (equal key "CLOCK") (not (assoc key props)))
|
||||
(push (cons key string) props)))))))
|
||||
|
||||
(when (memq which '(all standard))
|
||||
;; Get the standard properties, like :PROP: ...
|
||||
(setq range (org-get-property-block beg end))
|
||||
(when range
|
||||
(goto-char (car range))
|
||||
(while (re-search-forward org-property-re
|
||||
(cdr range) t)
|
||||
(setq key (org-match-string-no-properties 2)
|
||||
value (org-trim (or (org-match-string-no-properties 3) "")))
|
||||
(unless (member key excluded)
|
||||
(push (cons key (or value "")) props)))))
|
||||
(if clocksum
|
||||
(push (cons "CLOCKSUM"
|
||||
(org-columns-number-to-string (/ (float clocksum) 60.)
|
||||
'add_times))
|
||||
props))
|
||||
(if clocksumt
|
||||
(push (cons "CLOCKSUM_T"
|
||||
(org-columns-number-to-string (/ (float clocksumt) 60.)
|
||||
'add_times))
|
||||
props))
|
||||
(unless (assoc "CATEGORY" props)
|
||||
(push (cons "CATEGORY" (org-get-category)) props))
|
||||
(append sum-props (nreverse props)))))))
|
||||
(when (memq which '(all standard))
|
||||
;; Get the standard properties, like :PROP: ...
|
||||
(setq range (org-get-property-block beg end))
|
||||
(when range
|
||||
(goto-char (car range))
|
||||
(while (re-search-forward org-property-re
|
||||
(cdr range) t)
|
||||
(setq key (org-match-string-no-properties 2)
|
||||
value (org-trim (or (org-match-string-no-properties 3) "")))
|
||||
(unless (member key excluded)
|
||||
(push (cons key (or value "")) props)))))
|
||||
(if clocksum
|
||||
(push (cons "CLOCKSUM"
|
||||
(org-columns-number-to-string (/ (float clocksum) 60.)
|
||||
'add_times))
|
||||
props))
|
||||
(if clocksumt
|
||||
(push (cons "CLOCKSUM_T"
|
||||
(org-columns-number-to-string (/ (float clocksumt) 60.)
|
||||
'add_times))
|
||||
props))
|
||||
(unless (assoc "CATEGORY" props)
|
||||
(push (cons "CATEGORY" (org-get-category)) props))
|
||||
(append sum-props (nreverse props)))))))
|
||||
|
||||
(defun org-entry-get (pom property &optional inherit literal-nil)
|
||||
"Get value of PROPERTY for entry or content at point-or-marker POM.
|
||||
|
@ -15320,30 +15298,32 @@ when a \"nil\" value can supersede a non-nil value higher up the hierarchy."
|
|||
t))
|
||||
(org-entry-get-with-inheritance property literal-nil)
|
||||
(if (member property org-special-properties)
|
||||
;; We need a special property. Use `org-entry-properties' to
|
||||
;; retrieve it, but specify the wanted property
|
||||
;; We need a special property. Use `org-entry-properties'
|
||||
;; to retrieve it, but specify the wanted property
|
||||
(cdr (assoc property (org-entry-properties nil 'special property)))
|
||||
(let ((range (org-get-property-block)))
|
||||
(when (and range (not (eq (car range) (cdr range))))
|
||||
(let* ((props (list (or (assoc property org-file-properties)
|
||||
(assoc property org-global-properties)
|
||||
(assoc property org-global-properties-fixed))))
|
||||
(ap (lambda (key)
|
||||
(when (re-search-forward
|
||||
(org-re-property key) (cdr range) t)
|
||||
(setq props
|
||||
(org-update-property-plist
|
||||
key
|
||||
(if (match-end 3)
|
||||
(org-match-string-no-properties 3) "")
|
||||
props)))))
|
||||
val)
|
||||
(goto-char (car range))
|
||||
(funcall ap property)
|
||||
(goto-char (car range))
|
||||
(while (funcall ap (concat property "+")))
|
||||
(setq val (cdr (assoc property props)))
|
||||
(when val (if literal-nil val (org-not-nil val))))))))))
|
||||
(org-with-wide-buffer
|
||||
(let ((range (org-get-property-block)))
|
||||
(when (and range (not (eq (car range) (cdr range))))
|
||||
(let* ((props
|
||||
(list (or (assoc property org-file-properties)
|
||||
(assoc property org-global-properties)
|
||||
(assoc property org-global-properties-fixed))))
|
||||
(ap (lambda (key)
|
||||
(when (re-search-forward
|
||||
(org-re-property key) (cdr range) t)
|
||||
(setq props
|
||||
(org-update-property-plist
|
||||
key
|
||||
(if (match-end 3)
|
||||
(org-match-string-no-properties 3) "")
|
||||
props)))))
|
||||
val)
|
||||
(goto-char (car range))
|
||||
(funcall ap property)
|
||||
(goto-char (car range))
|
||||
(while (funcall ap (concat property "+")))
|
||||
(setq val (cdr (assoc property props)))
|
||||
(when val (if literal-nil val (org-not-nil val)))))))))))
|
||||
|
||||
(defun org-property-or-variable-value (var &optional inherit)
|
||||
"Check if there is a property fixing the value of VAR.
|
||||
|
@ -19525,9 +19505,6 @@ because, in this case the deletion might narrow the column."
|
|||
(put 'org-self-insert-command 'pabbrev-expand-after-command t)
|
||||
(put 'orgtbl-self-insert-command 'pabbrev-expand-after-command t)
|
||||
|
||||
;; How to do this: Measure non-white length of current string
|
||||
;; If equal to column width, we should realign.
|
||||
|
||||
(defun org-remap (map &rest commands)
|
||||
"In MAP, remap the functions given in COMMANDS.
|
||||
COMMANDS is a list of alternating OLDDEF NEWDEF command names."
|
||||
|
@ -20237,10 +20214,17 @@ This command does many different things, depending on context:
|
|||
(if (save-excursion (beginning-of-line) (looking-at "[ \t]*$"))
|
||||
(or (run-hook-with-args-until-success 'org-ctrl-c-ctrl-c-final-hook)
|
||||
(user-error "C-c C-c can do nothing useful at this location"))
|
||||
;; When at a link, act according to the parent instead.
|
||||
(when (eq type 'link)
|
||||
(setq context (org-element-property :parent context))
|
||||
(setq type (org-element-type context)))
|
||||
(case type
|
||||
;; When at a link, act according to the parent instead.
|
||||
(link (setq context (org-element-property :parent context))
|
||||
(setq type (org-element-type context)))
|
||||
;; Unsupported object types: check parent element instead.
|
||||
((bold code entity export-snippet inline-babel-call inline-src-block
|
||||
italic latex-fragment line-break macro strike-through subscript
|
||||
superscript underline verbatim)
|
||||
(while (and (setq context (org-element-property :parent context))
|
||||
(not (memq (setq type (org-element-type context))
|
||||
'(paragraph verse-block)))))))
|
||||
;; For convenience: at the first line of a paragraph on the
|
||||
;; same line as an item, apply function on that item instead.
|
||||
(when (eq type 'paragraph)
|
||||
|
|
|
@ -336,7 +336,8 @@ Otherwise, place it right after it."
|
|||
:package-version '(Org . "8.0")
|
||||
:type 'string)
|
||||
|
||||
(defcustom org-ascii-format-drawer-function nil
|
||||
(defcustom org-ascii-format-drawer-function
|
||||
(lambda (name contents width) contents)
|
||||
"Function called to format a drawer in ASCII.
|
||||
|
||||
The function must accept three parameters:
|
||||
|
@ -347,63 +348,32 @@ The function must accept three parameters:
|
|||
The function should return either the string to be exported or
|
||||
nil to ignore the drawer.
|
||||
|
||||
For example, the variable could be set to the following function
|
||||
in order to mimic default behaviour:
|
||||
|
||||
\(defun org-ascii-format-drawer-default (name contents width)
|
||||
\"Format a drawer element for ASCII export.\"
|
||||
contents)"
|
||||
The default value simply returns the value of CONTENTS."
|
||||
:group 'org-export-ascii
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'function)
|
||||
|
||||
(defcustom org-ascii-format-inlinetask-function nil
|
||||
(defcustom org-ascii-format-inlinetask-function
|
||||
'org-ascii-format-inlinetask-default
|
||||
"Function called to format an inlinetask in ASCII.
|
||||
|
||||
The function must accept six parameters:
|
||||
TODO the todo keyword, as a string
|
||||
TODO-TYPE the todo type, a symbol among `todo', `done' and nil.
|
||||
PRIORITY the inlinetask priority, as a string
|
||||
NAME the inlinetask name, as a string.
|
||||
TAGS the inlinetask tags, as a list of strings.
|
||||
CONTENTS the contents of the inlinetask, as a string.
|
||||
The function must accept nine parameters:
|
||||
TODO the todo keyword, as a string
|
||||
TODO-TYPE the todo type, a symbol among `todo', `done' and nil.
|
||||
PRIORITY the inlinetask priority, as a string
|
||||
NAME the inlinetask name, as a string.
|
||||
TAGS the inlinetask tags, as a list of strings.
|
||||
CONTENTS the contents of the inlinetask, as a string.
|
||||
WIDTH the width of the inlinetask, as a number.
|
||||
INLINETASK the inlinetask itself.
|
||||
INFO the info channel.
|
||||
|
||||
The function should return either the string to be exported or
|
||||
nil to ignore the inline task.
|
||||
|
||||
For example, the variable could be set to the following function
|
||||
in order to mimic default behaviour:
|
||||
|
||||
\(defun org-ascii-format-inlinetask-default
|
||||
\(todo type priority name tags contents\)
|
||||
\"Format an inline task element for ASCII export.\"
|
||||
\(let* \(\(utf8p \(eq \(plist-get info :ascii-charset\) 'utf-8\)\)
|
||||
\(width org-ascii-inlinetask-width\)
|
||||
\(org-ascii--indent-string
|
||||
\(concat
|
||||
;; Top line, with an additional blank line if not in UTF-8.
|
||||
\(make-string width \(if utf8p ?━ ?_\)\) \"\\n\"
|
||||
\(unless utf8p \(concat \(make-string width ? \) \"\\n\"\)\)
|
||||
;; Add title. Fill it if wider than inlinetask.
|
||||
\(let \(\(title \(org-ascii--build-title inlinetask info width\)\)\)
|
||||
\(if \(<= \(length title\) width\) title
|
||||
\(org-ascii--fill-string title width info\)\)\)
|
||||
\"\\n\"
|
||||
;; If CONTENTS is not empty, insert it along with
|
||||
;; a separator.
|
||||
\(when \(org-string-nw-p contents\)
|
||||
\(concat \(make-string width \(if utf8p ?─ ?-\)\) \"\\n\" contents\)\)
|
||||
;; Bottom line.
|
||||
\(make-string width \(if utf8p ?━ ?_\)\)\)
|
||||
;; Flush the inlinetask to the right.
|
||||
\(- \(plist-get info :ascii-width\)
|
||||
\(plist-get info :ascii-margin\)
|
||||
\(plist-get info :ascii-inner-margin\)
|
||||
\(org-ascii--current-text-width inlinetask info\)\)"
|
||||
nil to ignore the inline task."
|
||||
:group 'org-export-ascii
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:package-version '(Org . "8.3")
|
||||
:type 'function)
|
||||
|
||||
|
||||
|
@ -1071,11 +1041,7 @@ CONTENTS holds the contents of the block. INFO is a plist
|
|||
holding contextual information."
|
||||
(let ((name (org-element-property :drawer-name drawer))
|
||||
(width (org-ascii--current-text-width drawer info)))
|
||||
(if (functionp org-ascii-format-drawer-function)
|
||||
(funcall org-ascii-format-drawer-function name contents width)
|
||||
;; If there's no user defined function: simply
|
||||
;; display contents of the drawer.
|
||||
contents)))
|
||||
(funcall org-ascii-format-drawer-function name contents width)))
|
||||
|
||||
|
||||
;;;; Dynamic Block
|
||||
|
@ -1228,55 +1194,58 @@ contextual information."
|
|||
|
||||
;;;; Inlinetask
|
||||
|
||||
(defun org-ascii-format-inlinetask-default
|
||||
(todo type priority name tags contents width inlinetask info)
|
||||
"Format an inline task element for ASCII export.
|
||||
See `org-ascii-format-inlinetask-function' for a description
|
||||
of the paramaters."
|
||||
(let* ((utf8p (eq (plist-get info :ascii-charset) 'utf-8))
|
||||
(width (or width org-ascii-inlinetask-width)))
|
||||
(org-ascii--indent-string
|
||||
(concat
|
||||
;; Top line, with an additional blank line if not in UTF-8.
|
||||
(make-string width (if utf8p ?━ ?_)) "\n"
|
||||
(unless utf8p (concat (make-string width ? ) "\n"))
|
||||
;; Add title. Fill it if wider than inlinetask.
|
||||
(let ((title (org-ascii--build-title inlinetask info width)))
|
||||
(if (<= (length title) width) title
|
||||
(org-ascii--fill-string title width info)))
|
||||
"\n"
|
||||
;; If CONTENTS is not empty, insert it along with
|
||||
;; a separator.
|
||||
(when (org-string-nw-p contents)
|
||||
(concat (make-string width (if utf8p ?─ ?-)) "\n" contents))
|
||||
;; Bottom line.
|
||||
(make-string width (if utf8p ?━ ?_)))
|
||||
;; Flush the inlinetask to the right.
|
||||
(- org-ascii-text-width org-ascii-global-margin
|
||||
(if (not (org-export-get-parent-headline inlinetask)) 0
|
||||
org-ascii-inner-margin)
|
||||
(org-ascii--current-text-width inlinetask info)))))
|
||||
|
||||
(defun org-ascii-inlinetask (inlinetask contents info)
|
||||
"Transcode an INLINETASK element from Org to ASCII.
|
||||
CONTENTS holds the contents of the block. INFO is a plist
|
||||
holding contextual information."
|
||||
(let ((width (org-ascii--current-text-width inlinetask info)))
|
||||
;; If `org-ascii-format-inlinetask-function' is provided, call it
|
||||
;; with appropriate arguments.
|
||||
(if (functionp org-ascii-format-inlinetask-function)
|
||||
(funcall org-ascii-format-inlinetask-function
|
||||
;; todo.
|
||||
(and (plist-get info :with-todo-keywords)
|
||||
(let ((todo (org-element-property
|
||||
:todo-keyword inlinetask)))
|
||||
(and todo (org-export-data todo info))))
|
||||
;; todo-type
|
||||
(org-element-property :todo-type inlinetask)
|
||||
;; priority
|
||||
(and (plist-get info :with-priority)
|
||||
(org-element-property :priority inlinetask))
|
||||
;; title
|
||||
(org-export-data (org-element-property :title inlinetask) info)
|
||||
;; tags
|
||||
(and (plist-get info :with-tags)
|
||||
(org-element-property :tags inlinetask))
|
||||
;; contents and width
|
||||
contents width)
|
||||
;; Otherwise, use a default template.
|
||||
(let* ((utf8p (eq (plist-get info :ascii-charset) 'utf-8)))
|
||||
(org-ascii--indent-string
|
||||
(concat
|
||||
;; Top line, with an additional blank line if not in UTF-8.
|
||||
(make-string width (if utf8p ?━ ?_)) "\n"
|
||||
(unless utf8p (concat (make-string width ? ) "\n"))
|
||||
;; Add title. Fill it if wider than inlinetask.
|
||||
(let ((title (org-ascii--build-title inlinetask info width)))
|
||||
(if (<= (length title) width) title
|
||||
(org-ascii--fill-string title width info)))
|
||||
"\n"
|
||||
;; If CONTENTS is not empty, insert it along with
|
||||
;; a separator.
|
||||
(when (org-string-nw-p contents)
|
||||
(concat (make-string width (if utf8p ?─ ?-)) "\n" contents))
|
||||
;; Bottom line.
|
||||
(make-string width (if utf8p ?━ ?_)))
|
||||
;; Flush the inlinetask to the right.
|
||||
(- org-ascii-text-width org-ascii-global-margin
|
||||
(if (not (org-export-get-parent-headline inlinetask)) 0
|
||||
org-ascii-inner-margin)
|
||||
(org-ascii--current-text-width inlinetask info)))))))
|
||||
(funcall org-ascii-format-inlinetask-function
|
||||
;; todo.
|
||||
(and (plist-get info :with-todo-keywords)
|
||||
(let ((todo (org-element-property
|
||||
:todo-keyword inlinetask)))
|
||||
(and todo (org-export-data todo info))))
|
||||
;; todo-type
|
||||
(org-element-property :todo-type inlinetask)
|
||||
;; priority
|
||||
(and (plist-get info :with-priority)
|
||||
(org-element-property :priority inlinetask))
|
||||
;; title
|
||||
(org-export-data (org-element-property :title inlinetask) info)
|
||||
;; tags
|
||||
(and (plist-get info :with-tags)
|
||||
(org-element-property :tags inlinetask))
|
||||
;; contents and width
|
||||
contents width inlinetask info)))
|
||||
|
||||
|
||||
;;;; Italic
|
||||
|
|
|
@ -130,7 +130,9 @@
|
|||
(:infojs-opt "INFOJS_OPT" nil nil)
|
||||
;; Redefine regular options.
|
||||
(:creator "CREATOR" nil org-html-creator-string)
|
||||
(:with-latex nil "tex" org-html-with-latex)))
|
||||
(:with-latex nil "tex" org-html-with-latex)
|
||||
;; Retrieve LaTeX header for fragments.
|
||||
(:latex-header "LATEX_HEADER" nil nil newline)))
|
||||
|
||||
|
||||
;;; Internal Variables
|
||||
|
@ -544,6 +546,8 @@ a formatting string to wrap fontified text with.
|
|||
If no association can be found for a given markup, text will be
|
||||
returned as-is."
|
||||
:group 'org-export-html
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type '(alist :key-type (symbol :tag "Markup type")
|
||||
:value-type (string :tag "Format string"))
|
||||
:options '(bold code italic strike-through underline verbatim))
|
||||
|
@ -565,7 +569,8 @@ Warning: non-nil may break indentation of source code blocks."
|
|||
|
||||
;;;; Drawers
|
||||
|
||||
(defcustom org-html-format-drawer-function nil
|
||||
(defcustom org-html-format-drawer-function
|
||||
(lambda (name contents) contents)
|
||||
"Function called to format a drawer in HTML code.
|
||||
|
||||
The function must accept two parameters:
|
||||
|
@ -577,10 +582,10 @@ The function should return the string to be exported.
|
|||
For example, the variable could be set to the following function
|
||||
in order to mimic default behaviour:
|
||||
|
||||
\(defun org-html-format-drawer-default \(name contents\)
|
||||
\"Format a drawer element for HTML export.\"
|
||||
contents\)"
|
||||
The default value simply returns the value of CONTENTS."
|
||||
:group 'org-export-html
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'function)
|
||||
|
||||
;;;; Footnotes
|
||||
|
@ -622,7 +627,7 @@ document title."
|
|||
:group 'org-export-html
|
||||
:type 'integer)
|
||||
|
||||
(defcustom org-html-format-headline-function nil
|
||||
(defcustom org-html-format-headline-function 'ignore
|
||||
"Function to format headline text.
|
||||
|
||||
This function will be called with 5 arguments:
|
||||
|
@ -634,6 +639,8 @@ TAGS the tags (string or nil).
|
|||
|
||||
The function result will be used in the section format string."
|
||||
:group 'org-export-html
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'function)
|
||||
|
||||
;;;; HTML-specific
|
||||
|
@ -649,7 +656,7 @@ attributes, when appropriate."
|
|||
|
||||
;;;; Inlinetasks
|
||||
|
||||
(defcustom org-html-format-inlinetask-function nil
|
||||
(defcustom org-html-format-inlinetask-function 'ignore
|
||||
"Function called to format an inlinetask in HTML code.
|
||||
|
||||
The function must accept six parameters:
|
||||
|
@ -662,6 +669,8 @@ The function must accept six parameters:
|
|||
|
||||
The function should return the string to be exported."
|
||||
:group 'org-export-html
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'function)
|
||||
|
||||
;;;; LaTeX
|
||||
|
@ -1119,6 +1128,8 @@ like that: \"%%\"."
|
|||
"Information about the creator of the HTML document.
|
||||
This option can also be set on with the CREATOR keyword."
|
||||
:group 'org-export-html
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type '(string :tag "Creator string"))
|
||||
|
||||
;;;; Template :: Preamble
|
||||
|
@ -1971,7 +1982,8 @@ and value is its relative level, as an integer."
|
|||
(defun org-html--format-toc-headline (headline info)
|
||||
"Return an appropriate table of contents entry for HEADLINE.
|
||||
INFO is a plist used as a communication channel."
|
||||
(let* ((todo (and (plist-get info :with-todo-keywords)
|
||||
(let* ((headline-number (org-export-get-headline-number headline info))
|
||||
(todo (and (plist-get info :with-todo-keywords)
|
||||
(let ((todo (org-element-property :todo-keyword headline)))
|
||||
(and todo (org-export-data todo info)))))
|
||||
(todo-type (and todo (org-element-property :todo-type headline)))
|
||||
|
@ -1992,19 +2004,23 @@ INFO is a plist used as a communication channel."
|
|||
(tags (and (eq (plist-get info :with-tags) t)
|
||||
(org-export-get-tags headline info))))
|
||||
(format "<a href=\"#%s\">%s</a>"
|
||||
;; Label.
|
||||
(org-export-solidify-link-text
|
||||
(or (org-element-property :CUSTOM_ID headline)
|
||||
(concat "sec-"
|
||||
(mapconcat
|
||||
#'number-to-string
|
||||
(org-export-get-headline-number headline info)
|
||||
"-"))))
|
||||
(apply (if (functionp org-html-format-headline-function)
|
||||
(lambda (todo todo-type priority text tags &rest ignore)
|
||||
(funcall org-html-format-headline-function
|
||||
todo todo-type priority text tags))
|
||||
#'org-html-format-headline)
|
||||
todo todo-type priority text tags :section-number nil))))
|
||||
(mapconcat #'number-to-string headline-number "-"))))
|
||||
;; Body.
|
||||
(concat
|
||||
(and (not (org-export-low-level-p headline info))
|
||||
(org-export-numbered-headline-p headline info)
|
||||
(concat (mapconcat #'number-to-string headline-number ".")
|
||||
". "))
|
||||
(apply (if (not (eq org-html-format-headline-function 'ignore))
|
||||
(lambda (todo todo-type priority text tags &rest ignore)
|
||||
(funcall org-html-format-headline-function
|
||||
todo todo-type priority text tags))
|
||||
#'org-html-format-headline)
|
||||
todo todo-type priority text tags :section-number nil)))))
|
||||
|
||||
(defun org-html-list-of-listings (info)
|
||||
"Build a list of listings.
|
||||
|
@ -2244,7 +2260,7 @@ holding contextual information."
|
|||
headline-number "-"))))
|
||||
(format-function
|
||||
(cond ((functionp format-function) format-function)
|
||||
((functionp org-html-format-headline-function)
|
||||
((not (eq org-html-format-headline-function 'ignore))
|
||||
(lambda (todo todo-type priority text tags &rest ignore)
|
||||
(funcall org-html-format-headline-function
|
||||
todo todo-type priority text tags)))
|
||||
|
@ -2371,9 +2387,9 @@ contextual information."
|
|||
CONTENTS holds the contents of the block. INFO is a plist
|
||||
holding contextual information."
|
||||
(cond
|
||||
;; If `org-html-format-inlinetask-function' is provided, call it
|
||||
;; If `org-html-format-inlinetask-function' is not 'ignore, call it
|
||||
;; with appropriate arguments.
|
||||
((functionp org-html-format-inlinetask-function)
|
||||
((not (eq org-html-format-inlinetask-function 'ignore))
|
||||
(let ((format-function
|
||||
(function*
|
||||
(lambda (todo todo-type priority text tags
|
||||
|
@ -2474,18 +2490,34 @@ CONTENTS is nil. INFO is a plist holding contextual information."
|
|||
|
||||
;;;; Latex Environment
|
||||
|
||||
(defun org-html-format-latex (latex-frag processing-type)
|
||||
"Format a LaTeX fragment LATEX-FRAG into HTML."
|
||||
(defun org-html-format-latex (latex-frag processing-type info)
|
||||
"Format a LaTeX fragment LATEX-FRAG into HTML.
|
||||
PROCESSING-TYPE designates the tool used for conversion. It is
|
||||
a symbol among `mathjax', `dvipng', `imagemagick', `verbatim' nil
|
||||
and t. See `org-html-with-latex' for more information. INFO is
|
||||
a plist containing export properties."
|
||||
(let ((cache-relpath "") (cache-dir ""))
|
||||
(unless (eq processing-type 'mathjax)
|
||||
(let ((bfn (or (buffer-file-name)
|
||||
(make-temp-name
|
||||
(expand-file-name "latex" temporary-file-directory)))))
|
||||
(expand-file-name "latex" temporary-file-directory))))
|
||||
(latex-header
|
||||
(let ((header (plist-get info :latex-header)))
|
||||
(and header
|
||||
(concat (mapconcat
|
||||
(lambda (line) (concat "#+LATEX_HEADER: " line))
|
||||
(org-split-string header "\n")
|
||||
"\n")
|
||||
"\n")))))
|
||||
(setq cache-relpath
|
||||
(concat "ltxpng/"
|
||||
(file-name-sans-extension
|
||||
(file-name-nondirectory bfn)))
|
||||
cache-dir (file-name-directory bfn))))
|
||||
cache-dir (file-name-directory bfn))
|
||||
;; Re-create LaTeX environment from original buffer in
|
||||
;; temporary buffer so that dvipng/imagemagick can properly
|
||||
;; turn the fragment into an image.
|
||||
(setq latex-frag (concat latex-header latex-frag))))
|
||||
(with-temp-buffer
|
||||
(insert latex-frag)
|
||||
(org-format-latex cache-relpath cache-dir nil "Creating LaTeX Image..."
|
||||
|
@ -2501,9 +2533,10 @@ CONTENTS is nil. INFO is a plist holding contextual information."
|
|||
(attributes (org-export-read-attribute :attr_html latex-environment)))
|
||||
(case processing-type
|
||||
((t mathjax)
|
||||
(org-html-format-latex latex-frag 'mathjax))
|
||||
(org-html-format-latex latex-frag 'mathjax info))
|
||||
((dvipng imagemagick)
|
||||
(let ((formula-link (org-html-format-latex latex-frag processing-type)))
|
||||
(let ((formula-link
|
||||
(org-html-format-latex latex-frag processing-type info)))
|
||||
(when (and formula-link (string-match "file:\\([^]]*\\)" formula-link))
|
||||
;; Do not provide a caption or a name to be consistent with
|
||||
;; `mathjax' handling.
|
||||
|
@ -2521,9 +2554,10 @@ CONTENTS is nil. INFO is a plist holding contextual information."
|
|||
(processing-type (plist-get info :with-latex)))
|
||||
(case processing-type
|
||||
((t mathjax)
|
||||
(org-html-format-latex latex-frag 'mathjax))
|
||||
(org-html-format-latex latex-frag 'mathjax info))
|
||||
((dvipng imagemagick)
|
||||
(let ((formula-link (org-html-format-latex latex-frag processing-type)))
|
||||
(let ((formula-link
|
||||
(org-html-format-latex latex-frag processing-type info)))
|
||||
(when (and formula-link (string-match "file:\\([^]]*\\)" formula-link))
|
||||
(org-html--format-image (match-string 1 formula-link) nil info))))
|
||||
(t latex-frag))))
|
||||
|
|
|
@ -556,7 +556,8 @@ returned as-is."
|
|||
|
||||
;;;; Drawers
|
||||
|
||||
(defcustom org-latex-format-drawer-function nil
|
||||
(defcustom org-latex-format-drawer-function
|
||||
(lambda (name contents) contents)
|
||||
"Function called to format a drawer in LaTeX code.
|
||||
|
||||
The function must accept two parameters:
|
||||
|
@ -565,19 +566,16 @@ The function must accept two parameters:
|
|||
|
||||
The function should return the string to be exported.
|
||||
|
||||
For example, the variable could be set to the following function
|
||||
in order to mimic default behaviour:
|
||||
|
||||
\(defun org-latex-format-drawer-default \(name contents\)
|
||||
\"Format a drawer element for LaTeX export.\"
|
||||
contents\)"
|
||||
The default function simply returns the value of CONTENTS."
|
||||
:group 'org-export-latex
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.3")
|
||||
:type 'function)
|
||||
|
||||
|
||||
;;;; Inlinetasks
|
||||
|
||||
(defcustom org-latex-format-inlinetask-function nil
|
||||
(defcustom org-latex-format-inlinetask-function 'ignore
|
||||
"Function called to format an inlinetask in LaTeX code.
|
||||
|
||||
The function must accept six parameters:
|
||||
|
@ -1212,12 +1210,8 @@ channel."
|
|||
CONTENTS holds the contents of the block. INFO is a plist
|
||||
holding contextual information."
|
||||
(let* ((name (org-element-property :drawer-name drawer))
|
||||
(output (if (functionp org-latex-format-drawer-function)
|
||||
(funcall org-latex-format-drawer-function
|
||||
name contents)
|
||||
;; If there's no user defined function: simply
|
||||
;; display contents of the drawer.
|
||||
contents)))
|
||||
(output (funcall org-latex-format-drawer-function
|
||||
name contents)))
|
||||
(org-latex--wrap-label drawer output)))
|
||||
|
||||
|
||||
|
@ -1502,7 +1496,7 @@ holding contextual information."
|
|||
(org-element-property :priority inlinetask))))
|
||||
;; If `org-latex-format-inlinetask-function' is provided, call it
|
||||
;; with appropriate arguments.
|
||||
(if (functionp org-latex-format-inlinetask-function)
|
||||
(if (not (eq org-latex-format-inlinetask-function 'ignore))
|
||||
(funcall org-latex-format-inlinetask-function
|
||||
todo todo-type priority title tags contents)
|
||||
;; Otherwise, use a default template.
|
||||
|
|
|
@ -449,7 +449,7 @@ under `org-odt-styles-dir' is used."
|
|||
:type '(choice (const nil)
|
||||
(file))
|
||||
:group 'org-export-odt
|
||||
:version "24.1")
|
||||
:version "24.3")
|
||||
|
||||
(defcustom org-odt-styles-file nil
|
||||
"Default styles file for use with ODT export.
|
||||
|
@ -498,7 +498,8 @@ a per-file basis. For example,
|
|||
(defcustom org-odt-display-outline-level 2
|
||||
"Outline levels considered for enumerating captioned entities."
|
||||
:group 'org-export-odt
|
||||
:version "24.2"
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'integer)
|
||||
|
||||
;;;; Document conversion
|
||||
|
@ -645,7 +646,8 @@ values. See Info node `(emacs) File Variables'."
|
|||
|
||||
;;;; Drawers
|
||||
|
||||
(defcustom org-odt-format-drawer-function nil
|
||||
(defcustom org-odt-format-drawer-function
|
||||
(lambda (name contents) contents)
|
||||
"Function called to format a drawer in ODT code.
|
||||
|
||||
The function must accept two parameters:
|
||||
|
@ -654,21 +656,16 @@ The function must accept two parameters:
|
|||
|
||||
The function should return the string to be exported.
|
||||
|
||||
For example, the variable could be set to the following function
|
||||
in order to mimic default behaviour:
|
||||
|
||||
\(defun org-odt-format-drawer-default \(name contents\)
|
||||
\"Format a drawer element for ODT export.\"
|
||||
contents\)"
|
||||
The default value simply returns the value of CONTENTS."
|
||||
:group 'org-export-odt
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:package-version '(Org . "8.3")
|
||||
:type 'function)
|
||||
|
||||
|
||||
;;;; Headline
|
||||
|
||||
(defcustom org-odt-format-headline-function nil
|
||||
(defcustom org-odt-format-headline-function 'ignore
|
||||
"Function to format headline text.
|
||||
|
||||
This function will be called with 5 arguments:
|
||||
|
@ -687,7 +684,7 @@ The function result will be used as headline text."
|
|||
|
||||
;;;; Inlinetasks
|
||||
|
||||
(defcustom org-odt-format-inlinetask-function nil
|
||||
(defcustom org-odt-format-inlinetask-function 'ignore
|
||||
"Function called to format an inlinetask in ODT code.
|
||||
|
||||
The function must accept six parameters:
|
||||
|
@ -746,6 +743,8 @@ A rule consists in an association whose key is the type of link
|
|||
to consider, and value is a regexp that will be matched against
|
||||
link's path."
|
||||
:group 'org-export-odt
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type '(alist :key-type (string :tag "Type")
|
||||
:value-type (regexp :tag "Path")))
|
||||
|
||||
|
@ -757,6 +756,8 @@ A rule consists in an association whose key is the type of link
|
|||
to consider, and value is a regexp that will be matched against
|
||||
link's path."
|
||||
:group 'org-export-odt
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type '(alist :key-type (string :tag "Type")
|
||||
:value-type (regexp :tag "Path")))
|
||||
|
||||
|
@ -929,6 +930,8 @@ the application UI or through a custom styles file.
|
|||
|
||||
See `org-odt--build-date-styles' for implementation details."
|
||||
:group 'org-export-odt
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type 'boolean)
|
||||
|
||||
|
||||
|
@ -1619,12 +1622,8 @@ channel."
|
|||
CONTENTS holds the contents of the block. INFO is a plist
|
||||
holding contextual information."
|
||||
(let* ((name (org-element-property :drawer-name drawer))
|
||||
(output (if (functionp org-odt-format-drawer-function)
|
||||
(funcall org-odt-format-drawer-function
|
||||
name contents)
|
||||
;; If there's no user defined function: simply
|
||||
;; display contents of the drawer.
|
||||
contents)))
|
||||
(output (funcall org-odt-format-drawer-function
|
||||
name contents)))
|
||||
output))
|
||||
|
||||
|
||||
|
@ -1805,10 +1804,10 @@ INFO is a plist holding contextual information."
|
|||
headline-number "-")))
|
||||
(format-function (cond
|
||||
((functionp format-function) format-function)
|
||||
((functionp org-odt-format-headline-function)
|
||||
((not (eq org-odt-format-headline-function 'ignore))
|
||||
(function*
|
||||
(lambda (todo todo-type priority text tags
|
||||
&allow-other-keys)
|
||||
&allow-other-keys)
|
||||
(funcall org-odt-format-headline-function
|
||||
todo todo-type priority text tags))))
|
||||
(t 'org-odt-format-headline))))
|
||||
|
@ -1931,9 +1930,9 @@ contextual information."
|
|||
CONTENTS holds the contents of the block. INFO is a plist
|
||||
holding contextual information."
|
||||
(cond
|
||||
;; If `org-odt-format-inlinetask-function' is provided, call it
|
||||
;; If `org-odt-format-inlinetask-function' is not 'ignore, call it
|
||||
;; with appropriate arguments.
|
||||
((functionp org-odt-format-inlinetask-function)
|
||||
((not (eq org-odt-format-inlinetask-function 'ignore))
|
||||
(let ((format-function
|
||||
(function*
|
||||
(lambda (todo todo-type priority text tags
|
||||
|
|
|
@ -1225,8 +1225,9 @@ Returns value on success, else nil."
|
|||
(let ((attr (file-attributes
|
||||
(expand-file-name (or (file-symlink-p file) file)
|
||||
(file-name-directory file)))))
|
||||
(+ (lsh (car (nth 5 attr)) 16)
|
||||
(cadr (nth 5 attr)))))
|
||||
(if (not attr) (error "No such file: \"%s\"" file)
|
||||
(+ (lsh (car (nth 5 attr)) 16)
|
||||
(cadr (nth 5 attr))))))
|
||||
|
||||
|
||||
(provide 'ox-publish)
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
|
||||
;;; Preamble
|
||||
|
||||
(defcustom org-texinfo-filename nil
|
||||
(defcustom org-texinfo-filename ""
|
||||
"Default filename for Texinfo output."
|
||||
:group 'org-export-texinfo
|
||||
:type '(string :tag "Export Filename"))
|
||||
|
@ -202,7 +202,7 @@ a format string in which the section title will be added."
|
|||
|
||||
;;; Headline
|
||||
|
||||
(defcustom org-texinfo-format-headline-function nil
|
||||
(defcustom org-texinfo-format-headline-function 'ignore
|
||||
"Function to format headline text.
|
||||
|
||||
This function will be called with 5 arguments:
|
||||
|
@ -316,7 +316,8 @@ returned as-is."
|
|||
|
||||
;;; Drawers
|
||||
|
||||
(defcustom org-texinfo-format-drawer-function nil
|
||||
(defcustom org-texinfo-format-drawer-function
|
||||
(lambda (name contents) contents)
|
||||
"Function called to format a drawer in Texinfo code.
|
||||
|
||||
The function must accept two parameters:
|
||||
|
@ -325,18 +326,15 @@ The function must accept two parameters:
|
|||
|
||||
The function should return the string to be exported.
|
||||
|
||||
For example, the variable could be set to the following function
|
||||
in order to mimic default behaviour:
|
||||
|
||||
\(defun org-texinfo-format-drawer-default \(name contents\)
|
||||
\"Format a drawer element for Texinfo export.\"
|
||||
contents\)"
|
||||
The default function simply returns the value of CONTENTS."
|
||||
:group 'org-export-texinfo
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.3")
|
||||
:type 'function)
|
||||
|
||||
;;; Inlinetasks
|
||||
|
||||
(defcustom org-texinfo-format-inlinetask-function nil
|
||||
(defcustom org-texinfo-format-inlinetask-function 'ignore
|
||||
"Function called to format an inlinetask in Texinfo code.
|
||||
|
||||
The function must accept six parameters:
|
||||
|
@ -882,12 +880,8 @@ contextual information."
|
|||
CONTENTS holds the contents of the block. INFO is a plist
|
||||
holding contextual information."
|
||||
(let* ((name (org-element-property :drawer-name drawer))
|
||||
(output (if (functionp org-texinfo-format-drawer-function)
|
||||
(funcall org-texinfo-format-drawer-function
|
||||
name contents)
|
||||
;; If there's no user defined function: simply
|
||||
;; display contents of the drawer.
|
||||
contents)))
|
||||
(output (funcall org-texinfo-format-drawer-function
|
||||
name contents)))
|
||||
output))
|
||||
|
||||
;;; Dynamic Block
|
||||
|
@ -1036,7 +1030,7 @@ holding contextual information."
|
|||
;; Create the headline text along with a no-tag version. The
|
||||
;; latter is required to remove tags from table of contents.
|
||||
(full-text (org-texinfo--sanitize-content
|
||||
(if (functionp org-texinfo-format-headline-function)
|
||||
(if (not (eq org-texinfo-format-headline-function 'ignore))
|
||||
;; User-defined formatting function.
|
||||
(funcall org-texinfo-format-headline-function
|
||||
todo todo-type priority text tags)
|
||||
|
@ -1051,7 +1045,7 @@ holding contextual information."
|
|||
(mapconcat 'identity tags ":")))))))
|
||||
(full-text-no-tag
|
||||
(org-texinfo--sanitize-content
|
||||
(if (functionp org-texinfo-format-headline-function)
|
||||
(if (not (eq org-texinfo-format-headline-function 'ignore))
|
||||
;; User-defined formatting function.
|
||||
(funcall org-texinfo-format-headline-function
|
||||
todo todo-type priority text nil)
|
||||
|
@ -1153,7 +1147,7 @@ holding contextual information."
|
|||
(org-element-property :priority inlinetask))))
|
||||
;; If `org-texinfo-format-inlinetask-function' is provided, call it
|
||||
;; with appropriate arguments.
|
||||
(if (functionp org-texinfo-format-inlinetask-function)
|
||||
(if (not (eq org-texinfo-format-inlinetask-function 'ignore))
|
||||
(funcall org-texinfo-format-inlinetask-function
|
||||
todo todo-type priority title tags contents)
|
||||
;; Otherwise, use a default template.
|
||||
|
|
|
@ -626,11 +626,20 @@ e.g. \"stat:nil\""
|
|||
(defcustom org-export-with-sub-superscripts t
|
||||
"Non-nil means interpret \"_\" and \"^\" for export.
|
||||
|
||||
If you want to control how Org displays those characters, see
|
||||
`org-use-sub-superscripts'. `org-export-with-sub-superscripts'
|
||||
used to be an alias for `org-use-sub-superscripts' in Org <8.0,
|
||||
it is not anymore.
|
||||
|
||||
When this option is turned on, you can use TeX-like syntax for
|
||||
sub- and superscripts. Several characters after \"_\" or \"^\"
|
||||
will be considered as a single item - so grouping with {} is
|
||||
normally not needed. For example, the following things will be
|
||||
parsed as single sub- or superscripts.
|
||||
sub- and superscripts and see them exported correctly.
|
||||
|
||||
You can also set the option with #+OPTIONS: ^:t
|
||||
|
||||
Several characters after \"_\" or \"^\" will be considered as a
|
||||
single item - so grouping with {} is normally not needed. For
|
||||
example, the following things will be parsed as single sub- or
|
||||
superscripts:
|
||||
|
||||
10^24 or 10^tau several digits will be considered 1 item.
|
||||
10^-12 or 10^-tau a leading sign with digits or a word
|
||||
|
@ -638,15 +647,14 @@ parsed as single sub- or superscripts.
|
|||
terminated by almost any nonword/nondigit char.
|
||||
x_{i^2} or x^(2-i) braces or parenthesis do grouping.
|
||||
|
||||
Still, ambiguity is possible - so when in doubt use {} to enclose
|
||||
the sub/superscript. If you set this variable to the symbol
|
||||
`{}', the braces are *required* in order to trigger
|
||||
interpretations as sub/superscript. This can be helpful in
|
||||
documents that need \"_\" frequently in plain text.
|
||||
|
||||
This option can also be set with the OPTIONS keyword,
|
||||
e.g. \"^:nil\"."
|
||||
Still, ambiguity is possible. So when in doubt, use {} to enclose
|
||||
the sub/superscript. If you set this variable to the symbol `{}',
|
||||
the braces are *required* in order to trigger interpretations as
|
||||
sub/superscript. This can be helpful in documents that need \"_\"
|
||||
frequently in plain text."
|
||||
:group 'org-export-general
|
||||
:version "24.4"
|
||||
:package-version '(Org . "8.0")
|
||||
:type '(choice
|
||||
(const :tag "Interpret them" t)
|
||||
(const :tag "Curly brackets only" {})
|
||||
|
|
Loading…
Add table
Reference in a new issue