Release notes | Org mode


You can keep up with upcoming changes, requests for help, bug reports and submitted patch by checking tracker.orgmode.org and by subscribing to the RSS feeds there.

Version 9.8

Important announcements and breaking changes

You may need to update org-protocol bookmarklets for browsers

In Firefox 133 and Firefox 128.5 ESR, the previously suggested JavaScript bookmarklets replace the current page with the bookmarklet URL text. We have updated the manual with new bookmarklets that do not have this problem.

The new bookmarklets have void(0); appended at the end, so that they do not return anything.

Example:

javascript:location.href='org-protocol://store-link?url='+
      encodeURIComponent(location.href);void(0);

C-c C-x C-v command toggling inline image display has been reworked

Previously, C-c C-x C-v always toggled image display in the whole buffer (or narrowed part of the buffer). With prefix argument, it also forced displaying image links with description.

Now, C-c C-x C-v is bound to a new command org-link-preview, which uses different defaults:

  1. When the region is active, images in the region are previewed
  2. Otherwise, if there is an image at point, it is toggled. If there is no image at point, images in the current entry are previewed
  3. With the C-u argument, image previews in the active region or at point are cleared instead
  4. The C-u C-u argument unconditionally shows all images in the accessible portion of the buffer
  5. The C-u C-u C-u argument unconditionally clears all images in the accessible portion of the buffer
  6. Displaying images over links with description can be forced using numeric argument:
    • C-u 1 for toggling all images at point/current entry
    • C-u 11 for toggling all images in buffer

(The first five of these prefix argument behaviors are the same as that of the org-latex-preview command.)

In addition to images, org-link-preview can also be used to preview Org links of all types for which preview behavior is defined, see previews for arbitrary link types.

The old org-toggle-inline-images command is obsolete but still available. You can bind it back to C-c C-x C-v by adding the following to your config:

