Changes Report

Last modified by Vincent Massol on 2026/09/10 13:54

Block not allowed macro install

The Install button is disabled for user who don't have the right to install a macro in the WYSIWYG macro picker.

Temporary Resource Script Service

A new script service is available to check if a temporary resource exists and to get its URL:

{{velocity}}
#set ($tempResourceReference = ...)
#if ($services.resource.temporary.exists($tempResourceReference))
  [[Download>>path:$services.resource.temporary.getURL($tempResourceReference)]]
#end
{{/velocity}}

Global Job Runner JavaScript Module

The xwiki-job-runner JavaScript module has been published in the global RequireJS configuration which means it can now be used directly without specifying its path:

require(['xwiki-job-runner'], function(JobRunner) {
  ...
}

See the Job Module documentation for more information.

Block not allowed macro install

The Install button is disabled for user who don't have the right to install a macro in the WYSIWYG macro picker.

Mimetype provided for attachments in Document Tree response

The mimetype is now provided for attachments when calling XWiki.Document to retrieve the document tree hierarchy.

Active Installs 2

New anonymous information is now sent by Active Installs (number of pages and number of users in both the main wiki and the subwikis).

Temporary Resource Script Service

A new script service is available to check if a temporary resource exists and to get its URL:

{{velocity}}
#set ($tempResourceReference = ...)
#if ($services.resource.temporary.exists($tempResourceReference))
  [[Download>>path:$services.resource.temporary.getURL($tempResourceReference)]]
#end
{{/velocity}}

Global Job Runner JavaScript Module

The xwiki-job-runner JavaScript module has been published in the global RequireJS configuration which means it can now be used directly without specifying its path:

require(['xwiki-job-runner'], function(JobRunner) {
  ...
}

See the Job Module documentation for more information.

Figure Type Identification

A data-xwiki-rendering-figure-type property is added to the rendered figures macro. Its value is table if the figure contains a single table, and figure otherwise.

Macro Categories listed in the available macros page

The list of all the categories of the macros are now listed in the available macros page.

Provide a way to list the categories of a macro

The MacroCategoryManager from Rendering Macro Transformation provides a getMacroCategories operation that takes a MacroId object and return the set of categories of the macro. The default implementation takes into account the macro categories overriding that can be done in xwiki.properties.

Script service to access the macro categories

Calling $services.rendering.getMacroCategories($macroId) returns a Set of the categories of the macro. See XWiki Platform - Rendering - XWiki-specific Implementation.

New HTML Sanitizer

A new HTML Sanitizer component has been added that allows checking if a certain HTML element, attribute and attribute value are considered safe according to the current configuration. This can be used when validating user input. The sanitizer also supports SVG and MathML with the features available when they are embedded in HTML documents.

Improved Less SSX Caching

When writing a SSX using LESS, the SSX request parameters are now taken into account for caching the results of the LESS compilation output.

Improved Macro picker for "not installed" macros

The WYSIWYG editor allows selecting not yet installed macros in the macros picker, but it was missing some usability information. You now see which recommended extensions a macro belong to, and you get a more explicit warning about what will happen when you select such macros.

Notification handling memory improvement

The dispatching of notifications to the user has been rewritten to reduce a lot the memory required for it and improve reliability.

PDF Export Application Improvements

The PDF Export Application (which is still experimental and not bundled in XWiki Standard) has a couple of improvements:

  • The user's own web browser is now used by default to generate the PDF, but the application can still be configured to use a remote Chrome instance or one that runs inside a Docker container. Check out the migration section below for more information.
  • When a remote (or Docker based) Chrome instance is used for PDF printing the application now checks if connection is working before showing the PDF export options. An error message is shown in case the Chrome browser can't be accessed.
  • In case of PDF export failure, the last error message from the PDF export job log is now displayed.
  • The underlying JavaScript library used for paginating the content before printing to PDF (PagedJS) has been upgraded to its latest version.

Replace the Livetable from the attachments tab with a LiveData

The attachments Livetable was updated to use the new LiveData.

New event when livedata entries are displayed

A new javascript event xwiki:livedata:entriesUpdated is now triggered for LiveData when the entries are displayed: this event can be listened to when an extension need to augment the data.

DocumentVersionReference is part of the model API

The DocumentVersionReference is now part of the model API: this reference API allows to manipulate a DocumentReference with a specific version attribute, allowing to specifically target a version of the document.

Get Connected