* contrib/lisp/org-export.el (org-export-initial-options): Initialize
correctly some macros when buffer is a clone.
(org-export-expand-macro): Ignore output when macro's value is nil.
* contrib/lisp/org-element.el (org-element-map): Remove included file
expansion part.
* contrib/lisp/org-export.el (org-export-as): Expand include keywords
before executing blocks.
(org-export-expand-include-keyword, org-export-prepare-file-contents):
New functions.
(org-export-included-file, org-export-parse-included-file): Removed
functions.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-keyword): Remove include
keyword handling.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-keyword): Remove include
keyword handling.
Back-ends do not need anymore to take care of #+include keywords.
This change is required since file inclusion can potentially break any
structure. Hence, it should be done before parsing.
* contrib/lisp/org-export.el (org-export-with-current-buffer-copy):
Copy `outline-level' value in the temporary buffer. This fixes
a bug introduced by commit
10b06ae53c.
* contrib/lisp/org-element.el (org-element-item-parser): If item's
first line is empty, ensure contents start at a beginning of line so
that child can be correctly parsed.
* contrib/lisp/org-element.el (org-element-dual-keywords): Move
caption in the dual keywords category.
(org-element--affiliated-re): Change regexp matching a dual keyword.
(org-element-collect-affiliated-keywords): Dual parsed keywords also
get their optional value parsed as a secondary string.
* EXPERIMENTAL/org-e-latex.el (org-e-latex--caption/label-string,
org-e-latex-src-block): Apply caption status change.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--build-caption): Apply
caption status change.
(org-e-ascii--list-listings, org-e-ascii--list-tables): Apply caption
status change. Also use short caption name when available.
The status change implies a syntax change. Captions can now share
#+results: syntax, which mean that they can have a secondary
value. Thus, the following Org snippets are valid, the first two being
equivalent.
#+caption: long name
#+caption[]: long name
#+caption[short name]: long name
* contrib/lisp/org-export.el (org-export-get-inbuffer-options):
Replace macro with an empty string when no value is provided.
Ignore macros with an ill-formed key.
* contrib/lisp/org-export.el (org-export-option-alist): Add filters as
properties in the communication channel. This allows back-end
developers to install their own filters at run time instead of
making them reside in a global variable.
(org-export-data, org-export-as): Read filters from communication
channel instead of global variables.
(org-export-filter-apply-functions): Only accept list of functions.
Also change order of calling: it is now LIFO.
* contrib/lisp/org-export.el (org-export-collect-elements): Change
output to list of elements instead of their beginning position.
Also add an optional predicate argument for fine grain control.
Remove back-end argument.
(org-export-collect-tables, org-export-collect-listings): Apply
changes from previous function.
(org-export-collect-figures): Apply changes from previous function.
Also require a predicate to correctly define the concept of figure.
* contrib/lisp/org-export.el (org-export-get-ordinal): Correctly
handle predicate in `org-export-get-ordinal'. Also allow to count
more than one element type in the same sequence with optional
argument TYPES.
* contrib/lisp/org-element.el (org-element-quote-section-parser):
Assume point is at quote-section beginning.
(org-element-guess-type): Move point to section beginning before
calling for quote-section parser.
(org-element-parse-elements, org-element-current-element): Correctly
detect and parse quote section.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-export-to-latex,
org-e-latex-export-to-pdf): New functions.
* contrib/lisp/org-export.el (org-export-dispatch): Make use of new
functions.
* contrib/lisp/org-export.el (org-export-output-file-name): New function.
(org-export-to-file): Remove post-process and pub-dir arguments. Add
a file argument to specify an output file.
* contrib/lisp/org-export.el (org-export-collect-tree-properties):
Ensure `:headline-offset' is filled before `:headline-numbering'
since the latter depends on the former.
(org-export-collect-headline-numbering): Use headline elements as keys
in the returned alist, instead of just beginning numbers.
(org-export-get-headline-number): Apply key change.
* contrib/lisp/org-export.el (org-export-resolve-fuzzy-link): Now
return the full object (for a target) or element (for an headline)
when a match is found. Also rewrite internals so it doesn't rely
on :headline-alist.
(org-export-collect-tree-properties): Remove :headline-alist property
from communication channel, since `org-export-resolve-fuzzy-link'
doesn't use it anymore. Also store full target objects
in :target-list property, not only raw names. Fix an argument name
mismatch, too.
Previous version of org-export-resolve-fuzzy-link returned beginning
position as the identifier for the headline found, which is pretty
weak when files are included in the parsed buffer.
* contrib/lisp/org-element.el (org-element--element-block-re): New
variable.
(org-element-current-element): New function.
(org-element-parse-elements): Make use of the new specialized function
instead of `org-element-at-point'. Also narrow buffer to current
container (greater element or recursive object) being parsed to
improve search speed.
(org-element-comment-parser): Speed-up parsing for comments at column 0.
(org-element-guess-type): Make comment regexp less restrictive, due to
comment optimizations.
* contrib/lisp/org-export.el (org-export-handle-code): Allow to delay
processing of source code by storing line numbers and references in
text properties attached it.
* contrib/lisp/org-export.el (org-export-collect-options): Default
title is retrieved before in-buffer settings are read. Also, be
more careful about indirect buffers.
* contrib/lisp/org-element.el (org-element-parse-objects): Untabify
strings between objects to avoid any `tab-width' mismatch.
* contrib/lisp/org-element.el (org-element-normalize-contents): No
longer need to handle tabs.