(eval-after-load 'org-keys
  (org-defkey org-mode-map (kbd "C-c C-x C-v") #'org-toggle-inline-images))

Org mode no longer treats :results drawer as verbatim output

Previously, :results drawer left the code block results verbatim in some scenarios. This is no longer the case, in line with the manual and the intended purpose of this option. However, the fix may have brought subtle changes in the code block output for users who made use of the previous erroneous behavior. If you use :results drawer in your Org documents, please watch out for potential changes in the code evaluation.

Diary-style timestamps are exported together with active timestamps

org-export-with-timestamps and org-icalendar-with-timestamps now treat diary-style timestamps as a type of active timestamp for purposes of export.

This mainly affects iCalendar export, where diary timestamps will now be included when only active timestamps are exported (the default).

This should have minimal impact on non-iCalendar exporters, since org-export-with-timestamps was already t by default. However, users who manually set org-export-with-timestamps to active will now have diary timestamps included as well.

To use the old behavior and export active timestamps only without diary timestamps, users can set org-export-with-timestamps and org-icalendar-with-timestamps to active-exclude-diary.

org-element-drawer-parser assigns :pre-blank property

Previously, the whole contents of drawer, including blank lines at the beginning were parsed as paragraph. Now, the blank lines at the beginning are stored in :pre-blank property, just as in other greater elements.

org-element-org-data-parser now returns syntax node with :pre-blank property

Previously, parsing org-data syntax node did not record information about blank lines at the beginning of the document. Now, the number of blank lines is recorded in :pre-blank property.

org-element-org-data-interpreter takes into account this information.

Emacs 26 and Emacs 27 support has been dropped

We maintain compatibility with the latest Emacs release, and two versions prior the latest. The latest is Emacs 30, so we drop everything before Emacs 28.

New features

Some navigation commands can now be repeated

When repeat-mode is turned on, the following navigation commands can be repeated:

Command Key binding Repeat key
org-next-visible-heading C-c C-n n
org-previous-visible-heading C-c C-p p
org-forward-heading-same-level C-c C-f f
org-backward-heading-same-level C-c C-b b
org-up-heading C-c C-u u
org-next-block C-c M-f f
org-previous-block C-c M-b b
org-next-link C-c C-x C-n n
org-previous-link C-c C-x C-p p

The keybindings in the repeat-maps can be changed by customizing org-navigation-repeat-map, org-link-navigation-repeat-map, and org-block-navigation-repeat-map.

See the new "Repeating commands" section in Org mode manual.

New babel backend for C# code blocks

Org now officially enables C# code block evaluation based on the .NET SDK. The old backend that does not use .NET SDK remains in org-contrib and will be removed in a future release. The built-in ob-csharp.el should be considered the official successor.

New %\*N placeholder in org-capture-templates

The new placeholder is like %\N, but gives access not only to the %^{prompt} values, but also to %^{prompt}X values.

Alignment of image previews can be customized

This feature was added in Org 9.7 but was not documented in the release notes. See retrospectively added news entry.

org-open-at-point-global now accepts prefix argument

The argument is passed through to org-link-open, allowing alternative way to open links, if link :follow function supports it.

ox-latex: Table of contents generation has been fixed and augmented

The LaTeX exporter differs from other exporters in that it does not include unnumbered sections in the table of contents by default. To include an unnumbered section, set the property :UNNUMBERED: toc on the section.

Alternatively, you can set the new custom variable org-latex-toc-include-unnumbered to include unnumbered sections by default, aligning with other exporters' behavior. In that case, to exclude a section from the table of contents, mark it as :UNNUMBERED: notoc in its properties.

Tables copied from LibreOffice Calc documents can be pasted as Org tables

Tables copied into the clipboard from LibreOffice Calc documents can now be pasted as an Org table using yank-media.

Ditaa code blocks can use ditaa executable, and can produce SVG output

In order to use a ditaa executable instead of a JAR file, you can set org-ditaa-default-exec-mode to 'ditaa. The location of the executable can be configured via org-ditaa-exec.

SVG output can now be generated; note, however, that this requires a ditaa version of at least 0.11.0.

New datetree capture :tree-type options

For datetree capture, :tree-type can now be any subset of (year quarter month week day) to construct a datetree with the specified levels. For back-compatibility, the default value of nil is an alias for (year month day), month is an alias for (year month), and week is an alias for (year week day).

If :tree-type is a superset of (month week), then weeks are assigned to the month containing Thursday, to be consistent with the ISO-8601 year-week rule. If :tree-type contains (quarter week) but does not contain month, then quarters are defined as 13-week periods (the final quarter of a 53-week year has 14-weeks). Otherwise, quarters are defined as 3-month periods.

Additionally, :tree-type can be a function, in which case it should take the date as an argument, and generate a list of pairs for org-datetree-find-create-hierarchy. This allows for creating new types of datetrees (e.g. for lunar calendars, academic calendars, retail 4-4-5 calendars, etc).

New shortdoc link type

You can now create links to shortdoc documentation groups for Emacs Lisp functions (see M-x shortdoc-display-group). Requires Emacs 28 or newer.

Beamer export supports setting frame subtitles

If a headline is exported as a frame, and has its BEAMER_SUBTITLE property set, the value is used as the subtitle.

:wrap header argument can now be explicitly disabled

Previously, presence of :wrap argument (inherited or not) in code block headers always made the block results wrapped. There was no way to disable wrapping if :wrap was specified in the inherited header arguments. Now, :wrap no or :wrap nil will explicitly disable wrapping.

ob-sqlite: Added ability to open a database in readonly mode

Added option :readonly to ob-sqlite.

With :readonly yes, the database is opened in readonly mode. For example:

#+begin_src sqlite :db /tmp/rip.db  :readonly yes  :exports both
create table rip(a,b);
#+end_src

This results in an error such as:

Runtime error near line 2: attempt to write a readonly database (8)
[ Babel evaluation exited with code 1 ]

New and changed options

New option org-edit-keep-region

Since Org 9.7, structure editing commands do not deactivate region after editing. Now, this is configurable via the new option.

xelatex can be used for LaTeX previews

A new process xelatex is added to org-preview-process-alist to allow generating LaTeX fragment preview through xdv file produced by XeLaTeX, which has better support for Unicode.

You can now set org-preview-latex-default-process to 'xelatex.

New link preview system

  • New option org-link-preview-batch-size

    Org link previews are generated asynchronously and a few at a time, in batches. This option controls the number of links that are previewed in each batch.

  • New option org-link-preview-delay

    Org link previews are generated asynchronously. This option controls the minimum idle time in seconds between previews of batches of links.

New and changed export options

  • org-html-style-default now highlights #+begin_src c (lowercase) blocks

    The default value has been changed, adding pre.src-c:before { content: 'C'; } (lowercase c) that parallels pre.src-C:before { content: 'C'; } (uppercase C).

  • org-odt-with-latex accepts any method from org-preview-latex-process-alist

    Previously, only a few conversion methods (dvipng, imagemagick, dvisvgm) could be used to render LaTeX fragments as images when exporting to ODT. Now any method in org-preview-latex-process-alist can be used.

  • New environment onlyenv in org-beamer-environments-default

    The onlyenv environment limits showing parts of an animated Beamer slide to specific animation steps.

    ***** Comment
    :PROPERTIES:
    :BEAMER_env: onlyenv
    :BEAMER_act: <2->
    :END:
    This text will be displayed on animation step 2 and later.
    
  • ox-html: Headline self links can be enabled from an Org mode file

    Previously HTML export could add, to each headline, a link to itself. To enable it, you had to use the variable org-html-self-link-headlines.

    Now, it's also possible to enable it per Org mode file by adding:

    #+OPTIONS: html-self-link-headlines:t
    
  • Allow disabling macro replacement during export

    New custom option org-export-replace-macros controls whether Org mode replaces macros in the buffer before export. Set it to nil to disable macro replacement.

    This variable has no effect on the {{{results...}}} macros for inline code block results.

  • New option org-cite-bibtex-bibliography-style

    This option adds a fallback bibliography style for BibTeX when none is provided in the #+CITE_EXPORT options. The default style is "plain".

  • New option org-cite-csl-bibtex-titles-to-sentence-case

    When this option is non-nil then title fields in BibTeX bibliography entries are converted to sentence-case before being formatted according to a CSL style, except for entries with a langid field specifying a non-English language. When nil, this conversion is limited to entries having a langid field specifying a variant of English. The default value is t as the CSL standard assumes that English titles are specified in sentence-case but the BibTeX bibliography format requires them to be written in title-case.

  • New option org-latex-mathml-directory

    This option specifies the path where MathML files generated from LaTeX fragments are stored.

  • New option org-latex-use-sans

    This option specifies the PDF should be typeset using the Sans font specified in the document class (or the user) instead of the default font (i.e. the Roman font).

  • New option #+LATEX_CLASS_PRE

    This option prepends LaTeX code before the LaTeX preamble.

  • New option org-odt-with-forbidden-chars

    The new export option controls how to deal with characters that are forbidden inside ODT documents during export.

    The ODT documents must follow XML1.0 specification and cannot contain certain Unicode characters. For example, form feed characters like ^L are disallowed.

    By default, ox-odt will strip such characters and display warning. You may return to the previous behavior by setting org-odt-with-forbidden-chars to t.

    Note that Emacs warnings can always be suppressed by clicking on ⛔ symbol or by customizing warning-suppress-types.

  • New option org-md-link-org-files-as-md

    This option makes it possible to disable mapping of linked org files to markdown during export to Markdown. This is analogous to how org-html-link-org-files-as-html works in export to HTML.

New context available to save in archived headings

org-archive-save-context-info can now contain olid symbol to save parent heading ID in the archived heading.

New hook org-archive-finalize-hook

Hook run after successfully archiving a subtree in final location. Unlike org-archive-hook, which runs in the source Org buffer, the new hook is called with point on the subtree in the destination file.

Headline/olp target in org-capture-templates can be a function/variable

The variable org-capture-templates accepts a target specification as function or symbol for headline (file+headline) and olp (file+olp and file+olp+datetree).

The default value of org-babel-latex-process-alist is no longer taken from org-preview-latex-process-alist

The default value used to be pulled from dvipng process type from org-preview-latex-process-alist. Now, it defaults to using latexmk (when available), or running latex multiple times, so that all the references are resolved in the generated PNG.

org-tags-sort-function can now be a list of functions

org-tags-sort-function can now be set to a list of functions. Subsequent sorting functions will be used if two tags are found to be equivalent. See docstring for more information.

New tags sorting function org-tags-sort-hierarchy

By setting org-tags-sort-function to org-tags-sort-hierarchy, tags are sorted taking their hierarchy into account. See Tag Hierarchy for how to set up a tag hierarchy.

New option org-cite-basic-complete-key-crm-separator

This option makes org-cite's basic insert processor use completing-read-multiple instead of the default consecutive prompts. It can also be set to dynamically compute crm-separator so that the separator does not appear in completion candidates.

org-yank-image-save-method can be a function producing directory name

In previous versions, org-yank-image-save-method could be either a symbol attach or a string – directory name. Now it can also be a function, which will be called with no arguments and its return value will be used as a directory to save the image to.

org-refile-targets can now match all headlines in the target file(s)

Candidate refile targets may now be specified with the symbol t to indicate that all headlines within the specified file are to be considered. For example, setting org-refile-targets to ((nil . t)) will allow one to refile to any heading within the current buffer.

In ob-ditaa, the output type is now controlled consistently with other babel backends

Output file type is determined as specified in Babel documentation: the suffix of :file is the primary determinant, and :file-ext secondary. Header arguments :pdf and :eps are supported for backwards compatibility. Default output type is still PNG.

New functions and changes in function arguments

The deprecated show parameter to org-priority has been removed

The show parameter for the org-priority function was deprecated in Org 9.2 (released in 2017). Sufficient time has passed, and it is being removed as part of refactoring for numeric priorities.

org-attach-attach now returns a link to file stored

Previously, org-attach-attach did not have any specified default value. Now, it returns a list (LINK DESCRIPTION) to the file stored. The link obeys non-nil org-attach-store-link-p setting. When org-attach-store-link-p is nil, an attachment: link is returned.

New functions exposing link formatting done by org-insert-link

New function org-link-get-description exposes handling :insert-description link parameter and org-link-make-description-function.

New function org-link-make-string-for-buffer exposes link and description cleanups performed by org-insert-link, including cleaning up <...> brackets, stripping current buffer file path from the link, and adjusting file: links according to org-link-file-path-type.

ob-comint: New optional arguments controlling prompt handling

The new argument prompt-handling in org-babel-comint-with-output and org-babel-comint-async-register allows Babel languages to specify how prompts should be handled in comint output. If equal to filter-prompts, prompts are removed from output before it is passed on to language-specific processing. If equal to disable-prompt-filtering, then the prompt filtering is skipped. If unset, then the default behavior is the same as filter-prompts for backwards compatibility.

Prompt filtering is needed for some Babel languages, such as ob-shell, which leave extra prompts in the output as a side effect of evaluation. However, other Babel languages, like ob-python, don't leave extra prompts after evaluation, and skipping the prompt filtering can be more robust for such languages (as this avoids removing false positive prompts).

Elisp functions for new datetree tree-types

Accompanying the new datetree capture :tree-type options, on the elisp level org-datetree-find-create-entry and org-datetree-find-create-hierarchy generalize org-datetree-find-date-create, org-datetree-find-month-create, and org-datetree-find-iso-week-create to new datetree types.

New function org-src-get-lang-mode-if-bound

The new function is like org-src-get-lang-mode, except that it ensures the returned major mode for the given language is bound, and so available to the user. If the mode is not bound, the function can optionally return a fallback mode and display a message when doing so. The function was added so that Org can fall back to Fundamental mode for source blocks where the appropriate major mode is unavailable.

New function org-gnus-no-new-news-other-frame (to be used in org-link-frame-setup)

The new function is like org-gnus-no-new-news, but always opens the link in other frame.

New function org-string-width-invisibility-spec

The new function constructs an invisibility spec without folds and ellipses, suitable for org-string-width. This can be helpful for performance if org-string-width is called multiple times.

New command org-link-preview to preview Org links

This command replaces org-toggle-inline-images, which is now obsolete.

New command org-link-preview-region to preview Org links in a region or the buffer

This command replaces org-display-inline-images, which is now obsolete.

New command org-link-preview-clear to clear Org link previews in a region or the buffer

This command replaces org-remove-inline-images, which is now obsolete.

New command org-link-preview-refresh to refresh Org link previews in the buffer

This command replaces org-redisplay-inline-images, which is now obsolete.

org-html-head and org-html-head-extra can now be specified as functions

Previously, org-html-head and org-html-head-extra could only be specified directly as strings. Now, they can be set to functions that accept the INFO channel and return a string. This makes it possible to dynamically generate the content of the resulting <head> tag in the resulting HTML document.

org-element-create now ignores nil​s in CHILDREN argument

When CHILDREN contains nil elements, they are skipped. This way,

(let ((children nil))
  (org-element-create 'section nil children)) ; => (section nil)

will yield expected results rather than assigning literal nil as a child.

org-clock-get-clock-string now takes an optional max-length argument

When a max-length is passed to org-clock-get-clock-string, it will first attempt to truncate the headline and add an ellipsis in order to make the entire clock string fit under the length limit. If the length limit is too small to accommodate even a single character of the headline, after accounting for spaces and the surrounding parentheses, it will omit the headline entirely and just show as much of the clock as fits under the limit.

org-string-width now takes an optional invisibility-spec argument

For performance, if the invisibility spec has been constructed, it can be passed in as invisibility-spec instead of having it be constructed again.

Removed or renamed functions and variables

Obsolete functions and variables removed from org-datetree

Due to the refactoring of org-datetree to support the new datetree capture :tree-type options, the internal variable org-datetree-base-level has been removed, as well as the undocumented helper function org-datetree-insert-line.

Obsolete functions org-let and org-let2 are removed

If any code is still using these ancient functions, it should move to cl-progv.

org-show-empty-lines-in-parent is now obsolete

This function is unused in Org code and does not appear to be used in third-party code. To be removed in future releases.

org-edit-src-content-indentation is renamed to org-src-content-indentation

The new name highlights that the customization affects more than editing. org-src-content-indentation also affects detangling, printing Org syntax tree (for example, during export to Org), and indentation of src and example blocks in Org buffers.

org-cycle-display-inline-images is renamed to org-cycle-display-link-previews

Inline image previews in Org mode are now provided by the more general link previews feature. The behavior with regard to image links is unchanged.

org-cycle-inline-images-display is renamed to org-cycle-link-previews-display

The behavior is unchanged, except in that the new variable now affects previews of supported link types besides image links.

org-startup-with-inline-images is renamed to org-startup-with-link-previews

The behavior is unchanged, except in that the new variable now affects previews of supported link types besides image links.

ob-ditaa: org-babel-ditaa-java-cmd renamed and org-ditaa-jar-option made obsolete

To align with other customizable variable names, which do not contain the word babel, variable org-babel-ditaa-java-cmd has been renamed to org-ditaa-java-exec. The old variable org-babel-ditaa-java-cmd is still available as an obsolete alias.

Variable org-ditaa-jar-option did not serve any sensible purpose and has been made obsolete. Its value is still used in place of default parameter -jar if the variable is defined.

Miscellaneous

ob-calc.el: Vector and matrix are now inserted as Org tables by default

ob-calc now formats vector and matrix results as Org tables. This conversion can be overridden using the :results verbatim keyword on a per source block basis.

To get back the old behavior, add

(with-eval-after-load 'ob-calc
  (setq org-babel-header-args:calc
        (append '(:results . "verbatim") org-babel-header-args:calc)))

to your configuration.

The new behavior follows general babel backend rules (auto-detecting result type), but may affect the existing usage.

orgtbl-to-generic retains special rows when exporting to Org

Previously, special table rows were unconditionally removed when export to Org. Now, the defaults follow what ox-org does - to retain special rows by default. See previous change.

To retain the old behavior, add :with-special-rows nil to PARAMS argument:

(orgtbl-to-generic table '(:with-special-rows nil)

org-babel-lob-ingest no longer performs noweb expansion when ingesting blocks

Previously, org-babel-lob-ingest would expand noweb references when adding source blocks to the Library of Babel. Now, blocks are stored with unexpanded noweb references.

Noweb expansion is handled appropriately when blocks are actually used via org-babel-execute-src-block or org-babel-exp-do-export, with the correct context (:tangle, :export, or :eval).

This change is unlikely to affect most users, but code that directly accesses org-babel-library-of-babel may observe the difference.

Trailing - is now allowed in plain links

Previously, plain links like

https://domain/test-

did not include the trailing - punctuation.

Now, the - is allowed at the end, and is considered a part of the plain link.

These types of links will likely be encountered for sites where anchor targets are automatically generated from documentation headings which are questions. https://list.orgmode.org/orgmode/87sexh9ddv.fsf@ice9.digital/

Update of statistics cookies now respects narrowing

Calling org-update-statistics-cookies with a prefix argument will now only update cookies in the accessible portion of the buffer.

ox-man: Support specifying #+DATE: and org-export-with-date

Previously, ox-man ignored #+DATE: keyword even when org-export-with-date is set to non-nil. Now, the date is exported and specified in the footer-middle argument of .TH macro (see man 7 man).

ox-man: Support specifying :release and :header in #+MAN_CLASS_OPTIONS: in addition to :section-id

The newly added :release and :header options of #+MAN_CLASS_OPTIONS are respectively mapped to the footer-inside and header-middle arguments of the .TH macro (see man 7 groff_man).

org-capture target pointing to headline is now handled uniformly for plain entry type

Previously, when using file+regexp, file+function or function, plain entries were inserted right at the point according to regexp/function, even when point is on an existing headline.

Now, when target points to an existing headline, plain entries are inserted inside its body, honoring :prepend property. This is more consistent with how item, checkitem, and table-line templates are handled.

org-lint now checks priorities

Warnings are raised on headlines containing out-of-bounds, invalid (e.g., [#-1], [#AA]), or malformed (e.g., [#1, [#A) priorities.

In Dot code blocks, graphviz-dot-mode is used if available

Previously, when editing Dot code blocks with M-x org-edit-special, Dot code would open in Fundamental mode, even when specialized mode is installed. The new behavior is more DWIM.

Source blocks fall back to Fundamental mode

Org now falls back to Fundamental mode for source blocks when the appropriate major mode is unavailable.

Priority speed commands adapt to user options

Previously, 1, 2, and 3 would insert priorities A, B, and C, which causes errors when using numeric priorities. These now insert org-priority-highest, org-priority-default, and org-priority-lowest, respectively.

org-store-link no longer asks to select store function when called noninteractively

Previously, when multiple store functions are available to store link at point, org-store-link would always ask user which store function to use.

Now, when org-store-link is called noninteractively (interactive? argument is nil), the first matching store function is used. Interactively, the previous behavior is retained.

Org mode may throw an error when attempting to include remote unsafe resource noninteractively

Previously, when org-resource-download-policy is ask (default), and Emacs is running in batch mode, Org mode simply skipped unsafe remote resources in the #+include:'s. Now, an error is thrown to avoid seemingly ignored #+include statements when publishing via batch scripts.

HTML export wraps <code> around all the exported src blocks

HTML export always uses <pre> tag around exported src blocks. In addition, previously, HTML export used <code> tag around src blocks when org-html-klipsify-src is non-nil.

Now, both <pre> and <code> tags are always wrapped around the export src blocks.

yank-media and DND handlers now honor the user option org-file-link-type

When inserting file: links, yank-media and DND handlers now respect the user option org-file-link-type.

org-timer-done-hook is now run before the timer is stopped

Previously, org-timer-countdown-timer and org-timer-start-time were unset when the hook is run. Now, they still hold the timer info.

ox-latex: LaTeX images are now stored alongside the exported .html file

Previously, LaTeX images (when HTML export does use images for LaTeX) were stored alongside the original .org file. Now, they are stored alongside the .html file.

This change will make links to LaTeX images point to the folder containing .html file, not the .org file.

Org mode no longer prevents flyspell from spell-checking inside LOGBOOK drawers

Previously, spell-checking via flyspell was disabled inside LOGBOOK (or org-log-into-drawer) drawers. Now, it is no longer the case. It can be useful to see spelling mistakes inside notes added via org-add-note command.

ob-R and ob-julia no longer use ESS settings for working directory

Previously, without :dir parameter, R and Julia code blocks could query for working directory during evaluation. This was because ess-ask-for-ess-directory setting was obeyed.

Now, ess-ask-for-ess-directory, ess-directory-function, and ess-directory are all ignored during code block evaluation (except when session is already running). In other words, R and Julia code blocks now conform to the "16.4 Environment of a Code Block" section of Org mode manual that prescribes Org buffer directory or :dir value to be used as working dir to run the code blocks.

org-cancel-repeater now cancels all the repeaters inside entry

Previously, org-cancel-repeater only canceled repeater in the first active timestamp inside heading. Now, all the repeaters are canceled.

The function is renamed to org-cancel-repeaters accordingly (the old name is still kept as an alias).

org-refile now saves current position to Org mark ring when jumping to heading

When org-refile is called with C-u or C-u C-u prefix argument (to jump to heading or to jump to the last refiled heading), it saves point to Org mark ring before jumping. Then, the user can return back via org-mark-ring-goto.

org-attach now considers symlinked files when searching pre-existing attach dirs

When Org buffer is opened from a symlink, Org mode looks into the original file directory when searching if an attachment directory already exists. This way, attachments will remain accessible when opening symlinked Org file.

When no attach dir exists, Org mode will still prefer creating it in the "default" directory - where the symlink is located.

Texinfo exporter now supports links in headings

The Texinfo exporter no longer removes links from headings. This applies to all headings, below and above the H and toc export #+OPTIONS:.

Texinfo exporter now considers numeric toc values in #+OPTIONS:

For example, given H:3 and toc:2 in #+OPTIONS:, all headings at the 1st and 2nd level appear in the table of contents and those at the 3rd level do not.

ob-tangle now tangles source blocks that do not specify a language if an inherited property sets a tangle filename

Previously, all source blocks that did not specify a language where ignored by org-babel-tangle-collect-blocks. Now, if it inherits a :tangle header argument with a value other than no or yes (that is, a filename), a source block without language will get tangled to that file.

BibTeX is tangled with the standard .bib file extension

Previously, bibtex source blocks located in a file named NAME.org were tangled into a file named NAME.bibtex. Now, they are tangled into a file named FILE.bib, using the standard extension .bib, matching the rest of the ecosystem, including BibTeX and LaTeX.

LaTeX export now respects org-latex-with... options in the PDF metadata

Previously, the LaTeX exporter handled the PDF metadata pdfcreator, pdfauthor and pdftitle as defined in org-latex-hyperref-template. This has changed, and these three fields will be defined as empty and not produce any metadata if their corresponding org-latex-with-author, org-latex-with-title, or org-latex-with-creator option is set to nil.

Fancy HTML5 export uses <time> element for timestamps

Previously, timestamps would always be rendered inside a <span class="timestamp">. Now, if both org-html-doctype is html5 and org-html-html5-fancy is enabled, org will use the semantic <time> element. This will also have the timestamp class, but additionally set the datetime attribute with a machine-readable variant of the timestamp. The format used for the attribute can be customized using org-html-datetime-formats.

Export dispatcher supports arrow keys and mouse wheel

Previously, the arrow keys and the mouse wheel were ignored in the export dispatcher, org-export-dispatch bound to C-c C-e. Now, they scroll the text in the export dispatcher window.

Add completion for ID links

Completion is enabled for ID links inserted with org-insert-link. Completion candidates, by default, will be sourced from all files known to contain headlines with IDs. You can use new option org-id-completion-targets to change where the candidates are searched.

Pre-populate the description for BBDB links

When inserting BBDB links, use the full name as the default link description, instead of nothing.

Older changes

For older Changes, see the full release notes.

Created by TEC with Org mode unicorn logo

licensed under the GNU FDL 1.3 — see the source code for this website.