update packages and add valign

This commit is contained in:
2026-04-05 20:00:27 +02:00
parent b062fb98e3
commit 03fb00e374
640 changed files with 109768 additions and 39311 deletions

View File

@@ -4,13 +4,930 @@ ORG NEWS -- history of user-visible changes. -*- mode: org; coding: utf-8 -*-
#+LINK: doc https://orgmode.org/worg/doc.html#%s
#+LINK: msg https://list.orgmode.org/%s/
#+LINK: git https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=%s
#+LINK: git https://git.savannah.nongnu.org/cgit/org-mode.git/commit/?id=%s
#+macro: kbd (eval (org-texinfo-kbd-macro $1))
Copyright (C) 2012-2025 Free Software Foundation, Inc.
Copyright (C) 2012-2026 Free Software Foundation, Inc.
See the end of the file for license conditions.
Please send Org bug reports to mailto:emacs-orgmode@gnu.org.
* Version 9.8
** Important announcements and breaking changes
# Here, we list the *most important* changes and changes that _likely_
# require user action for most Org mode users.
# Sorted from most important to least important.
*** 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:
#+begin_example
javascript:location.href='org-protocol://store-link?url='+
encodeURIComponent(location.href);void(0);
#+end_example
*** =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
[[#link-preview][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:
#+begin_src emacs-lisp
(eval-after-load 'org-keys
(org-defkey org-mode-map (kbd "C-c C-x C-v") #'org-toggle-inline-images))
#+end_src
*** 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
# We list the most important features, and the features that may
# require user action to be used.
*** 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~ | {{{kbd(C-c C-n)}}} | {{{kbd(n)}}} |
| ~org-previous-visible-heading~ | {{{kbd(C-c C-p)}}} | {{{kbd(p)}}} |
| ~org-forward-heading-same-level~ | {{{kbd(C-c C-f)}}} | {{{kbd(f)}}} |
| ~org-backward-heading-same-level~ | {{{kbd(C-c C-b)}}} | {{{kbd(b)}}} |
| ~org-up-heading~ | {{{kbd(C-c C-u)}}} | {{{kbd(u)}}} |
| ~org-next-block~ | {{{kbd(C-c M-f)}}} | {{{kbd(f)}}} |
| ~org-previous-block~ | {{{kbd(C-c M-b)}}} | {{{kbd(b)}}} |
| ~org-next-link~ | {{{kbd(C-c C-x C-n)}}} | {{{kbd(n)}}} |
| ~org-previous-link~ | {{{kbd(C-c C-x C-p)}}} | {{{kbd(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 [[info:org#Repeating commands]["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.
*** All Org link types can be previewed
:PROPERTIES:
:CUSTOM_ID: link-preview
:END:
Org links support a new parameter =:preview= that can be used to
preview arbitrary link types. The value of this parameter should be a
function that is called to preview links of the corresponding type
(see ~org-link-parameters~).
The new preview system does not bring any brand-new link previews, but
open the possibility for third-party packages to implement custom previews
without having to use non-ideal hacks.
On the user side, the existing image link previews should now run
smoother, especially in Org buffers that have a lot of image links to
preview. The new previews are less blocking, previewing link in
batches, without fully blocking Emacs. See the new
~org-link-preview-batch-size~ and ~org-link-preview-delay~ options.
*** 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 [[https://orgmode.org/worg/org-release-notes.html#preview-align][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
:PROPERTIES:
:CUSTOM_ID: 9.8-datetree-treetype
:END:
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_example
,#+begin_src sqlite :db /tmp/rip.db :readonly yes :exports both
create table rip(a,b);
,#+end_src
#+end_example
This results in an error such as:
#+begin_example
Runtime error near line 2: attempt to write a readonly database (8)
[ Babel evaluation exited with code 1 ]
#+end_example
** New and changed options
# Changes dealing with changing default values of customizations,
# adding new customizations, or changing the interpretation of the
# existing customizations.
*** 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.
#+begin_example
,***** Comment
:PROPERTIES:
:BEAMER_env: onlyenv
:BEAMER_act: <2->
:END:
This text will be displayed on animation step 2 and later.
#+end_example
**** =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
[[info:org#Tag Hierarchy][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
# This also includes changes in function behavior from Elisp perspective.
*** 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 [[#9.8-datetree-treetype][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,
#+begin_src emacs-lisp
(let ((children nil))
(org-element-create 'section nil children)) ; => (section nil)
#+end_src
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 [[#9.8-datetree-treetype][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
#+begin_example
(with-eval-after-load 'ob-calc
(setq org-babel-header-args:calc
(append '(:results . "verbatim") org-babel-header-args:calc)))
#+end_example
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 [[https://orgmode.org/worg/org-release-notes.html#ox-org-special-table-rows][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.
#+begin_quote
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/
#+end_quote
*** 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.
* Version 9.7
** Important announcements and breaking changes
@@ -285,6 +1202,9 @@ Images dropped also respect the value of ~org-yank-image-save-method~
when ~org-yank-dnd-method~ is =attach=.
*** Alignment of image previews can be customized
:PROPERTIES:
:CUSTOM_ID: preview-align
:END:
Previously, all the image previews were always left-aligned.
@@ -323,7 +1243,7 @@ This is no longer the case. ~display-buffer-alist~ is fully obeyed.
~org-switch-to-buffer-other-window~ and ~org-no-popups~ are now deprecated.
*** Asynchronous code evaluatation in ~ob-shell~
*** Asynchronous code evaluation in ~ob-shell~
Running shell blocks with the ~:session~ header freezes Emacs until
execution completes. The new ~:async~ header allows users to continue
@@ -1634,6 +2554,9 @@ Previously, all the header arguments where stripped from src blocks
during export. Now, header arguments are preserved.
*** =ox-org= now exports special table rows by default
:PROPERTIES:
:CUSTOM_ID: ox-org-special-table-rows
:END:
Previously, when exporting to Org, special table rows (for example,
width cookies) were not exported. Now, they are exported by default.
@@ -4205,10 +5128,13 @@ wget -c "https://ben.akrin.com/crackzor/crackzor_1.0.c.gz"
#+end_example
*** Add ~:session~ support of ob-js for js-comint
#+begin_src js :session "*Javascript REPL*"
console.log("stardiviner")
#+end_src
# SIC, JavaScript miscapitalized in `js-comint.el'.
*** Add ~:session~ support of ob-js for Indium
#+begin_src js :session "*JS REPL*"
console.log("stardiviner")
@@ -5568,7 +6494,7 @@ the end of the string.
*** Function ~org-info-export~ changes.
HTML links created from certain info links now point to =gnu.org= URL's rather
HTML links created from certain info links now point to =gnu.org= URLs rather
than just to local files. For example info links such as =info:emacs#List
Buffers= used to be converted to HTML links like this:

View File

@@ -404,9 +404,6 @@
<style:style style:name="OrgTags" style:family="text"/>
<style:style style:name="OrgPriority" style:family="text"/>
<style:style style:name="OrgPriority-A" style:family="text" style:parent-style-name="OrgPriority"/>
<style:style style:name="OrgPriority-B" style:family="text" style:parent-style-name="OrgPriority"/>
<style:style style:name="OrgPriority-C" style:family="text" style:parent-style-name="OrgPriority"/>
<style:style style:name="OrgTimestamp" style:display-name="OrgTimestamp" style:family="text">
<style:text-properties style:font-name="Courier New" fo:background-color="transparent" style:font-name-asian="NSimSun" style:font-name-complex="Courier New"/>

View File

@@ -1,7 +1,7 @@
The files OrgOdtContentTemplate.xml and OrgOdtStyles.xml have the
following copyright information:
Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copyright (C) 2010-2026 Free Software Foundation, Inc.
These files are part of GNU Emacs.