* lisp/ob-processing.el: New file.
* doc/org.texi (Languages): Signal new language.
This library implements necessary functions for implementing editing
of Processing code blocks, viewing the resulting sketches in an
external viewer, and HTML export of the sketches.
Editing Processing blocks requires processing2-emacs mode. Viewing
Processing blocks embedded in Org buffer in an external viewer also
requires processing2-emacs. This viewing is bound to C-c C-v C-k and
produces no results in Org buffer. HTML export of the results of a
Processing block is also supported, assuming that the processing.js
module is available: the sketch is then drawn by the browser when the
HTML page is viewed. This drawing is implemented by embedding the
Processing code in a script using the processing.js module. The user
is responsible for making sure that processing.js is available in the
correct location.
Console output from a Processing block produced e.g. by println() is
shown in the Processing compilation window when the code is executed
in Org buffer, and in text area (console) of the browser when the code
is embedded in HTML.
* lisp/ox.el (org-export-registered-backends): Renamed from
`org-export--registered-backends'.
(org-export-get-backend):
(org-export-register-backend):
(org-export-insert-default-template):
(org-export--dispatch-ui):
* lisp/org.el (org-export-registered-backends):
(org-export-backends):
(org-get-export-keywords):
* lisp/org-pcomplete.el (pcomplete/org-mode/file-option/options):
* testing/lisp/test-ox.el (test-org-export/define-backend):
(test-org-export/define-derived-backend):
(test-org-export/derived-backend-p):
(test-org-export/get-all-transcoders):
(test-org-export/get-all-options):
(test-org-export/get-all-filters):
(test-org-export/with-backend): Apply renaming.
Since the variable is copiously used outside of "ox.el", there's no
reason to mark it as internal.
* lisp/ob-shell.el (org-babel-sh-evaluate):
* lisp/org-clock.el (org-x11idle-exists-p): Do not use last
`call-process-shell-command' arg.
* lisp/org-mouse.el (org-mouse-show-context-menu): Ignore
`redisplay-dont-pause'.
* lisp/org.el (org-icompleting-read): Fix typo. Small refactoring.
* lisp/ox-latex.el (org-latex-prefer-user-labels): Fix docstring.
(org-latex--label): Fix docstring. Do not add a spurious newline
character when generating "\\label" macro for a target.
(org-latex-link):
(org-latex-radio-target): Radio targets always use internal labelling
scheme.
Radio targets are visible in the document so they can contain
forbidden characters, and user cannot adapt them to naming
restrictions from a given back-end.
* lisp/ox-html.el (org-html-headline): Prefer raw CUSTOM_ID over
internal reference.
This is required for custom CSS and to link generated page from
outside Org. However, the user is responsible for not using forbidden
characters in its value.
* ox.el (org-export-get-reference): Change labeling scheme.
160820bc94 and later changed the label naming scheme to follow types.
This commit maps to types to more standard names, e.g. 'headline' to
'sec'.
* lisp/ox-publish.el (org-publish-collect-numbering):
(org-publish-resolve-external-fuzzy-link): Remove functions.
(org-publish--collect-references, org-publish-resolve-external-link):
New functions.
(org-publish-org-to): Use new functions.
* lisp/ox-html.el (org-html-link): Reflect changes above.
This patch extends `org-publish-resolve-external-fuzzy-link', now
known as `org-publish-resolve-external-link' to custom-id links and
dedicated targets.
* lisp/ox-latex.el (org-latex-prefer-user-labels): New variable.
(org-latex-custom-id-as-label): Remove variable.
(org-latex--label): New function.
(org-latex--caption/label-string):
(org-latex-headline):
(org-latex-inlinetask):
(org-latex-latex-environment):
(org-latex-link): Use new function.
* etc/ORG-NEWS: Document new variable.
This variable replaces, and generalizes,
`org-latex-custom-id-as-label'.
* lisp/org-footnote.el (org-footnote--allow-reference-p): Allow new
footnotes in headlines.
* testing/lisp/test-org-footnote.el (test-org-footnote/new): Add test.
Reported-by: Thomas S. Dye <tsd@tsdye.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96843>
* lisp/org-mobile.org (org-mobile-copy-agenda-files): Escape org-mobile-checksum-binary.
Fix a bug where if the checksum binary is in a non shell-safe path, then
the shell invocation silently fails. This can happen on any platform but
is probably worst on Windows where it's common to put programs in
"C:/Program Files".
TINYCHANGE
* lisp/ox.el (org-export-dictionary): Fix Spanish translations,
including :ascii and :html properties. Also add :default Spanish
property for "References".
TINYCHANGE
* lisp/ox.el (org-export--get-inbuffer-options): Allow multi-line objects.
* testing/lisp/test-ox.el (test-org-export/get-inbuffer-options): Add
tests. Update some others.
It is possible to write, e.g.,
#+TITLE: *bold
#+TITLE: sentence*
* ox-html.el (org-html--build-meta-info): Insert viewport.
(org-html-viewport): New custom variable.
* ORG-NEWS: Mention viewport.
* org.texi: Mention org-html-viewport.
Viewport makes org-generated html work well with small screens.
* lisp/ob-sql.el (org-babel-sql-dbstring-mysql): Change type
signature to accept server port number too.
(org-babel-execute:sql) Will now recognize the dbport parameter.
Passed to `org-babel-sql-dbstring-mysql' only for now.
TINYCHANGE
* lisp/org-table.el (org-table-end): Do not return a maker.
(org-table-align):
(org-table-insert-column):
(org-table-delete-column):
(org-table-move-column):
(org-table-convert):
(org-table-recalculate): Create needed marker.
Creating a marker was not documented, and not always needed.
`copy-marker' should be used when they are. Markers not deactivated
slow down editing.
* lisp/org-element.el (org-element--cache-for-removal): Be more
careful when altering a properties drawer.
* testing/lisp/test-org-element.el (test-org-element/cache): Add test.
* contrib/lisp/ox-koma-letter.el (koma-letter): Set "SUBJECT" as
parsed.
(org-koma-letter-template): Apply.
* lisp/ox-latex.el (latex): Set "DESCRIPTION" and "KEYWORDS" as
parsed.
(org-latex--format-spec): Apply.
* lisp/org-element.el (org-element-document-properties): Remove
variable.
(org-element-context): Ignore ex-"document keywords".
* testing/lisp/test-org-element.el (test-org-element/context): Remove
no longer applicable tests.
Parsed keywords are no longer hard-coded and can be set per export
back-end.
As a consequence, `org-element-context' no longer returns objects in
"TITLE", "DATE" or "AUTHOR" keywords. This makes sense as these
objects would only make sense during export, and only if the chosen
back-end actually uses them.
* lisp/ox.el (org-export-options-alist): Implement `parse' behavior
and use it for parsed keywords. Update docstring.
(org-export-document-properties): Remove variable.
(org-export--get-subtree-options):
(org-export--get-inbuffer-options):
(org-export--get-global-options):
(org-export--prune-tree):
(org-export--remove-uninterpreted-data): Handle `parse' behavior.
(org-export-as): Do not assume :date is always a secondary string
and :email is never one.
* testing/lisp/test-ox.el (test-org-export/get-inbuffer-options):
Update tests.
* lisp/org.el (org--get-expected-indentation): Diary sexps are to be
indented at column 0.
* testing/lisp/test-org.el (test-org/indent-line): Add test.
* lisp/org.el (org-refresh-category-properties): Extract default
category before entering `with-silent-modifications', as
`buffer-file-name' is then bound to nil.
Reported-by: John Hendy <jw.hendy@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96620>
* lisp/org.el (org-find-property): Small optimization.
Since VALUE is included in the regexp, it doesn't need to be found
again with `org-entry-get'. However, we still need to make sure match
really is a node property.
* lisp/org.el (org-refresh-category-properties): Ignore false
positives when setting category. Also, deprecate old CATEGORY
keyword behaviour: new keywords override old ones.
* lisp/org.el (org-refresh-property): Ignore function when before
first headline or inlinetask. Small refactoring.
Reported-by: Nick Dokos <ndokos@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96552>
* lisp/org.el (org-backward-sentence):
(org-forward-sentence): Properly move at the boundaries of an element.
* testing/lisp/test-org.el (test-org/forward-sentence):
(test-org/backward-sentence): New tests.
Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/96377>
* ox.el: Remove #+KEYWORD: and #+DESCRIPTION:.
* ox-deck.el, ox-rss.el, ox-html, ox-latex, ox-odt, ox-org: Add
#+KEYWORD and #+DESCRIPTION.
* org.texi (Export settings): Explicit state which backends
support #+DESCRIPTION and #+KEYWORDS.
* lisp/ox-ascii.el (ascii):
* lisp/ox-latex.el (latex):
* lisp/ox-man.el (man):
* lisp/ox-md.el (md):
* lisp/ox-org.el (org):
* lisp/ox-texinfo.el (texinfo):
* contrib/lisp/ox-groff.el (groff): Remove `comment' and
`comment-block' translators.
`comment' and `comment-block' translators are not needed since both
commented lines and comment blocks do not appear anymore in the parse
tree. See 69dd4301ab.
* lisp/ox.el (org-export-filters-alist): Remove reference to comment
filters.
(org-export-filter-comment-functions,
org-export-filter-comment-block-functions): Remove variables.
* doc/org.texi (Advanced configuration): Remove reference to comment
filters.
* etc/ORG-NEWS: Signal removal.
Comments are removed before parsing the buffer. As a consequence,
filters are never called.
* lisp/ox.el (org-export--delete-comments): Renamed from
`org-export--delete-commented-subtrees'. Also remove comments and
comment blocks.
(org-export-as): Apply renaming.
* testing/lisp/test-ox.el (org-test-with-parsed-data): Apply renaming.
From the export point of view COMMENTed subtrees and regular comments
are expected to be treated in the same way.
* lisp/org-macro.el (org-macro--collect-macros): Ignore macro
definitions in commented subtrees.
* lisp/ox.el (org-export--get-inbuffer-options): Ignore options in
commented subtrees.
(org-export--delete-commented-subtrees): Remove function.
(org-export-as): Apply removal.
Removing the whole subtree is not subtle as Babel might want to use
data there.
Reported-by: Robert Klein <RoKlein@roklein.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/96347>
* lisp/ox-beamer.el (org-beamer-item): Make sure description tags are
transcoded using `beamer' back-end instead of `latex'.
Reported-by: Andreas Leha <andreas.leha@med.uni-goettingen.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/96345>
Hi all,
please find attached a small patch that fixes a problem discussed
in [1].
In short, when executing a latex src block and htlatex is a valid
option, it should be used even if imagemagick is part of the headers.
Regards,
Andreas
[1] http://permalink.gmane.org/gmane.emacs.orgmode/96257
>From 2986826441c24e2f0d6cf5efe6bf8aca75c4bdbb Mon Sep 17 00:00:00 2001
From: Andreas Leha <andreas.leha@gmx.de>
Date: Sat, 21 Mar 2015 22:11:37 +0000
Subject: [PATCH] ob-latex: htlatex preferred over imagemagick
* ob-latex.el (org-babel-execute:latex): change the order of the handlers
When `imagemagick' is given this entry acts as an else option.
So, it should always come last.
* lisp/ox.el (org-export--delete-commented-subtrees): New function.
(org-export-as): Use new function.
* testing/lisp/test-ox.el (org-test-with-parsed-data,
test-org-export/get-inbuffer-options): Use new function.
(test-org-export/expand-macro): Add tests.
Reported-by: Andreas Leha <andreas.leha@med.uni-goettingen.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/96267>
* lisp/ox.el (org-export--prune-tree): Renamed from
`org-export-prune-tree'. Move it close to its caller.
(org-export--remove-uninterpreted-data): Renamed from
`org-export-remove-uninterpreted-data'. Move it close to its caller.
(org-export--remove-uninterpreted-data-1): Move internal function
close to its caller.
(org-export-as): Apply renaming.
* testing/lisp/test-ox.el (org-test-with-parsed-data): Apply renaming.
* lisp/org-list.el (org-list-insert-item): On a description tag,
insert item before current one. However, past the colons, insert it
after.
* testing/lisp/test-org-list.el (test-org-list/insert-item): Add
tests.
Reported-by: Leo Ufimtsev <lufimtse@redhat.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96330>
* lisp/ox-ascii.el (org-ascii-template--document-title): Remove
spurious newline characters in title when exporting to UTF8.
Suggested-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/96229>
* lisp/org-element.el (org-element--set-regexps):
(org-element-entity-parser): Update regexps for entities.
* lisp/org-entities.el (org-entities): Add new entities.
* lisp/org.el (org-fontify-entities): Add comment.
* etc/ORG-NEWS (title): Introduce new entities.
"\..." are used to insert an arbitrary number of spaces in various
back-ends. In particular, this family can be used to introduce
leading spaces within table cells.
Also, unlike to other entities, these can be used mid-word, e.g.,
wo\....rd
Curly brackets can still be added before a dot, e.g.,
This is the end\...{}.
* lisp/ox.el (org-export-get-environment): Properly find file
associated to id link.
(org-export-resolve-id-link): Throw an error on unresolved id links.
Use `org-id-find' instead of `org-id-find-id-file' as the latter may
returns the file attached to current buffer on search failure.
Reported-by: Jacob Gerlach <jacobgerlach@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/96020>
* lisp/ox.el (org-export-resolve-fuzzy-link): Throw an error instead
of returning nil when link can't be resolved.
* testing/lisp/test-ox.el (test-org-export/resolve-fuzzy-link): Change
last test from should-not to should-error
In addition to throwing an error, don't store the failed match in the
link cache.
TINYCHANGE
* lisp/ox.el (org-export-with-creator): Change default value.
* lisp/ox-ascii.el (org-ascii-template):
* lisp/ox-beamer.el (org-beamer-template):
* lisp/ox-latex.el (org-latex-template):
* lisp/ox-odt.el (org-odt-template):
* lisp/ox-org.el (org-org-template):
* lisp/ox-texinfo.el (org-texinfo-template): Treat
`org-export-with-creator' as a boolean.
* testing/lisp/test-ox.el (test-org-export/parse-option-keyword):
Update test.
* doc/org.texi (Export settings): Update allowed values in
`org-export-with-creator'.
* etc/ORG-NEWS: Signal change.
Special `comment' value isn't meaningful for all back-ends and is not
implemented in every back-end where it makes sense anyway.
It is possible to add a comment including creator at the end of the
document using a body filter instead.
* lisp/org.el (org-tags-expand): Nesting grouptags.
Allowing subtags to be defined as groups themselves.
: #+TAGS: [ Group : SubOne(1) SubTwo ]
: #+TAGS: [ SubOne : SubOne1 SubOne2 ]
: #+TAGS: [ SubTwo : SubTwo1 SubTwo2 ]
Should be seen as a tree of tags:
- Group
- SubOne
- SubOne1
- SubOne2
- SubTwo
- SubTwo1
- SubTwo2
Searching for "Group" should return all tags defined above.
Filtering in the agenda on grouptags filter also subcategories.
Exception if filter is applied with a (double) prefix-argument.
Filtering in the agenda on subcategories does not filter the "above"
levels anymore.
If a grouptag contains a regular expression the regular expression
is also used as a filter.
* lisp/org-agenda.el (org-agenda-filter-by-tag): improved UI and
refactoring.
Now uses the argument arg and optional argument exclude instead of
strip and narrow. ARG because the argument has multiple purposes
and makes more sense than strip now. The term narrowing is changed
to exclude.
* lisp/org-agenda.el (org-agenda-filter-by-tag-refine): name change in
argument to match org-agenda-filter-by-tag.
* lisp/org-agenda.el (org-agenda-filter-make-matcher): new optional
argument EXPAND and refactoring.
* lisp/org-agenda.el (org-agenda-filter-make-matcher-tag-exp): new
function, previously baked into org-agenda-filter-make-matcher.
* lisp/org-agenda.el (org-agenda-filter-apply): New optional parameter
EXPAND, used in call to org-agenda-filter-make-matcher.
* lisp/org-agenda.el (org-agenda-reapply-filters): Uses another
parameter (the new optional one) in call to org-agenda-filter-apply.
* lisp/org-agenda.el (org-agenda-finalize): use of new parameter in
call to org-agenda-filter-apply.
* lisp/org-agenda.el (org-agenda-redo): Use of new parameter in call
to org-agenda-filter-apply.
* lisp/org.el (org-tags-expand): Grouptags can have regular expressions as
"sub-tags".
The regular expressions in the group must be marked up within { }.
Example use:
: #+TAGS: [ Project : {P@.+} ]
Searching for the tag Project will now list all tags also including
regular expression matches for P@.+. Good for example if tags for a
certain project is tagged with a common project-identifier,
i.e. P@2014_OrgTags.
* lisp/org.el (org-tag-alist) : New symbols for grouptags when the
tags in the group don't have to be distinct on a heading.
Grouptags had to previously be defined with { }. This syntax is
already used for exclusive tags and Grouptags need their own,
non-exclusive syntax. This behaviour is achieved with [ ]. Note: {
} can still be used also for Grouptags but then only one of the
given tags can be used on the headline at the same time. Example:
[ group : sub1 sub2 ]
Grouptags also are not filtered when setting up tags. This means
they can exist multiple times in org-tag-alist list. It will be
usable if nesting of grouptags is ever to become reality.
There is a slightly annoying side-effect when setting tags in that a
tag which is both a part of a grouptag and a grouptag of it's own
will get multiple key-choices in the selection-UI.
* lisp/org.el (org--setup-process-tags): Adaption for the added syntax
for non-distinct grouptags.
* lisp/org.el (org-fast-tag-selection): Add support for the added,
non-unique, grouptag-syntax. Minor (if ...) to (when ...) refactor.
* lisp/org.el (org-entry-delete): Remove all occurrences of
accumulated properties, too. Return a non-nil value when some
property was removed.
* testing/lisp/test-org.el (test-org/entry-delete): Add test.
* lisp/ob-exp.el (org-babel-exp-process-buffer): Issue an error when a
src block with no language is processed.
Throw an error with an informative message when trying to export buffer
containing `#+src_block\n'.
Reported-by: XIE Yuheng <xyheme@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95920>
* doc/org.texi (Special properties): Remove "CATEGORY"
* lisp/org.el (org-special-properties): Remove "CATEGORY".
(org-property-get-allowed-values): Ignore "CATEGORY".
(org-entry-get): Make sure to get CATEGORY value using
`org-entry-properties'.
* testing/lisp/test-org.el (test-org/entry-put): Add test.
"CATEGORY" is not a special property as it can also be set using
a properties drawer.
* lisp/ox-beamer.el (`beamer-header'): Move BEAMER_HEADER injection to
final part of preamble (after themes, title, etc.). Allows for
custom short titles, etc., with #+BEAMER_HEADER:
\title[Short]{Long}.
* doc/org.texi: Updated BEAMER_HEADER entry with a relevant footnote.
Previously, TITLE, etc., was being injected after BEAMER_HEADER, so
short titles (and related) could not be added. BEAMER_HEADER now
serves as a final preamble injection point.
TINYCHANGE
* lisp/org-habit.el (org-habit-parse-todo): Add repeater type to
habit.
(org-habit-repeat-type): New function.
(org-habit-build-graph): Handle "++" and "+" repeater types.
Reported-by: Leo He <leodream2008@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95772>
* lisp/org-element.el (org-element-line-break-parser): Tiny
refactoring.
(org-element-normalize-contents): Take into consideration line breaks
when removing common indentation. Small refactoring.
* testing/lisp/test-org-element.el (test-org-element/normalize-contents):
Add tests.
* lisp/org.el (org-remove-latex-fragment-image-overlays): Allow to
limit overlay removal through optional arguments. Define a new
return value.
(org-toggle-latex-fragment): Change behaviour. Update docstring
accordingly.
(org-format-latex): Update docstring. Remove overlay when LaTeX
fragment is deleted.
* etc/ORG-NEWS: Signal change.
The new behaviour is the following:
- With a double prefix argument or with a single prefix argument
when point is before the first headline, toggle overlays in the
whole buffer;
- With a single prefix argument, toggle overlays in the current
subtree;
- On latex code, toggle overlay at point;
- Otherwise, toggle overlays in the current section.
Suggested-by: <kuangdash@163.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/95492>
* lisp/org.el (org-adaptive-fill-function): Use
`org-table-line-regexp' instead of `orgtbl-line-start-regexp', which
may not be defined.
Reported-by: Eric Abrahamsen <eric@ericabrahamsen.net>
<http://permalink.gmane.org/gmane.emacs.orgmode/95500>
* org.el (org-latex-to-mathml-convert-command): Work with
other converters than mathtoweb.
(org-latex-to-mathml-convert-command): Add possibility of
passing latex-fragment.
* org.texi (Working with @LaTeX{} math snippets): Show LaTeXML config.
* lisp/org.el (org-fontify-meta-lines-and-blocks-1): Forbid invisible
characters (e.g. bracket links) in all keywords but TITLE, DATE,
AUTHOR, CAPTION and EMAIL. Also remove back-end specific keywords,
which are treated just like any other regular keyword.
Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/95415>
* lisp/ob-core.el (org-babel-insert-result): Improper lists are
removeable.
When a list cannot be turned into a table, return it in a fixed-width
area so that it can be removed.
Suggested-by: Charles C. Berry <ccberry@ucsd.edu>
<http://permalink.gmane.org/gmane.emacs.orgmode/95430>
* lisp/ob-core.el (org-babel-insert-result): Fix output when result is
an improper list, which cannot be turned into a table.
* testing/lisp/test-ob.el (test-ob/org-babel-insert-result--improper-lists):
New test.
Reported-by: Daniele Pizzolli <dan@toel.it>
<http://permalink.gmane.org/gmane.emacs.orgmode/95348>
* lisp/org.el (org-show-context-detail): New variable.
(org-context-choice, org-show-following-heading, org-show-siblings,
org-show-entry-below, org-show-hierarchy-above): Remove variables.
(org-show-set-visibility): New function.
(org-convert-to-oddeven-levels, org-get-location, org-show-context,
org-reveal): Use new function.
(org-link-search): Update docstring.
* lisp/org-agenda.el (org-agenda-cycle-show): Use new function.
(org-agenda-show): Replace missing variable.
* testing/lisp/test-org.el (test-org/show-set-visibility): New test.
* doc/org.texi (Sparse trees):
* doc/orgguide.texi (Sparse trees): Document changes.
* etc/ORG-NEWS: Signal changes.
Configuration of `org-show-context' is done with a single variable
offering six different views, instead of four variables for a total
of 16 configurations.
* ox-latex.el (org-latex--format-spec): New function with format-specs.
(org-latex-template): Use org-latex--format-spec.
(org-latex-hyperref-template): New defaults and use
org-latex--format-spec.
(org-latex-title-command): Use org-latex--format-spec.
* ORG-NEWS: Mention change.
* lisp/org-src.el (org-src-mode-configure-edit-buffer): Fix "Wrong
type argument: overlayp".
Changing major mode in a source edit buffer resets local variables
used to link it to source buffer. As a consequence, overlay in source
buffer can no longer be found nor deleted.
* lisp/org-element.el (org-element-object-restrictions): Forbid
footnote references in parsed keywords.
Inserting footnote references in parsed keywords (e.g., TITLE or
CAPTION) can lead to subtle bugs. Indeed, it is impossible to know in
time if that particular footnote is going to be used in the output,
and, therefore, if it should count, e.g., in
`org-export-get-footnote-number'.
* lisp/org-footnote.el (org-footnote--allow-reference-p): New
function.
(org-footnote-new): Use new function.
* testing/lisp/test-org-footnote.el (test-org-footnote/new): New test.
In particular, Org now refuses to add a footnote reference in
a keyword, e.g., TITLE.
* lisp/org-list.el (org-list-struct-apply-struct): Preserve disparate
indentation in contuated contents, i.e., contents after a plain list
still within an item.
* testing/lisp/test-org-list.el (test-org-list/repair): Add test.
This fixes the following case:
- item
- child
item contents
with different indentation
Reported-by: Mark Edgington <edgimar@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94977>
* lisp/org.el (org-time-stamp): Correctly match repeater, if any.
Refactor code.
* testing/lisp/test-org.el (test-org/time-stamp): New test.
Reported-by: Nicolas Richard <theonewiththeevillook@yahoo.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/94974>
* lisp/ox.el (org-export--footnote-reference-map): New function.
(org-export-footnote-first-reference-p,
org-export-get-footnote-number): Allow to change order when footnotes
references are contained within footnote definitions.
* testing/lisp/test-ox.el (test-org-export/footnote-first-reference-p):
(test-org-export/get-footnote-number): New tests.
(test-org-export/footnotes): Update test.
* lisp/ob-core.el (org-babel-view-src-block-info): when a property
value was numeric, an error was raised. Fixed by converting property
value to string before evauation.
* lisp/ob-core.el (org-babel-view-src-block-info): Add property string
"header args" to output of org-babel-view-src-block-info to make
debugging of header-args setting problems easier.
* lisp/ob-core.el (org-babel-view-src-block-info): Add property string
for language specific "header args:LANG" to output of org-babel-view-src-block-info to make
debugging of header-args setting problems easier.
* lisp/ox-publish.el (org-publish-find-date): Remove useless cond
branch.
:date property is never a single timestamp, so the first branch is
always false.
Reported-by: Rasmus <rasmus@gmx.us>
* ox.el (org-export-with-title): New variable.
* ox (org-export-options-alist),
ox-ascii.el (org-ascii-template--document-title),
ox-beamer.el (org-beamer-template), ox-html.el (org-html-template),
ox-latex.el (org-latex-template), ox-man.el (org-man-template),
ox-odt.el (org-odt-template), ox-org.el (org-org-template),
ox-publish.el (org-publish-project-alist),
ox-texinfo.el (org-texinfo-template),
ox-groff.el (org-groff--mt-head): Use new variable.
* ox-koma-letter.el (org-koma-letter-use-title): Mark obsolete.
* test-ox.el (test-org-export/parse-option-keyword): Add :with-title.
* ORG-NEWS, org.texi: Mention org-export-with-title.
This is useful in e.g. ox-html where title can be set via
`org-html-preamble-template' or when using the {{{title}}}-macro.
* lisp/org.el (org-closed-string, org-deadline-string,
org-scheduled-string): Use a defvar.
DEADLINE, SCHEDULED and CLOSED are now meant to be constants. However,
we preserve backward-compatibility during obsolencence phase.
* lisp/ox-odt.el (org-odt-link--infer-description): Fix comment.
(org-odt-link): When link to target has no description, use a number.
Reported-by: Christian Moe <mail@christianmoe.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94815>
* lisp/org-element.el (org-element-object-containers): New variable
(org-element-interpret-data): Remove optional argument.
(org-element--interpret-data-1): Remove optional argument. Guess when
a given element or object has a pseudo type.
* lisp/ox-latex.el (org-latex-pseudo-objects): Remove variable.
(org-latex-table, org-latex--math-table): Apply signature change above.
* testing/lisp/test-org-element.el (test-org-element/interpret-data):
Update test.
* ox.el (org-export-as): Allow {{{date}}} to take formatting-argument.
* org.texi (Macro replacement): Document {{{date}}} formatting.
* test-ox.el (test-org-export/expand-macro): Test {{{data(format)}}}
* org-NEWS: Mention optional {{{data}}} argument.
Optional argument to {{{date}}} like {{{date(FMT)}}} are treated
similar to {{{time(FMT)}}} if \#+DATE is a timestamp.
* lisp/org.el (org-scan-tags): Fix agenda org tags scans to properly
add timestamp property, completely analogously to
org-agenda-get-todos.
* lisp/org-agenda.el (org-agenda-entry-get-agenda-timestamp,
org-agenda-get-todos): Factored timestamp retrieval code out to
separate function org-agenda-entry-get-agenda-timestamp from
org-agenda-get-todos.
Before this fix, timestamps were ignored when sorting agenda views of
the 'tags' and 'tags-todo' types.
TINYCHANGE
* lisp/org-agenda.el (org-agenda-insert-diary-as-top-level):
* lisp/org.el (org-link-search): Call `org-insert-heading' instead
of (insert "* ").
This allows, in particular, to run `org-insert-heading-hook' and
possibly fix up blank lines around.
* lisp/org.el (org-link-search): Change headline search such that it
always does an exact search, ignoring spaces.
* testing/lisp/test-org.el (test-org/fuzzy-links): Test exact headline
match with spaces and cookies.
* doc/org.texi (External links): Cleanup footnote about the
`org-link-search-must-match-exact-headline' option for text searches
and add a footnote about the effect of the same option for heading
searches.
* doc/ORG-NEWS: Document changes.
* lisp/org-agenda.el (org-agenda-new-marker): Make sure data inserted
inserted in the heading above marker updates it.
(org-agenda-bulk-action): Enforce calling `org-add-log-note' after
each action.
Reported-by: Maxim Baz <z0rch.coding@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94654>
* lisp/org-element.el (org-element-link-type-is-file): Remove.
(org-element-link-parser): Do not treat specially anymore "docview"
link type.
* testing/lisp/test-org-element.el (test-org-element/link-parser):
Update test.
* lisp/org-docview.el (org-docview-export): Fix path.
"docview" is a custom link type handled in its own library. There is
no reason to include it in core parser.
* lisp/org.el (org-toggle-heading): Avoid adding spurious stars when
changing a plain list into a subtree.
Reported-by: Rainer Stengele <rainer.stengele@online.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/94223>
* lisp/org-agenda.el (org-agenda-insert-diary-make-new-entry): Do not
save excursion or final position is lost.
Reported-by: Gregor Zattler <grfz@gmx.de>
<http://permalink.gmane.org/gmane.emacs.orgmode/94543>
* lisp/org-agenda.el (org-agenda-insert-diary-as-top-level): Make
use of `org-insert-heading' instead of inserting the * character
Therefore, the hooks associated to the insertion of a heading will be
triggered. Since those hooks may cause the creation of some
metadata. `org-end-of-meta-data' is used afterward.
(org-babel-load-file): When org-mode FILE has multiple target files
for tangle blocks, `exported-file' will be set to last found
target file, which might not be the `file'.
Therefore fix for this bug is to select the last element of that
tangled file list, which is the tangle target file of the first found
tangle block, most typically the `file'.
TINYCHANGE
* lisp/org-clock.el (org-clock-in-last): `org-clock-in' expects an
universal argument, not the return value of `org-clock-select-task'.
Reported-by: Peter Münster <pmlists@free.fr>
<http://permalink.gmane.org/gmane.emacs.orgmode/94331>
* ob.core.el (org-babel-remove-inline-result): Removing an inline src
block result removes all whitespace preceding it. The function is
now `interactive'.
* ob-core.el (org-babel-insert-result): The call to
`org-babel-remove-inline-result' preceeds insertion of whitespace
and setting location of local variable `inlinep'.
Daniele Pizzolli reported that cleaning a buffer by evaluating
`org-babel-remove-inline-result' can leave unwanted whitespace. That
bug is fixed, and the function is made `interactive'.
* lisp/org-agenda.el (org-agenda-insert-diary-make-new-entry): Ensure
point is at a real body line and not in front of meta data, so
regular contents can be inserted safely after a call to this
function.
Reported-by: Samuel Loury <konubinix@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94482>
* lisp/org.el (org-special-properties): Add missing "CATEGORY".
* doc/org.texi (Special properties): Remove "NOBLOCKING" as a special
property, since it can only be set through a properties drawer.
This is a reserved property.
Reported-by: Samuel Loury <konubinix@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94483>
* lisp/org-element.el (org-element-swap-A-B):
* lisp/org-list.el (org-list-swap-items):
(org-list-send-item): In order to preserve visibility of moved items
or elements, only consider inner overlays.
Reported-by: Michael Brand <michael.ch.brand@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94320>
* lisp/ob-core.el (org-babel-remove-inline-result): Delete results of
current inline src block or inline babel call if it is wrapped in a
"{{{results(.*)}}}" macro call.
* lisp/ob-core.el (org-babel-get-lob-one-liner-matches): Ensure that
the point ends up on the same line as, and just before, `call_'
before setting match-data.
* ob-core.el (org-babel-get-inline-src-block-matches): Use
`org-element-context' and friends to find inline-src-block. When
point is in an inline-src-block (including white space determined by
:post-blank) set match-data and return `t'.
* lisp/ob-core.el (org-babel-insert-result): Delete any `results'
macro following current inline src block or babel call; insert
current value in 'results' macro possibly wrapping RESULT in an
export snippet or inline source block first. Use of `:results list'
or `:results table', or use of a multiline RESULT (after stripping a
trailing newline) or a list RESULT from an inline src block or babel
call throws an error.
* ob-exp.el (org-babel-exp-do-export): `clean' lambda form removes inline
results wrapped in `results{{{(' and `)}}}' by calling
`org-babel-remove-inline-result'.
* lisp/ox-org.el (org-org-link): New function.
This patch allows to handle `org' export format in EXPORT argument
from `org-add-link-type'.
Suggested-by: John Kitchin <johnrkitchin@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94439>
* lisp/org-element.el (org-element-headline-parser): Remove :alt-title.
* lisp/ox.el (org-export-get-alt-title): Check regular :ALT_TITLE
property instead of :alt-title.
`:alt-title' is an export-specific property. As a consequence, it's
value doesn't need to be parsed at "org-element.el"'s level. There, it
is treated as a regular property : `ALT_TITLE'.
This also removes the last call to
`org-element-parse-secondary-string' from "org-element.el".
* lisp/ox-ascii.el (org-ascii--current-text-width): Compute contents'
text width according to exported tag instead of original one.
Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/94416>
* lisp/org-element.el (org-element-headline-parser,
org-element-inlinetask-parser, org-element-item-parser,
org-element--collect-affiliated-keywords): Use
`org-element--parse-objects' instead of
`org-element-parse-secondary-string' when parsing live objects in
secondary strings.
`org-element-parse-secondary-string' parses a given string in
a temporary buffer, rendering buffer position related
properties (e.g., :begin) invalid.
Reported-by: John Kitchin <johnrkitchin@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/94397>
* lisp/org-element.el (org-element-headline-interpreter,
org-element-inlinetask-interpreter): Use format control string
instead of calling `char-to-string'.
* lisp/org-element.el (org-element--parsed-properties-alist): New
variable.
(org-element-map): Remove unnecessary funcalls. Externalize some
computations in the variable above.
* lisp/ox.el (org-export-collect-tree-properties): Do not
set :ignore-list.
(org-export--populate-ignore-list): Remove function.
(org-export--selected-trees): Small refactoring.
(org-export-prune-tree): New function.
(org-export-remove-uninterpreted-data): Fix docstring.
(org-export-as): Prune tree before calling tree filter.
* testing/lisp/test-ox.el (org-test-with-parsed-data): Fix macro.
This patch introduces two changes in the export process:
1. Non-exported elements are removed from the tree instead of being
moved into an ignore list (with the exceptions of tables rows
and cells)
2. Parse tree filter is called on the tree being exported, not the
original one.
Reported-by: Eric S Fraga <e.fraga@ucl.ac.uk>
<http://permalink.gmane.org/gmane.emacs.orgmode/94162>
* lisp/ob-R.el (org-babel-R-eoe-indicator):
(org-babel-R-eoe-output): Convert from defvar to defconst.
(org-babel-R-write-object-command): Convert from defvar to defconst.
Add line breaks and indentation.
* lisp/ob-core.el (org-babel--script-escape-inner): New function.
(org-babel-script-escape): Use it.
* testing/lisp/test-ob.el (test-org-babel/script-escape): New test.
* lisp/ob-core.el (org-babel-get-inline-src-block-matches): Use
`org-looking-at-p' instead of `thing-at-point'.
The latter could give odd results depending on the syntax table. In
particular, for me (thing-at-point 'word) was returning src_foo in
this context.
* lisp/ox.el (org-export-ignore-element): Remove function.
(org-export-collect-tree-properties): Do not assume users can
modify :ignore-list export property.
* testing/lisp/test-ox.el (test-org-export/user-ignore-list): Remove
test.
:ignore-property is an implementation detail, which should not be
exposed to users. Also, it is easier to simply remove the element to
ignore from the parse tree with `org-element-extract-element'.
* lisp/org-macro.el (org-macro-escape-arguments,
org-macro-extract-arguments): New functions.
* lisp/org-element.el (org-element-macro-parser): Use new function.
* testing/lisp/test-org-macro.el (test-org-macro/escape-arguments,
test-org-macro/extract-arguments): New tests.
* lisp/org.el (org--get-display-dpi): New function.
(org-create-formula-image-with-dvipng):
(org-create-formula-image-with-imagemagick): Use it.
The previous method tried to calculate the display dpi from the font
height, but this is wonky and not necessary, since it can be
calculated directly.
* lisp/org.el (org-toggle-inline-images): Only message if
called-interactively-p.
The old code made a halfhearted attempt to do this; this patch
provides the other half of the heart.
* lisp/org-compat.el (org-activate-mark): Make obsolete.
The activate-mark function was introduced in Emacs 23 and
org-activate-mark wasn’t called anywhere in the code base.
* lisp/ob-core.el (org-babel-where-is-src-block-head): Refactor. In
particular, do not return a marker, ever. Also update docstring.
* testing/lisp/test-ob.el (test-ob/org-babel-remove-result--results-org):
Fix tests containing invalid Org syntax.
* lisp/org-clock.el: Replace occurances of
'calendar-absolute-from-iso' with 'calendar-iso-to-absolute'.
* lisp/org-agenda.el: Same as above.
* lisp/org.el: Same as above.
Some (long marked obsolete) calendar entities have been dropped from
Emacs recently. One of those is 'calendar-absolute-from-iso'.
* list/ox-html.el (org-html--priority): New function.
(org-html-format-headline-default-function): Call `org-html--priority'.
(org-html-style-default): Add `.priority'.
HTML export previously did not support exporting of priority simply by setting
`org-export-with-priority' to `t'.
TINYCHANGE
* lisp/ox-html.el (org-html-style-default): `.done' gets `font-family:
monospace;'
Other items on the headline that aren't the text itself are monospaced,
including non-DONE todo's.
TINYCHANGE
* lisp/org.el (org-read-date-analyze): When
`org-read-date-prefer-future', offer a date in the future even if
default date is different from now.
* testing/lisp/test-org.el (test-org/org-read-date): Add tests.
Reported-by: Rasmus <rasmus@gmx.us>
<http://permalink.gmane.org/gmane.emacs.orgmode/93805>
* lisp/org-agenda.el (org-agenda-prepare-window): Update window
configuration even when agenda buffer exists in background.
* lisp/org-agenda.el (org-agenda-Quit): Use buffer value for
org-agenda-pre-window-conf to allow for local values used with sticky
agenda buffers.
* lisp/org-agenda.el (org-agenda-quit): Reset local, not global, value for
org-agenda-pre-window-conf.
* lisp/org-agenda.el (org-agenda--quit): New function.
Update the pre-agenda window configuration on the next agenda call even
if org-agenda-pre-window-conf is non-nil (which occurs when the agenda
buffer is exited without q, Q, or X). This prevents restoring a window
configuration that is not the one prior to the most recent agenda call.
Make org-agenda-Quit (Q) restore the buffer-local, not the global, value
for org-agenda-pre-window-conf so that it works correctly with sticky
agenda buffers.
Along with these changes, merge the duplicated functionality of
org-agenda-quit and org-agenda-Quit into a new function,
org-agenda--quit.
* lisp/org-agenda.el (org-agenda-tree-to-indirect-buffer): Record last
indirect buffer for agenda.
* lisp/org-agenda.el (org-agenda-quit): Delete window for
org-agenda-last-indirect-buffer, not org-last-indirect-buffer.
Introduce a new variable, org-agenda-last-indirect-buffer, that is
specific for the agenda (and perhaps a particular agenda buffer, if
org-agenda-sticky is set). This prevents org-agenda-quit from deleting
a window if it is displaying a buffer that was created through a
org-tree-to-indirect-buffer call outside of
org-agenda-tree-to-indirect-buffer.
Make org-agenda-Quit check for indirect buffer windows, like
org-agenda-quit does.
* lisp/org-agenda.el (org-agenda-Quit): Remove unnecessary function calls.
- org-agenda-Quit turns off column view if it is active, instead of
killing the agenda buffer, so there is no need to call
org-columns-remove-overlays when killing the buffer.
- org-agenda-reset-markers is already called when the kill-buffer-hook
is run.
* lisp/org-agenda.el (org-agenda-exit): Exit column view before trying to
exit agenda.
Running org-agenda-exit in column view deleted all buffers loaded by the
agenda, but it didn't actually exit the agenda because, if the agenda is
in column view, org-agenda-Quit turns off column view instead of killing
the agenda. So org-agenda-exit should either just quit column view if
it is active (and not delete the loaded buffers or quit the agenda) or
make sure that the agenda is not in column view before killing it.
Since org-agenda-Quit and org-agenda-quit already do the former, make
org-agenda-exit completely exit the agenda regardless of whether it is
in column view.
* lisp/ox-ascii.el (org-ascii-link): Obey to export function provided
through `org-add-link-type'.
(org-ascii--describe-links): Do not turn links above into notes.
* ox.el (org-export-expand-include-keyword): Infer :minlevel for
included Org documents if not set explicitly.
* test-ox.el (org-export-expand-include-keyword): Add tests for inferred :minlevel.
* ox.el (org-export--prepare-file-contents): Preserve footnotes
when using the LINES argument. New optional argument FOOTNOTES.
(org-export-expand-include-keyword): New optional argument
FOOTNOTES.
* test-ox.el (test-org-export/expand-include): Add test for INCLUDE
with :lines and footnotes.