* contrib/lisp/org-contacts.el (org-contacts-complete-name): Compute the
completion-list a bit earlier to prevent an error when there is no
completion available.
* contrib/lisp/org-contacts.el (org-contacts-enable-completion): A
custom boolean variable to enable the completion with
`org-contacts'. Enabled by default.
* contrib/lisp/org-contacts.el: Remove some compile-time warnings by adding the proper declarations.
(org-contacts-anniversaries): Hack around an undefined variable
because I wasn't able to understand how this function works.
(org-contacts-wl-get-from-header-content): Check whether the variable
`wl-summary-buffer-elmo-folder' is bound or not.
* contrib/lisp/org-contacts.el (org-contacts-db-need-update?): New
function to determine whether we need to refresh `org-contacts-db'.
(org-contacts-db): Use `org-contacts-db-need-updated?'.
* contrib/lisp/ox-deck.el: Default org-deck-directories to "./deck.js".
(org-deck-toc): Sync w/ ox-html name change (org-html--toc-text.)
(org-deck-inner-template): Remove duplicate toc generation code.
* contrib/lisp/ox-s5.el: Add inner template to fix duplicate content
div error.
(org-s5-toc): Sync w/ ox-html name change (org-html--toc-text) and
make toc entries static since s5 doesn't support deep linking.
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
* contrib/lisp/ox-deck.el: Change menu key to ?d to avoid conflict
with ox-s5.
(org-deck-toc): Use HTML_CONTAINER_CLASS instead of html-container-class.
(org-deck-headline): Simplify code to use HTML_CONTAINER_CLASS
directly, and use org-element-get-relative-level.
(org-deck-item): Use uppercase property.
* contrib/lisp/ox-s5.el (s5): Add configuration variables for S5 meta data.
(org-s5--build-meta-info): ditto.
(org-s5-headline): Simplify code to use HTML_CONTAINER_CLASS directly,
and use org-element-get-relative-level.
(org-s5-plain-list): Use uppercase property.
(org-s5-template-alist): Fix bug. (Don't try and substring nil.)
* lisp/ox-html.el (org-html-format-headline--wrap, org-html-headline):
Use :CUSTOM_ID, not :custom-id.
* contrib/lisp/ox-deck.el (org-deck-toc): Use :CUSTOM_ID,
not :custom-id.
* lisp/ox-latex.el (org-latex-property-drawer): Remove function.
* contrib/lisp/ox-groff.el (org-groff-property-drawer): Remove
function.
This changes ensures that:
paragraph
# comment
another paragraph
will be exported as:
paragraph
another paragraph
and not as:
paragraph
another paragraph
It only applies on back-end where empty lines are meaningful (e.g. not
html).
* contrib/lisp/ox-koma-letter.el (org-koma-letter-template): Allow to
span documentclass options accross multiple lines in template.
* lisp/ox-beamer.el (org-beamer-template): Allow to span documentclass
options accross multiple lines in template.
* lisp/ox-latex.el (org-latex-template): Allow to span documentclass
options accross multiple lines in template.
Thanks to Michael Strey for reporting this bug.
* contrib/lisp/org-contacts.el: Use `org-agenda-prefix-format' to
format entry instead of unused org-agenda-format.
Signed-off-by: Rüdiger Sonderfeld <ruediger@c-plusplus.de>
* contrib/lisp/org-contacts.el (org-contacts-message-complete-function):
Remove `completion-in-region--postch' from `post-command-hook'
because it doesn't (seem?) do anything really useful.
* org-contacts.el: Improve the completion part:
- When a group is found, it now replaces the name of the group by the
addresses of the member of the group rather than appending the
addresses.
- One can now complete on all part of an address and not only on the
beginning of the name.
* ox-koma-letter.el (org-koma-letter-template): rename
org-export-latex to org-latex for package lists.
These variable names were changed with the merge of the new exporter.
* lisp/org-macs.el (org-if-unprotected, org-if-unprotected-1,
org-if-unprotected-at): Removed macros.
(org-re-search-forward-unprotected): Removed function.
* lisp/org.el (org-format-latex): Remove reference to `org-protected'.
* lisp/org-list.el (org-list-struct): Remove reference to
`org-example' and `org-protected'.
* lisp/org-footnote.el (org-footnote-at-reference-p): Remove reference
to `org-protected'.
* lisp/org-capture.el (org-capture-fill-template): Remove reference to
`org-protected'.
* contrib/lisp/org-wikinodes.el (org-wikinodes-process-links-for-export):
Remove reference to `org-protected' value.
These text properties were used by the old export framework. They are
not needed anymore.
* contrib/lisp/org-mime.el (org-mime-htmlize, org-mime-compose): Use
new exporter.
* lisp/ob-haskell.el (org-babel-haskell-export-to-lhs): Use new
exporter.
* lisp/ob-latex.el (org-babel-execute:latex): Use new exporter.
* lisp/ob-org.el (org-babel-execute:org): Use new exporter.
* lisp/org-agenda.el (org-agenda-menu, org-agenda-write): Use new
iCalendar export back-end.
* lisp/org-table.el (org-table-export, orgtbl-export): Remove
dependency on `org-exp' library.
(org-table-clean-before-export): New function.
(org-table-colgroup-info): New variable.
(orgtbl-to-html): Use to new HTML export back-end.
* lisp/org.el (org-modules): Remove modules relative to obsolete
export framework and add those relative to the new one.
(org-create-formula-image-with-dvipng, org-format-latex
org-create-formula-image-with-imagemagick): Use new exporter.
(org-indent-line): INCLUDE keywords are indented like regular
keywords.
(org-mode-map): Bind C-c C-e to new export dispatcher.
(org-menu): Install new exporter in menu.
* contrib/lisp/org-e-latex.el (org-e-latex-date-timestamp-format): New
variable.
(org-e-latex-date-format): Removed variable.
(org-e-latex-template): Allow to provide a format string iff date
consists in a single timestamp.
* contrib/lisp/org-export.el (org-export-get-footnote-definition):
Provide a fallback definition when none can be found.
* contrib/lisp/org-e-latex.el (org-e-latex-footnote-reference): Revert
change made in 30ef385ee0 since it is
now handled at the export framework level.
* testing/lisp/test-org-export.el: Add test.
* contrib/lisp/org-export.el (org-export-filters-alist): Install a new
filter to modify export options.
(org-export-filter-options-functions): New variable.
(org-export-as): Call new filter.
* contrib/lisp/org-export.el (org-export--get-subtree-options): When
point is at an headline and subtree export is called, make sure
export properties are extracted from parent headline.
* testing/lisp/test-org-export.el: Add test.
* org-depend.el (org-depend-trigger-todo): Fix bug: use
`org-refresh-properties'. Also fix some compiler warnings.
Thanks to Karl Voit for reporting this.
* contrib/lisp/org-e-latex.el: Added an option, :texht, and a
defcustom, org-e-latex-with-hyperref, to hold its default value.
It is possible to configure the exporter to omit the hyperref package,
which defines the \hypersetup{} command.
* contrib/lisp/org-e-latex.el (org-e-latex--inline-image): Added an
attribute, :comment-include, to toggle commenting the \includegraphics
call.
Journals sometimes ask for a list of figure captions.
* etc/schema/od-schema-v1.2-os.rnc: OASIS standard
* etc/schema/od-manifest-schema-v1.2-os.rnc: OASIS standard
* etc/schema/schemas.xml: Fix uri to rnc files.
* lisp/org-odt.el (org-export-odt-schema-dir): Modified to
accommodate change in rnc file names.
* contrib/lisp/org-e-odt.el (org-e-odt-schema-dir): Modified
to accommodate change in rnc file names.
* contrib/lisp/org-panel.el: don't setq undefined and otherwise unused
variable orgpan-this-panel-window
* contrib/lisp/org-panel.el (orgpan-check-panel-mode): fix format
string of (error)
* contrib/lisp/org-panel.el: declare variables
viper-emacs-state-mode-list and viper-new-major-mode-buffer-list
which are defined in viper.el
TINYCHANGE
* contrib/lisp/org-export.el (org-export-options-alist): Fix
docstring.
(org-export-as): Remove NOEXPAND argument.
(org-export-to-buffer, org-export-to-file): Apply argument removal.
This argument is not needed since a function removing macros, babel
code and include keywords can be added to
`org-export-before-processing-hook'.
* org-html.el (org-html-export-list-line): Add CSS classes to
these list HTML tags: <ul> <dl> and <ol>.
* contrib/lisp/org-e-html.el (org-e-html-begin-plain-list): Add
CSS classes to these list HTML tags: <ul> <dl> and <ol>.
* contrib/lisp/org-e-texinfo.el (org-e-texinfo-link): Texinfo uses the
menu/TOC names for finding cross-references. Use the menu-title as
the link destination. Also ensures link descriptions are used as
link titles.
* contrib/lisp/org-e-beamer.el (org-e-beamer-export-as-latex): Ignore
`org-export-show-temporary-export-buffer' when export is
asynchronous.
* contrib/lisp/org-e-html.el (org-e-html-export-as-html): Ignore
`org-export-show-temporary-export-buffer' when export is
asynchronous.
Export output always goes in the Export Stack.
* contrib/lisp/org-export.el (org-export-async-stack,
org-export-async-debug, org-export-in-background,
org-export-async-init-file, org-export-stack-mode-map): New
variables.
(org-export-async-start): New macro.
(org-export--stack-source-at-point, org-export--stack-refresh,
org-export-add-to-stack, org-export--stack-remove,
org-export--stack-view, org-export--stack-clear,
org-export-stack, org-export-copy-buffer,
org-export--generate-copy-script): New functions.
(org-export-dispatch, org-export-dispatch-ui): Allow to toggle
asynchronous export.
(org-export-with-buffer-copy): Renamed from
`org-export-with-current-buffer-copy'.
(org-export-execute-babel-code): Use new function to copy a buffer.
(org-export-as): Remove all text properties from output so it still
can be sent to the original process.
* contrib/lisp/org-e-html.el (org-e-html-fontify-code): Activating
major mode before inserting contents avoid problem of initial
visibility for an Org buffer.
* contrib/lisp/org-export.el (org-export-get-previous-element,
org-export-get-next-element): Allow to retrieve all previous/next
exportable objects by specifying a non-nil, non positive integer
argument.
* testing/lisp/test-org-export.el: Add tests.
* contrib/lisp/org-e-latex.el (org-e-latex--math-table): Contiguous
tables sharing the same math mode are wrapped within the same
environment.
This patch will allow to write:
#+label: I_2
#+attr_latex: :mode math :environment bmatrix
| a | b |
|---+---|
| c | d |
#+attr_latex: :mode math :environment bmatrix :math-prefix "\\times"
| 1 | 0 |
|---+---|
| 0 | 1 |
#+attr_latex: :mode math :environment bmatrix :math-prefix "="
| 1 | 0 |
|---+---|
| 0 | 1 |
#+attr_latex: :mode math :environment bmatrix :math-prefix "\\times"
| a | b |
|---+---|
| c | d |
#+attr_latex: :mode math :environment bmatrix :math-prefix "="
| a | b |
|---+---|
| c | d |
and get:
\begin{equation}
\label{I_2}
\begin{bmatrix}
a & b \\
c & d \\
\end{bmatrix}
\times\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix}
=\begin{bmatrix}
1 & 0 \\
0 & 1 \\
\end{bmatrix}
\times\begin{bmatrix}
a & b \\
c & d \\
\end{bmatrix}
=\begin{bmatrix}
a & b \\
c & d \\
\end{bmatrix}
\end{equation}
* contrib/lisp/org-e-ascii.el (org-e-ascii-timestamp): Use new tool.
* contrib/lisp/org-e-groff.el (org-e-groff-timestamp): Use new tool.
* contrib/lisp/org-e-html.el (org-e-html-timestamp): Use new tool.
* contrib/lisp/org-e-latex.el (org-e-latex-timestamp): Use new tool.
* contrib/lisp/org-e-texinfo.el (org-e-texinfo-timestamp): Use new
tool.
* contrib/lisp/org-e-latex.el (org-e-latex--inline-image): Rename from
`org-e-latex-link--inline-image'. Use new attributes.
(org-e-latex-link): Use new function.
* contrib/lisp/org-e-latex.el (org-e-latex-table-matrix-macros,
org-e-latex-default-table-mode): New variables.
(org-e-latex-tables-verbatim): Removed variable.
(org-e-latex-tables-booktabs): Update docstring.
(org-e-latex--align-string, org-e-latex--org-table,
org-e-latex--table.el-table): Rename functions from, respectively
`org-e-latex-table--align-string', `org-e-latex-table--org-table' and
`org-e-latex-table--table.el-table'. Use new attributes.
(org-e-latex-table,org-e-latex-table-row): Use new attributes.
(org-e-latex--math-table): New function.
(org-e-texinfo--generate-menu-items): Use optional title in menu if
present.
(org-e-texinfo-headline): Use optional title in node entry if present.
(org-e-texinfo--generate-menu-list): Omit headlines with :noexport:
tag when generating menu entries.
* contrib/lisp/org-export.el (org-export--get-subtree-options): Store
value of options with `split' behaviour as a list of strings, not
simply as a string. Small refactoring.
* testing/lisp/test-org-export.el: Add tests.
* contrib/lisp/org-e-beamer.el (org-e-beamer-environments-special):
Add "fullframe" environment. Change access key for "againframe".
(org-e-beamer--frame-level): "fullframe" environment also sets the
frame level for the tree.
(org-e-beamer--format-frame): Ignore headline title when environment
is "fullframe".
(org-e-beamer-select-environment): Change access key for "againframe".
* contrib/lisp/org-e-beamer.el (org-e-beamer-environments-special):
Add "columns" as a new special environment.
(org-e-beamer--format-block): Allow options in columns environment
when explictly requested as a BEAMER_env property. Small refactoring.
* contrib/lisp/org-e-latex.el: Floating tables get a \centering
declaration, otherwise the table get wrapped in \begin{center}
and \end{center} environment.
Thanks to Andreas Leha for reporting it.
TINYCHANGE
* contrib/lisp/org-export.el (org-export-define-derived-backend): Add
`:parent' property to derived backend.
(org-export-derived-backend-p): New function.
* testing/lisp/test-org-export.el: Add tests.
This function can be useful in filters implemation. I.e.
(defun my-filter (contents backend info)
(when (memq backend '(e-latex e-beamer some-derived-backend-from-latex))
...))
can be replaced with:
(defun my filter (contents backend info)
(when (org-export-derived-backend-p backend 'e-latex)
...))
* contrib/lisp/org-e-latex.el: Replaced a set of \begin{center}
and \end{center} environment markers with a \centering
declaration.
Using both \begin{table} and \being{center} environments leads to double
the vertical space around the float, whereas \centering adds none.
TINYCHANGE
* contrib/lisp/org-export.el (org-export-define-backend,
org-export-define-derived-backend): Modify backend properties if
backend is already registered.
(org-export-registered-backends): Use defvar instead of defconst so
a reload doesn't reset it.
* contrib/lisp/org-export.el (org-export-registered-backends): New
variable.
(org-export-define-backend, org-export-define-derived-backend): Use
new variable. Also redefine how sub-menus are defined.
(org-export-backend-filters, org-export-backend-menu,
org-export-backend-options, org-export-backend-translate-table): New
functions.
(org-export-get-environment, org-export--parse-option-keyword,
org-export--get-subtree-options, org-export--get-inbuffer-options,
org-export--get-global-options, org-export-install-filters,
org-export-with-backend): Access to data stored in new variable.
(org-export-dispatch-ui): Display sub-menus according to new
definition.
(org-export-dispatch-menu-entries): Removed variable.
* contrib/lisp/org-e-beamer.el: Use new sub-menu definition.
(org-e-beamer--format-section, org-e-beamer-item,
org-e-beamer-keyword): Use `org-export-with-backend' instead of
relying on removed variables.
* testing/lisp/test-org-export.el: Update tests.
This patch gets rid of "invisible" variables, that is variables
defvar'ed within a macro.
* contrib/lisp/org-e-publish.el (org-e-publish-collect-index): Do not
store text properties from strings in the cache. Instead focus on
necessary data only.
(org-e-publish-index-generate-theindex): Apply changes to previous
function.
* contrib/lisp/org-e-texinfo.el (org-e-texinfo--sanitize-headline-contents,
org-e-texinfo--generate-menu-list): Provide communication channel as
as optional argument so `org-element-map' can properly skip ignored
elements.
(org-e-texinfo--find-copying, org-e-texinfo-headline,
org-e-texinfo-make-menu, org-e-texinfo-table-column-widths): Tiny
refactoring.
* contrib/lisp/org-e-beamer.el (org-e-beamer-template): Output "\date{}"
when :with-date is nil.
* contrib/lisp/org-e-latex.el (org-e-latex-template): Make sure output
contains "\date{}" when date is empty.
* contrib/lisp/org-export.el (org-export-with-date): New variable.
(org-export-options-alist): Use new variable.
* contrib/lisp/org-e-ascii.el (org-e-ascii-template--document-title):
Check `:with-date' property in communication channel.
* contrib/lisp/org-e-beamer.el (org-e-beamer-template): Check
`:with-date' property in communication channel.
* contrib/lisp/org-e-groff.el (org-e-groff--mt-head): Check
`:with-date' property in communication channel.
(org-e-groff-date-format): Remove variable.
* contrib/lisp/org-e-html.el (org-e-html--build-meta-info,
org-e-html--build-preamble, org-e-html--build-postamble): Check
`:with-date' property in communication channel.
(org-e-html-format-date): Remove variable.
* contrib/lisp/org-e-latex.el (org-e-latex-template): Check
`:with-date' property in communication channel.
contrib/lisp/org-e-man.el: Do not redefine DATE keyword.
* contrib/lisp/org-export.el (org-export-get-category):
`org-entry-properties' is over-zealous when it comes to "CATEGORY"
property. Ignore its "???" return value, which only means it wasn't
able to find an appropriate category.
* contrib/lisp/org-export.el (org-export-before-processing-hook): New
variable.
(org-export-as): Run a hook just before expanding include keywords and
macros, and evaluating Babel blocks.
* testing/lisp/test-org-export.el: Add test.
* contrib/lisp/org-export.el (org-export-get-previous-element,
org-export-get-next-element): Correctly retrieve previous and next
object, if any, in secondary strings.
* testing/lisp/test-org-export.el: Add tests.
* contrib/lisp/org-export.el (org-export-as): Expand correctly
{{{title}}} and such when they already contain a regular macro.
This is done by expanding macros in two steps: at first regular
macros, then document specific macros.
(org-export-expand-macro): Remove function.
* testing/lisp/test-org-export.el: Add test.
* contrib/lisp/org-export.el (org-export-as):
`org-current-export-file' should refer to current, temporary, buffer
containing included contents, not to original buffer with include
keywords.
(org-export-with-current-buffer-copy): Buffer copy must contain the
whole buffer, possibly narrowed to a proper part, not only the
narrowed part.
* testing/lisp/test-org-export.el: Tweak tests.
* contrib/lisp/org-export.el (org-export-options-alist): Add an option
item to toggle smart quotes during export.
(org-export-with-smart-quotes, org-export-smart-quotes-alist,
org-export-smart-quotes-regexps): New variables.
(org-export-activate-smart-quotes): New function.
(org-export-data): Remove residual text properties.
* testing/lisp/test-org-export.el: Add tests.
* contrib/lisp/org-e-texinfo.el (org-e-texinfo-compile): Mirror recent
changes about base filename and default-directory made to
`org-e-latex-compile'.
* contrib/lisp/org-e-groff.el (org-e-groff-compile): Mirror recent
changes about base filename and default-directory made to
`org-e-latex-compile'.
* contrib/lisp/org-e-man.el (org-e-man-compile): Mirror recent changes
about base filename and default-directory made to
`org-e-latex-compile'.
* contrib/lisp/org-e-latex.el (org-e-latex-pdf-process): Update
docstring.
(org-e-latex-compile): "%b" is replaced with base filename, that is
filename without directory and extension.
* contrib/lisp/org-export.el (org-export-dispatch-ui): Make sure that
window displaying UI is tall enough. This fixes a bug where only
a part of the menu was displayed.
* contrib/lisp/org-e-latex.el (org-e-latex-compile): Fix compilation
when default-directory from current buffer doesn't match directory
from file being compiled. Small refactoring, too.
Thanks to Robert Klein for reporting the problem and suggesting a fix.
* contrib/lisp/org-export.el (org-export-dispatch-use-expert-ui):
Complete docstring.
(org-export-dispatch): Fix docstring. Clean dispatch buffer, if any,
each time the function is called.
(org-export-dispatch-ui): Make sure window containing dispatch buffer
is active when user is prompted for a key. Also remove cursor from
view.
(org-export-dispatch-action): Ring a bell when a wrong key is pressed.
In regular UI, also inform the user by a message.
* contrib/lisp/org-export.el (org-export-as): Expand include keywords
before macros. This allows to specify macro templates in the
included file.
* testing/examples/macro-templates.org: New file for testing purposes.
* testing/lisp/test-org-export.el: Add test.
* contrib/lisp/org-e-ascii.el (org-e-ascii-publish-to-ascii,
org-e-ascii-publish-to-latin1, org-e-ascii-publish-to-utf8): New
functions.
* contrib/lisp/org-e-html.el (org-e-html-publish-to-html): New
function.
* contrib/lisp/org-e-latex.el (org-e-latex-publish-to-latex,
org-e-latex-publish-to-pdf): New functions.
* contrib/lisp/org-e-publish.el (org-e-publish-org-to-latex,
org-e-publish-org-to-pdf, org-e-publish-org-to-ascii,
org-e-publish-org-to-latin1, org-e-publish-org-to-utf8,
org-e-publish-org-to-html): Remove functions.
Each back-end can define its own publishing functions. This patch
avoids to clutter org-e-publish.el.
* contrib/lisp/org-e-publish.el (org-e-publish-org-to-pdf): Don't
expect every file from a project to sit in :base-directory.
(org-e-publish-org-to): Make publishing directory optional.
* contrib/lisp/org-export.el: Correct reference to non-existing source
file, org-exp-blocks has been removed and the imported function is
now in ob-exp.
* contrib/lisp/org-export.el (org-export-define-backend,
org-export-define-derived-backend): Make sure a given entry won't be
added to menu more than once.
* contrib/lisp/org-e-publish.el (org-e-publish-org-to-pdf): First
publish in base directory, then move results to publishing
directory. It allows to correctly publish a document with images
generated by some Babel code.
* contrib/lisp/org-export.el (org-export-expand-macro): New function.
(org-export-as): Use new function.
* lisp/org.el (org-macro-expand, org-macro-replace-all): Change
signature. The function now accepts an alist of templates so it
doesn't have to rely only on `org-macro-templates'.
(org-macro-initialize-templates): {{{date}}} is not anymore an alias
for {{{time}}}. During export, it will provide the value stored in
DATE keyword instead.
* testing/lisp/test-org-export.el: Add tests.
* testing/lisp/test-org.el: Update tests.
* contrib/lisp/org-export.el (org-export-expand-include-keyword): Use
new functions to comma escape contents of included files when in an
example or a src block.
* org-e-odt.el (org-e-odt-styles-dir): Try more directories.
Don't throw an error, just send a message.
(org-e-odt): Fix a bug about deactivating an advice that was
activated by org-odt.el, not org-e-odt.el.
Thanks to Nick Dokos for reporting this.
* lisp/org-element.el (org-element-example-block-parser,
org-element-src-block-parser): Store value of example-blocks and
src-blocks unescaped.
(org-element-example-block-interpreter,
org-element-src-block-interpreter): Escape value again when storing
it.
* contrib/lisp/org-export.el (org-export-unravel-code): Don't clean
commas from code since org-element already took care of it.
* testing/lisp/test-org-export.el: Update test.
* testing/lisp/test-org-element.el: Add tests.
* lisp/org-element.el (org-element-object-restrictions): Allow links
in caption. Also allow inline-src-blocks and inline-babel-calls.
* contrib/lisp/org-e-ascii.el (org-e-ascii--unique-links): Handle
links in captions.
(org-e-ascii--describe-links): Small refactoring.
(org-e-ascii-template--document-title): Handle links in document
properties.
* lisp/org-element.el (org-element-parsed-keywords): Remove document
properties from the value.
(org-element-dual-keywords): Fix docstring.
(org-element-document-properties): New variable
* contrib/lisp/org-export.el (org-export--get-subtree-options,
org-export--get-inbuffer-options, org-export--get-global-options):
Use new variable instead of parsed keywords.
* contrib/lisp/org-e-ascii.el (org-e-ascii-indented-line-width,
org-e-ascii-paragraph-spacing): New variables.
(org-e-ascii-paragraph): Use a new variable.
(org-e-ascii-filter-paragraph-spacing): New function.
* contrib/lisp/org-e-html.el (org-e-html--build-preamble): Renamed
from `org-e-html-preamble'. Properly call user-provided preamble
function when appropriate. Refactor code.
(org-e-html--build-postamble): Renamed from `org-e-html-postamble.
Properly call user-provided preamble function when appropriate.
Refactor code.
(org-e-html-template): Small refactoring.
(org-e-html--translate): Use :html entries in `org-export-dictionary'
instead of :utf-8.
(org-e-html--build-meta-info): Renamed from `org-e-html-meta-info'.
Add docstring.
(org-e-html--build-style): Renamed from `org-e-html-style'. Add
docstring.
(org-e-html--build-mathjax-config): Renamed from
`org-e-html-mathjax-config'. Add docstring.
* org-e-groff.el (e-groff):
Removed quote at the beginning of the list of cons containing
the backend defition that is being passed to `org-export-define-backend'.
* contrib/lisp/org-e-groff.el (org-e-groff-latex-environment): Renamed
from `org-e-groff-groff-environment'.
(org-e-groff-latex-fragment): Renamed from
`org-e-groff-groff-fragment'.
* org-wikinodes.el
(org-wikinodes-clear-directory-targets-cache): Rename from
mispelled name.
(org-wikinodes-follow-link)
(org-wikinodes-clear-cache-when-on-target): Use the correct
name.
* lisp/org-element.el (org-element-center-block-parser,
org-element-drawer-parser, org-element-dynamic-block-parser,
org-element-footnote-definition-parser,
org-element-plain-list-parser, org-element-quote-block-parser,
org-element-special-block-parser, org-element-babel-call-parser,
org-element-comment-parser, org-element-comment-block-parser,
org-element-example-block-parser, org-element-export-block-parser,
org-element-fixed-width-parser, org-element-horizontal-rule-parser,
org-element-keyword-parser, org-element-latex-environment-parser,
org-element-paragraph-parser, org-element-property-drawer-parser,
org-element-src-block-parser, org-element-table-parser,
org-element-verse-block-parser): Change signature. Now use an
additional argument: affiliated.
(org-element--current-element): Skip affiliated keywords and pass them
as an argument to parsers. It prevents to walk through these
keywords twice: the first time to get to the first line of the
element, and a second time to collect the affiliated keywords.
* contrib/lisp/org-export.el (org-export-get-caption): Update function
since multiple affiliated keywords are now reversed.
* testing/lisp/test-org-element.el: Update tests.
* contrib/lisp/org-e-latex.el (org-e-latex--caption/label-string,
org-e-latex--wrap-label, org-e-latex-latex-environment):
Consistently call `org-export-solidify-link-text' so references can
match labels.
* contrib/lisp/org-e-latex.el: new customizable org-e-latex-known-errors
is an alist of possible errors, taken from org-e-latex--collect-errors
* contrib/lisp/org-e-latex.el (org-e-latex--collect-errors):
More concise code.
The previous explicit search for errors is replaced by an iteration
over the alist org-e-latex-known-errors.
* contrib/lisp/org-export.el (org-export-dispatch-ui): Do not use same
buffer name as previous export dispatcher. Also make sure the
temporary buffer is deleted once the export is done.
Handle enumeration more robustly. Numbered OpenDocument formula no
longer uses a table for typesetting of formula and it's number.
Also some renaming and moving around.
* contrib/lisp/org-e-ascii.el (org-e-ascii--build-caption,
org-e-ascii--list-listings, org-e-ascii--list-tables): Use new
caption tool.
* contrib/lisp/org-e-latex.el (org-e-latex--caption/label-string): New
signature. Use new caption tool.
(org-e-latex-link--inline-image, org-e-latex-src-block,
org-e-latex-table--org-table): Apply signature change.
* contrib/lisp/org-md.el (org-md-link): Use new caption tool.
* contrib/lisp/org-e-latex.el (org-e-latex-toc-command): New variable.
(org-e-latex-template): Use new variable.
Thanks to Thomas S. Dye for providing the patch.
* contrib/lisp/org-e-ascii.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-beamer.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-groff.el (e-groff): Use
`org-export-define-backend'. Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-html.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-latex.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-man.el: Use `org-export-define-backend'. Add an
entry for `org-export-dispatch'.
* contrib/lisp/org-e-odt.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-e-texinfo.el: Use `org-export-define-backend'. Add an
entry for `org-export-dispatch'.
* contrib/lisp/org-md.el: Add an entry for `org-export-dispatch'.
* contrib/lisp/org-export.el (org-export-define-backend):
Add :menu-entry keyword.
(org-export-define-derived-backend): Add :menu-entry
and :sub-menu-entry keywords.
(org-export-dispatch-menu-entries): New variable.
(org-export-dispatch): Define a new interface.
(org-export-dispatch-ui): Rewrite function.
(org-export-dispatch-action): New function.
Every back-end defined through `org-export-define-backend' or
`org-export-define-derived-backend' can specify a menu entry for
`org-export-dispatch'. Navigating the menu is now a two levels
process.
* contrib/lisp/org-e-odt.el (org-e-odt--translate-description-lists):
This is a developer filter, which should be handled by
`org-export-define-backend'. Also, such filters do not require
a back-end check.
`org-export-*-functions' are user-oriented variables.
* contrib/lisp/org-e-beamer.el (org-e-beamer-environments-special):
Make "againframe" an hard-coded environment.
(org-e-beamer-headline): Handle "againframe" environment.
(org-e-beamer-select-environment): Provide support for "againframe"
environments.
A list marked with non-nil `:list-table' attribute will be deemed as a
list-table. A typical list-table will look like this:
,----
| #+attr_odt :list-table t
| - Row 1
| - 1.1
| - 1.2
| - 1.3
| - Row 2
| - 2.1
| - 2.2
| - 2.3
`----
Also fix regression in indented table caused by recent `section'
changes.
* org-e-groff.el
(org-e-groff-inline-image-rules): Added PNG and JPG as valid
inline suffixes.
(org-e-groff-raster-to-ps): Variable that contains the command
to execute raster to eps conversion.
(org-e-groff--letter-head): Updated logic to handle empty
FROM/TO in letter classes.
(org-e-groff-link--inline-image): Added logic to process
raster images.
* contrib/lisp/org-export.el (org-export--get-inbuffer-options): Allow
in-buffer keywords at any column.
`org-make-options-regexp' enforces keywords at column 0. This is an
unnecessary restriction, as we can imagine the following Org buffer:
* Export Setup :noexport:
#+AUTHOR: Me
#+DATE: 29/03/2012
* Headline 1
...
* contrib/lisp/org-export.el (org-export--install-letbind-maybe): If
a variable is bound two times in the buffer, be sure to set its
value to the last bound. Use correct function to confirm binding.
Allow keyword to start on any column.
* testing/lisp/test-org-export.el: Add tests.
* contrib/lisp/org-export.el (org-export-define-backend): Update
docstring.
(org-export-special-keywords): Remove "MACRO".
(org-export--get-inbuffer-options, org-export--get-buffer-attributes):
Remove internal macro handling.
(org-export-as): Use external tool instead.
(org-export-expand-macro): Remove function.
* contrib/lisp/org-e-ascii.el (org-e-ascii-macro): Remove function.
* contrib/lisp/org-e-groff.el (org-e-groff-macro): Remove function.
* contrib/lisp/org-e-html.el (org-e-html-macro): Remove function.
* contrib/lisp/org-e-latex.el (org-e-latex-macro): Remove function.
* contrib/lisp/org-e-man.el (org-e-man-macro): Remove function.
* contrib/lisp/org-e-odt.el (org-e-odt-macro): Remove function.
* contrib/lisp/org-e-texinfo.el (org-e-texinfo-macro): Remove
function.
* testing/lisp/test-org-export.el: Remove tests.
Since macros are now expanded before parsing (and produce Org syntax),
back-ends will never see them (unless NO-EXPAND argument from
`org-export-as' is non-nil, which isn't the case for any back-end so
far).
* contrib/lisp/org-e-beamer.el (org-e-beamer-template): Allow
inserting class option when there was none.
* contrib/lisp/org-e-latex.el (org-e-latex-template): Allow inserting
class option when there was none.
Thanks to Fabrice Popineau for suggesting this.
* contrib/lisp/org-e-texinfo.el (org-e-texinfo-table-row): Check if the row is part of the first row group. If it is treat it as @headitem rather than a normal @item.
* contrib/lisp/org-e-html.el (org-e-html-special-block): convert LaTeX
markup to HTML
This function had not been modified from its org-e-latex-special-block original
so with #+BEGIN_ORG for example you would get \begin{org}...\end{org}
in the output instead of <div class="org">...</div>.
TINYCHANGE
* contrib/lisp/org-export.el (org-export-with-statistics-cookies): New
variable.
(org-export-options-alist): Use new variable.
(org-export--skip-p): Handle new option.
* testing/lisp/test-org-export.el: Add test.
1. Use element translation for description lists.
2. Handle low-level headlines.
3. Handle tables within listified headlines.
Some crude changes for creating references to a list item.
Also other misc changes.
* contrib/lisp/org-export.el (org-export-dictionary): Flesh out
dictionary.
(org-export-translate): Allow for a :default charset in order to
simplify dictionary completion.
* lisp/org-element.el (org-element-link-type-is-file): New variable.
(org-element-link-parser): Extract search option and application in
"file"-type links.
* contrib/lisp/org-e-html.el (org-e-html-link): Remove components
extraction since this in now done in `org-element-link-parser'.
* contrib/lisp/org-e-odt.el: Remove components extraction since this
in now done in `org-element-link-parser'.
* contrib/lisp/org-e-texinfo.el (org-e-texinfo-link): Remove
components extraction since this in now done in
`org-element-link-parser'.
* contrib/lisp/org-e-latex.el (org-e-latex-link): Remove components
extraction since this in now done in `org-element-link-parser'.
* contrib/lisp/org-e-man.el (org-e-man-link): Remove components
extraction since this in now done in `org-element-link-parser'.
* contrib/lisp/org-e-groff.el (org-e-groff-link): Remove components
extraction since this in now done in `org-element-link-parser'.
* contrib/lisp/org-md.el (org-md-link): Remove components extraction
since this in now done in `org-element-link-parser'.
* testing/lisp/test-org-element.el: Add tests.
* contrib/lisp/org-export.el (org-export-filter-apply-functions): Nil
value from a filter means filter will be skipped. To ignore the
current element or object, the filter has to return the empty string
instead.
This change is done to ease filter writing. When writing
a backend-specific filter (and I guess most are), there's no more need
for the somewhat contrived:
(if (not (eq backend 'e-latex)) data
... filter's job...)
A more straightforward:
(when (eq backend 'e-latex)
... filter's job...)
is now enough.
On the other hand, it is not possible anymore to specify 'ignore as
a filter to ignore every element or object of a given type. To
achieve that goal, one can now write, for example:
(add-to-list 'org-export-filter-example-block-functions
(lambda (value backend info)
(when (eq backend 'e-html) "")))
It will ignore every example block in the `e-html' export back-end.
* contrib/lisp/org-export.el (org-export-collect-headlines): By
default, limit depth of headline collection to last headline level.
* contrib/lisp/org-e-html.el (org-e-html-toc): Small refactoring.
* contrib/lisp/org-e-html.el (org-e-html-toc): Accept non numeric
values for depth.
(org-e-html-template): Call previous function even when depth isn't
a number.
(org-e-html-keyword): Call previous function even when depth isn't
a number. Also react on #+HTML keywords, not #+LATEX.
and remove invalid characters from menu items
* contrib/lisp/org-e-texinfo.el (org-e-texinfo--sanitize-menu): Remove
invalid characters from menu entries and nodes.
(org-e-texinfo--sanitize-contents): Ensure @ { and } are properly
escaped in text and headlines.
(org-e-texinfo--generate-menu-items): Strip invalid characters from
menu titles.
(org-e-texinfo-fixed-width): Escape @ { and } in fixed-width
environments.
(org-e-texinfo-headline): Ensure nodes do not have invalid characters
and escape @ { and } in section titles.
(org-e-texinfo-plain-text): Use proper escape character for @ { and }.
exporting to ensure info can process them properly
* contrib/lisp/org-e-texinfo.el (org-e-texinfo--generate-menu-items):
Use org-e-texinfo--sanitize-headline to ensure markup is stripped
before being used for sectioning and menu information. Nodes and
menus can fail because of formatting and section titles do not show
any formatting when viewed in an info-viewer.
(org-e-texinfo--sanitize-headline): Wrapper function for
org-e-texinfo--sanitize-healine-contents
(org-e-texinfo--sanitize-headline-contents): Strips markup from
headlines. It treats content recursively to ensure nested formatting
is removed as well.
* contrib/lisp/org-e-texinfo.el (org-e-texinfo--generate-detailed): Do
not run if there are no headlines in the file.
(org-e-texinfo-template): Generate menu and detailed menu in initial
let form. Only insert them if non-empty.
(org-e-texinfo-headline): Ensure that %'s are properly escaped in
@node's to prevent parse errors.
(org-e-texinfo-make-menu): Do not insert "detailed" if menu is empty,
return empty entry instead.
Thanks to Bastien for reporting the failures with headline-less files
and simple "%" in the headline.
* org-notmuch.el (org-notmuch-store-link)
(org-notmuch-search-store-link): Use `concat' instead of
`org-make-link'.
* org-git-link.el (org-git-create-git-link)
(org-git-insert-link-interactively): Ditto.
* org-bookmark.el (org-bookmark-store-link): Ditto.
Thanks to Friedrich Delgado for reporting this.
* contrib/lisp/org-e-texinfo.el: Provide the ability to generate .texinfo and .info files from an Org-Mode file.
Export can be called using either (org-e-texinfo-export-to-texinfo) to generate a .texinfo file, or (org-e-texinfo-export-to-info) to additionally compile the .texinfo file into a .info file.
* contrib/lisp/org-e-beamer.el (org-e-beamer--format-frame): In
a fragile frame, append a white space to contents in order to
prevent Beamer from eating first word when appending "\par".
* org-e-groff.el (org-e-groff-classes): Added
letter classes.
(org-e-groff-special-tags): New variable to identify special tags.
(org-e-groff--get-tagged-content): New function to retrieve
special tagged content.
(org-e-groff--mt-head): New function to create "memo" type headers.
(org-e-groff--letter-head): New function to create "letter" type headers.
(org-e-groff-template): Handle the "letter" type.
(org-e-groff-headline): handle special tags.
* org-e-groff.el (org-e-groff-item): Removed the `counter' variable from let assignment list.
(org-e-groff-table--align-string): Removed the `attr' and `align' variables from the list assignment list.
* org-e-man.el (org-e-man-item): Removed the `counter' variable from the let assignment list.
(org-e-man-src-block): Removed non needed formatting string that was causing formatting errors for source blocks.
(org-e-man-table--align-string): Removed `attr' and `align' variables from the let assignment list.
* contrib/lisp/org-e-man.el (org-e-man-headline): Fixed call to org-export-first-sibling-p and org-export-last-sibling-p
(org-e-man-table-cell): Fixed call to org-export-get-next-element
- Ability to handle long tables.
- Ability to automatically generate reference lists
- Ability to perform special processing in paragraph
- Ability to disable captions.
- Ability to process special characters.
- Improved table handling.
* org.el (org-mode-map): Add keybindings to
`org-element-transpose' and `org-narrow-to-element'.
(org-metaup): Fall back on `org-element-drag-backward'.
(org-metadown): Fall back on `org-element-drag-forward'.
Also move chunks of declarations and require statements to
get rid of compiler warnings.
* org-exp-blocks.el (org): Don't require org. Add declarations.
* org-clock.el (org): Don't require org.
* ob-exp.el (org-list-forbidden-blocks): Add declarations.
* org.el (org-mode-map): Add keybindings to
`org-element-transpose' and `org-narrow-to-element'.
(org-metaup): Fall back on `org-element-drag-backward'.
(org-metadown): Fall back on `org-element-drag-forward'.
Also move chunks of declarations and require statements to
get rid of compiler warnings.
* org-exp-blocks.el (org): Don't require org. Add declarations.
* org-clock.el (org): Don't require org.
* ob-exp.el (org-list-forbidden-blocks): Add declarations.
* contrib/lisp/org-md.el (org-export-md): New customize group.
(org-md-headline-style): New variable.
(org-md-headline): Allow atx and Setext style. Also provide fall-back
for low level headlines.
* contrib/lisp/org-md.el (org-md-section): # protection shouldn't
happen at the section level, when there is no difference between raw
# from export blocks and # in plain text.
* contrib/lisp/org-md.el (org-md-paragraph, org-md-plain-text): Make
sure raw # (inserted with, for example, an export snippet) don't get
escaped. A few false positives don't hurt.
* contrib/lisp/org-export.el (org-export-get-environment,
org-export-collect-tree-properties, org-export-data,
org-export-expand-include-keyword): Use new names.
(org-export--parse-option-keyword): Renamed from
`org-export-parse-option-keyword'.
(org-export--get-subtree-options): Renamed from
`org-export-get-subtree-options'.
(org-export--get-inbuffer-options): Renamed from
`org-export-get-inbuffer-options'.
(org-export--get-buffer-attributes): Renamed from
`org-export-get-buffer-attributes'.
(org-export--get-global-options): Renamed from
`org-export-get-global-options'.
(org-export--allow-BIND-local): Renamed from
`org-export-allow-BIND-local'.
(org-export--confirm-letbind): Renamed from
`org-export-confirm-letbind'.
(org-export--install-letbind-maybe): Renamed from
`org-export-install-letbind-maybe'.
(org-export--get-min-level): Renamed from `org-export-get-min-level'.
(org-export--collect-headline-numbering): Renamed from
`org-export-collect-headline-numbering'.
(org-export--populate-ignore-list): Renamed from
`org-export-populate-ignore-list'.
(org-export--interpret-p): Renamed from `org-export--interpret-p'.
(org-export--prepare-file-contents): Renamed from
`org-export-prepare-file-contents'.
* contrib/lisp/org-e-publish.el (org-e-publish-find-date): Use new
names.
* testing/lisp/test-org-export.el: Update tests.
* contrib/lisp/org-export.el (org-export-define-derived-backend):
Add :export-block keyword. Also fix a generated doc-string.
* contrib/lisp/org-e-beamer.el: Use new keyword.
* contrib/lisp/org-export.el (org-export-define-backend): New macro.
* contrib/lisp/org-e-ascii.el: Use new macro.
* contrib/lisp/org-e-html.el: Use new macro.
* contrib/lisp/org-e-latex.el: Use new macro.
* contrib/lisp/org-e-odt.el: Use new macro.
* contrib/lisp/org-element.el (org-element-block-name-alist): Remove
hard-coded export block names from variable, since they are added
automatically by `org-export-define-backend'.
* testing/lisp/test-org-element.el: Update test.
* contrib/lisp/org-e-html.el (org-e-html-export-as-html): Remove
PUB-DIR, which doesn't make sense in that function.
* contrib/lisp/org-export.el: Apply change in function declaration.
* contrib/lisp/org-e-ascii.el (org-e-ascii-export-as-ascii): New
function.
(org-e-ascii-export-to-ascii): Now autoloaded.
* contrib/lisp/org-e-latex.el (org-e-latex-export-as-latex): New
function.
(org-e-latex-export-to-pdf): Now autoloaded.
(org-e-latex--collect-errors): Renamed from
`org-e-latex-collect-errors'.
(org-e-latex-compile): Apply renaming.
* contrib/lisp/org-e-html.el (org-e-html-export-as-html): New
function.
(org-e-html-export-to-html): Fix docstring.
* contrib/lisp/org-export.el (org-export-dispatch): Use new functions.
* contrib/lisp/org-element.el (org-element-current-element): Use a new
special mode symbol to treat section before first headline
differently. In this case, its boundaries must be computed since it
has not been limited by headline container.
(org-element-parse-elements): Use new special mode symbol.
* contrib/lisp/org-e-latex.el (org-e-latex-subscript,
org-e-latex-superscript): Don't use mathrm in sub/superscripts with
a single LaTeX command or entity.
* contrib/lisp/org-element.el (org-element-set-element): Replace
member with memq.
* contrib/lisp/org-export.el (org-export-get-min-level,
org-export--skip-p, org-export-data, org-export-table-cell-width,
org-export-table-cell-alignment): Replace member with memq.
* contrib/lisp/org-e-ascii.el (org-e-ascii-timestamp): Use :range-end
property when applicable.
* contrib/lisp/org-e-html.el (org-e-html-timestamp): Use :range-end
property when applicable.
* contrib/lisp/org-e-latex.el (org-e-latex-timestamp): Use :range-end
property when applicable.
* contrib/lisp/org-e-odt.el (org-e-odt-timestamp): Use :range-end
property when applicable.
* contrib/lisp/org-element.el (org-element-planning-parser): Store
parsed timestamps without the bracket markers.
(org-element-timestamp-interpreter): Store parsed timestamps without
the bracket markers. Also provide a new property: `:range-end'.
(org-element-planning-interpreter, org-element-timestamp-interpreter):
Apply changes to parsers.
* testing/lisp/test-org-element.el: Add test.
* contrib/lisp/org-element.el (org-element-line-break-parser)
(org-element-line-break-interpreter): Line-break object ends where the
line ends. It doesn't contain the next newline character.
(org-element-parse-objects): Refactoring.
* contrib/lisp/org-element.el (org-element-normalize-contents):
Normalize contents of elements in place. This is required to be
sure that a normalized element still is `eq' to its equivalent in
the parse tree.
* contrib/lisp/org-export.el (org-export-data,
org-export-footnote-first-reference-p,
org-export-get-footnote-number, org-export-get-ordinal,
org-export-get-loc, org-export-table-row-group,
org-export-table-cell-starts-colgroup-p,
org-export-table-cell-ends-colgroup-p,
org-export-table-cell-address): Use `eq' instead of `equal' when
possible.
* contrib/lisp/org-e-ascii.el (org-e-ascii-table-row):
* contrib/lisp/org-e-beamer.el (org-e-beamer-select-environment):
* contrib/lisp/org-e-html.el (org-e-html-footnote-section,
org-e-html-latex-environment, org-e-html-paragraph): Use `eq'
instead of `equal' when possible.
* contrib/lisp/org-e-latex.el (org-e-latex--get-footnote-counter):
* contrib/lisp/org-e-odt.el (org-e-odt-do-format-code,
org-e-odt-footnote-def, org-e-odt-item, org-e-odt-latex-environment,
org-e-odt-latex-fragment, org-e-odt-plain-list, org-e-odt-table,
org-e-odt-enumerate-element): Use `eq' instead of `equal' when
possible.
In particular, comparing elements shouldn't be done with `equal' since
they are circular lists. On the other hand, using `eq' is fine if
they belong to the same tree.
* contrib/lisp/org-element.el (org-element-put-property,
org-element-set-contents): Handle special cases like empty or string
arguments.
(org-element-parse-secondary-string): Correctly set `:parent' property
in objects within the secondary string if element or object containing
it is provided as an optional argument.
(org-element-parse-elements, org-element-parse-objects): Rewrite
functions using setter functions.
- Clean up work directory and buffers on error.
- Don't use `org-current-export-file'.
- Handle file paths robustly i.e., don't rely on `default-directory'.
- Remove stale code.
* org-e-html.el (org-e-html-creator-string): New option.
(org-e-html-options-alist): Use it.
* org-export.el (org-export-creator-string): Don't use HTML
tags in the generic creator string.
Thanks to Nicolas for directions on what to change wrt this.
* org-html.el (org-export-as-html): Add links to the Org mode
and GNU Emacs websites When :html-postamble is set to 't.
* org-export.el (org-export-creator-string): Add links to the
Org mode and GNU Emacs websites.
* contrib/lisp/org-export.el (org-export-get-subtree-options): Add
a subtree property for each export option.
* testing/lisp/test-org-export.el: Add tests.
Properties names are obtained by adding "EXPORT_" prefix to buffer
keywords.
* contrib/lisp/org-element.el (org-element-affiliated-keywords):
Remove attributes keywords from the list since they are, de facto,
affiliated keywords.
(org-element-multiple-keywords): Remove "attr" keywords from the list
since they always belong to that list.
(org-element--affiliated-re, org-element-collect-affiliated-keywords,
org-element-interpret--affiliated-keywords): Handle special attr
keywords correctly.