@@html:
@@
You can keep up with upcoming changes, requests for help, bug reports and submitted patch by checking updates.orgmode.org and by subscribing to the RSS feeds there.
A bug has been affecting internal links to headlines, like
[[*Headline][A link to a headline]]
Storing a link to a headline may have been broken in your setup and those links may appear as
[[*TODO Headline][A link to a headline]]
Following the link above will result in an error: the TODO keyword should not be part of internal file links.
You can use the following command to fix links in an Org buffer:
(defun org-fix-links () "Fix ill-formatted internal links. E.g. replace headline by headline. Go through the buffer and ask for the replacement." (interactive) (visible-mode 1) (save-excursion (goto-char (point-min)) (let ((regexp (format "\\[\\[\\*%s\\s-+" (regexp-opt org-todo-keywords-1 t)))) (while (re-search-forward regexp nil t) (when (and (save-excursion (goto-char (match-beginning 0)) (looking-at-p org-link-bracket-re)) (y-or-n-p "Fix link (remove TODO keyword)? ")) (replace-match "[[*"))))) (visible-mode -1))
This changes affects export back-ends, and libraries providing new link types.
Function used in :follow
link parameter is required to accept a
second argument. Likewise, function used in :export
parameter needs
to accept a fourth argument. See org-link-set-parameters
for
details.
Eventually, the function org-export-custom-protocol-maybe
is now
called with a fourth argument. Even though the 3-arguments definition
is still supported, at least for now, we encourage back-end developers
to switch to the new signature.
Python blocks with :session :results value
header arguments now only
return a value if the last line is a top-level expression statement.
Also, when a None value is returned, "None" will be printed under
"#+RESULTS:", as it already did with :results value
for non-session
blocks.
When the headline has a CUSTOM_ID
, use this custom id to build the
div id. For example, if you have :CUSTOM_ID: my-headline
then the
resulting
<div id="outline-container-my-headline">
.You may want to check whether your HTML files are rendered differently after this change.
<C-c C-TAB>
for org-force-cycle-archived
org-force-cycle-archived
used to be associated with <C-TAB>
but
this keybinding is used in Emacs for navigating tabs in Emacs. The
new keybinding is <C-c C-TAB>
.
These options now default to =t=:
org-loop-over-headlines-in-active-region
org-fontify-done-headline
org-src-tab-acts-natively
You may want to read the docstrings of these options to understand the consequences of this change.
Also, org-startup-folded
now defaults to showeverything
.
org-agenda-loop-over-headlines-in-active-region
allows you to loop
agenda commands over the active region.
When set to t
(the default), loop over all headlines. When set to
='start-level=, loop over headlines with the same level as the first
headline in the region. When set to a string, loop over lines
matching this regular expression.
org-table-header-line-mode
Turn on the display of the first data row of the table at point in the window header line when this first row is not visible anymore in the buffer.
You can activate this minor mode by default by setting the option
~org-table-header-line-p~ to t
. You can also change the face for
the header line by customizing the org-table-header
face.
org-list-checkbox-radio-mode
When this minor mode is on, checkboxes behave as radio buttons: if a checkbox is turned on, other checkboxes at the same level are turned off.
If you want to occasionally toggle a checkbox as a radio button
without turning this minor mode on, you can use <C-c C-x C-r>
to
call org-toggle-radio-button
.
You can also add #+ATTR_ORG: :radio t
right before the list to tell
Org to use radio buttons for this list only.
org-adapt-indentation
org-adapt-indentation
now accepts a new value, 'headline-data
.
When set to this value, Org will only adapt indentation of headline
data lines, such as planning/clock lines and property/logbook drawers.
Also, with this setting, org-indent-mode
will keep these data lines
correctly aligned with the headline above.
You can now set org-priority-highest/lowest/default
to integers to
use numeric priorities globally or set, for example
to define a buffer-local range and default for priorities. Priority commands should work as usual. You cannot use numbers superior to 64 for numeric priorities, as it would clash with priorities like [#A] where the "A" is internally converted to its numeric value of 65.
Property drawers are now allowed before the first headline.
Org mode is moving more towards making things before the first headline behave just as if it was at outline level 0. Inheritance for properties will work also for this level. In other words: defining things in a property drawer before the first headline will make them "inheritable" for all headlines.
After editing a source block, Org will restore the window layout when ~org-src-window-setup~ is set to a value that modifies the layout.
Org now knows how to display remote images inline.
Whether the images are actually displayed is controlled by the new
option org-display-remote-inline-images
.
org-resolve-clocks
now has a `t' option, which works just like the
`k' option, but the user specifies a time of day, not a number of
minutes.
semimonth
accepted for clock tablesYou can now use C-x C-+
in column view: the columns face size will
increase or decrease, together with the column header size.
#+startup: num
When this startup option is set, display headings as numerated.
Use #+startup: nonum
to turn this off.
Org provides a new tool org-link-open-as-file
, useful when defining
new link types similar to "file"-type links. See docstring for
details.
org-return
In situations where org-return
calls newline
, multiple newlines
can now be inserted with this prefix argument.
:file-mode
Source code block header argument :file-mode
can set file
permissions if :file
argument is provided.
RET
and C-j
now obey electric-indent-mode
Since Emacs 24.4, electric-indent-mode
is enabled by default. In
most major modes, this causes RET
to reindent the current line and
indent the new line, and C-j
to insert a newline without indenting.
Org mode now obeys this minor mode: when electric-indent-mode
is
enabled, and point is neither in a table nor on a timestamp or a link:
RET
(bound to org-return
) reindents the current line and indentsC-j
(bound to the new command org-return-and-maybe-indent
)To get the previous behaviour back, disable ~electric-indent-mode~ explicitly:
(add-hook 'org-mode-hook (lambda () (electric-indent-local-mode -1)))
ob-C.el
allows the inclusion of non-system header filesIn C and C++ blocks, :includes
arguments that do not start with a
~<~ character will now be formatted as double-quoted ~#include~
statements.
ob-clojure.el
supports inf-clojure.el and ClojureScript evaluationYou can now set (setq org-babel-clojure-backend 'inf-clojure)
and
evaluate Clojure source blocks using inf-clojure. With a header
argument like :alias "alias"
the Clojure REPL will boot with
=clojure -Aalias=. Otherwise Clojure will boot with lein
, boot
or
=tools.deps=, depending on whether the current directory contains a
=project.clj=, build.boot
or deps.edn
, falling back on
~inf-clojure-generic-cmd~ in case no such file is present.
Also, when using cider, you can now use #+begin_src clojurescript
to
execute ClojureScript code from Org files. Note that this works only
if your Org file is associated with a cider session that knows how to
run ClojureScript code. A bare lein repl
session outside of a
directory configured for ClojureScript will not work.
ob-java.el
supports Java command line argumentsBabel Java blocks recognize header argument :cmdargs
and pass its
value in call to java
.
ob-screen.el
now accepts :screenrc
header argumentScreen blocks now recognize the :screenrc
header argument and pass
its value to the screen command via the "-c" option. The default
remains /dev/null
(i.e. a clean screen session)
Set org-plantuml-exec-mode
to 'plantuml
in order to use the
executable instead of JAR. When using an executable it is also
possible to configure executable location as well as arguments via:
=org-plantuml-executable-path= and org-plantuml-executable-args
.
org-table-header-line-mode
Turn on a minor mode to display the first data row of the table at point in the header-line when the beginning of the table is invisible.
org-agenda-ctrl-c-ctrl-c
Hitting <C-c C-c>
in an agenda view now calls org-agenda-set-tags
.
org-hide-entry
This command is the counterpart of org-show-entry
.
org-columns-toggle-or-columns-quit
<C-c C-c>
bound to org-columns-toggle-or-columns-quit
replaces the
recent org-columns-set-tags-or-toggle
. Tag setting is still
possible via column view value edit or with <C-c C-q>
.
org-datetree-find-month-create
Find or create a month entry for a date.
org-html-prefer-user-labels
When non-nil, use NAME
affiliated keyword, or raw target values, to
generate anchor's ID. Otherwise, consistently use internal naming
scheme.
org-agenda-window-setup
CUSTOM_ID
values are still always used, when available.
Choosing other-tab
for org-agenda-window-setup
will open the
agenda view in a new tab. This will work with versions of Emacs since
27.1 when tab-bar-mode
was introduced.
org-table-header-line-p
Setting this option to t
will activate ~org-table-header-line-mode~
in org-mode buffers.
org-startup-numerated
When this option is t
, Org files will start using ~(org-num-mode 1)~
and headings will be visually numerated.
You can turn this on/off on a per-file basis with #+startup: num
or
=#+startup: nonum=.
org-clock-auto-clockout-timer
When this option is set to a number and the user configuration
contains (org-clock-auto-clockout-insinuate)
, Org will clock out the
currently clocked in task after that number of seconds of idle time.
This is useful when you often forget to clock out before being idle and don't want to have to manually set the clocking time to take into account.
A new `:tree-type month' option was added to org-capture-templates to group new datetime entries by month.
There is a new option plain
to org-src-window-setup
to show source
buffers using display-buffer
. This allows users to control how
source buffers are displayed by modifying display-buffer-alist
or
~display-buffer-base-action~.
org-archive-subtree-save-file-p
Archiving a subtree used to always save the target archive buffer. Commit b186d1d7 changed this behavior by always not saving the target buffer, because batch archiving from agenda could take too much time.
This new option org-archive-subtree-save-file-p
defaults to the
value from-org
so that archiving a subtree will save the target
buffer when done from an org-mode buffer, but not from the agenda.
You can also set this option to t
or to from-agenda
.
org-show-notification-timeout
This option will add a timeout to notifications.
org-latex-to-html-convert-command
This new option allows you to convert a LaTeX fragment directly into HTML.
org-babel-shell-results-defaults-to-output
By default, source code blocks are executed in "functional mode": it means that the results of executing them are the value of their last statement (see the documentation.)
The value of a shell script's execution is its exit code. But most users expect the results of executing a shell script to be its output, not its exit code.
So we introduced this option, that you can set to nil
if you want
to stick using :results value
as the implicit header.
In all Babel libraries, the absence of a :results
header should
produce the same result than setting :results value
, unless there is
an option to explicitly create an exception.
See this thread for more context.
org-attach-store-link-p
org-fontify-todo-headline
org-attach-store-link-p
has a new option to store a file link to the
attachment.
This feature is the same as org-fontify-done-headline
, but for TODO
headlines instead. This allows you to distinguish TODO headlines from
normal headlines. The face can be customized via org-headline-todo
.
org-file-apps
The new value uses Emacs as the application for opening directory.
org-agenda-filter-hook
Functions in this hook are run after org-agenda-filter
is called.
org-flag-drawer
functionUse org-hide-drawer-toggle
instead.
org-hide-block-toggle-maybe
functionUse org-hide-block-toggle
instead.
org-hide-block-toggle-all
functionThis function was not used in the code base, and has no clear use either. It has been marked for future removal. Please contact the mailing list if you use this function.
org-return-indent
functionIn Elisp code, use (org-return t)
instead. Interactively, C-j
is
now bound to org-return-and-maybe-indent
, which indents the new line
when electric-indent-mode
is disabled.
org-maybe-keyword-time-regexp
The variable was not used in the code base.
org-export-special-keywords
The variable was not used in the code base.
org-at-property-block-p
The new name is org-at-property-drawer-p
, which is less confusing.
org-columns-set-tags-or-toggle
See *~org-columns-toggle-or-columns-quit~.
From org-lowest-priority
to org-priority-lowest
.
From org-default-priority
to org-priority-default
.
From org-highest-priority
to org-priority-highest
.
From org-enable-priority-commands
to org-priority-enable-commands
.
From org-show-priority
to org-priority-show
.
ob-screen.el
now respects screen :session
nameScreen babel session are now named based on the :session
header
argument (defaults to default
).
Previously all session names had org-babel-session-
prepended.
org-forward-paragraph
and org-backward-paragraph
, bound to
~~ and <C-DOWN>
functions mimic more closely behaviour of
~forward-paragraph~ and backward-paragraph
functions when
available.
They also accept an optional argument for multiple calls.
org-table-to-lisp
no longer checks if point is at a tableSee their docstring for details.
The caller is now responsible for the check. It can use, e.g., ~org-at-table-p~.
The function is also much more efficient than it used to be, even on very large tables.
org-collect-keywords
Tooling for folding drawers interactively or programmatically is now
on par with block folding. In particular, org-hide-drawer-toggle
,
a new function, is the central place for drawer folding.
org-duration-to-minutes
understands 1d3h5min
as a duration,
whereas org-duration-from-minutes
can output this compact form if
the duration format contains the symbol compact
.
You can now use <C-n>
, <C-p>
, <SPC>
and <DEL>
key to scroll up
and down the agenda and attach dispatch window.
<C-c C-c>
in agenda calls org-agenda-set-tags
Both <C-c C-q>
and <C-c C-c>
set the tags of the headline in the
Org buffer. Both keybindings are now available from the agenda too.
Using (setq org-html-extension "")
or setting the HTML extension in
any fashion will produce the expected output, with no trailing period
to the resulting HTML file.
A task using a =.+= repeater and hours step is repeated starting from now. E.g.,
,,** TODO Wash my hands DEADLINE: <2019-04-05 08:00 Sun .+1h> Marking this DONE shifts the date to exactly one hour from now.
By default, HTML (via MathJax) and LaTeX export equation references
using different commands. LaTeX must use \ref{%s}
because it is used
for all labels; however, HTML (via MathJax) uses \eqref{%s}
for
equations producing inconsistent output. New option
~org-html-equation-reference-format~ sets the command used in HTML
export.
ob-haskell.el
supports compilation with :compile
header argumentBy default, Haskell blocks are interpreted. By adding =:compile yes= to a Haskell source block, it will be compiled, executed and the results will be displayed.
org-edit-special
with LaTeX fragmentsCalling org-edit-special
on an inline LaTeX fragment calls a new
function, org-edit-latex-fragment
. This functions in a comparable
manner to editing inline source blocks, bringing up a minibuffer set
to LaTeX mode. The math-mode deliminators are read only.
org-capture-current-plist
is now accessible during org-capture-mode-hook
org-refile.el
fileOrg refile variables and functions have been moved to a new file.
This bug originally reported by Matt Lundin and investigated by Andrew Hyatt has been fixed. Thanks to both of them.
For older Changes, see .