Changes Report
Improved default look and feel of PDF export

The look and feel of the default PDF export was slightly improved: sans serif font is now used by default and some graphic elements were added to better separate the regions of the page (header, footer, etc.).
Script API to access the macro descriptor
![]()
The rendering script service has been extended with APIs to resolve a macro id and to access the macro descriptor:
#set ($macroId = $services.rendering.resolveMacroId('info/xwiki/2.1'))
#set ($macroDescriptor = $services.rendering.getMacroDescriptor($macroId))Check the Rendering Module documentation for more information.
Execute JavaScript Inside Editing Area

The CKEditor has a new configuration option to enable the loading of the JavaScript Skin Extensions inside the editing area. This can improve the way macros are displayed inside the editor, if they require JavaScript, but it has some downsides. Check the CKEditor Integration documentation for more information.
Mark the scripts that are safe to be executed inside the WYSIWYG editor
![]()
The WYSIWYG editor doesn't execute the JavaScript code inside the editing area by default. If you need this then you need to:
- Enable the loading of the JavaScript Skin Extensions from the WYSIWYG editor administration section
- Mark the scripts that are safe to be loaded inside the editing area:
#set ($discard = $xwiki.jsx.use('Path.To.MyMacro', {'wysiwyg': true}))
Check the CKEditor Integration documentation for more information.
New parameter in the generic page picker
![]()
We have added a parameter to restrict the suggestions of a page picker to a page and its children.
Notifications settings are now available as macros
![]()
New macros have been created, so you can include your notification settings in many pages (such as the dashboard). These macros are:
- {{notificationsEmailPreferences /}}
- {{notificationsApplicationsPreferences /}}
- {{notificationsFiltersPreferences /}}
FigureBlock & FigureCaptionBlock
![]()
New Rendering Blocks were added: FigureBlock and FigureCaptionBlock. For example those blocks are generated by the Figure Macro.
Export menu extension point
![]()
It's now possible to inject a new button in the export menu. Checkout the documentation for more details.
Inject extension features
![]()
It's possible to dynamically inject additional features to an extension when downloaded from a repository or a core extension. See Virtual extensions for more details.
Distribution Wizard configuration
![]()
It's now possible to control from the xwiki.properties file if the Distribution Wizard should be automated or interactive and which Flavor to install/upgrade on main or sub wikis. See DistributionWizard for more details.
Navigation in the changes view

Arrows have been added to easily navigate between changes of a document.
Customize message for denied access
![]()
It is now possible to customize the content displayed to the user when a denied access occurs, without modifying the skin, hence facilitating the upgrades. This customization can be brought by creating a page at XWiki.AccessDenied. It works in the same way as XWiki.DocumentDoesNotExist, XWiki.WikiDoesNotExist and XWiki.AttachmentDoesNotExist. See also the related documentation paragraph "Customizing error pages" that was added to the XWiki configuration guide.
![]()
The component NamespaceContextExecutor has been introduced to be able to execute some code in the context of a different namespace (e.g. in a different wiki).
New Tip

New tip about x+x+x+a and x+x+x+h key combos.
Messages in Notifications



When the Message Stream Application is enabled (which is not the case by default), you can now see your messages in the notifications.
With this feature in place, the Notifications application is now able to fully replace the Activity Stream one (which will happen in the following versions of XWiki).
The content of 'doc.location' in Livetables is automatically set to HTML
![]()
The content of the 'doc.location' column in livetables is now automatically set to HTML, there is no need to add 'doc.location':{'html':true} to the $columnProperties of the livetable anymore.
Checksum policy for Maven repositories
![]()
It's now possible to control in xwiki.properties file the behavior of each Maven repository handler regarding failing checksum validation. The default is warn.
Menu is now available in Administration


The Menu application is now available through the Administration under the Look & Feel category. By default, the application is now hidden from the panels of applications.
Argument to specify the wait time in the stop_xwiki.sh script
![]()
You can now specify, in the stop_xwiki.sh script, the number of seconds to wait for the XWiki lock to be released before exiting. For instance "stop_xwiki.sh -wt 10" will make the script wait 10 second. The default wait time is now 30sec.
No longer committing XML document date fields
![]()
Our maven XAR plugin's xar:verify goal will now fail the build if the XAR module contains XML pages with date fields in them. To clear them automatically, just use xar:format which was also updated to remove such fields. This behavior can be skipped for individual files or for the entire project. See the documentation for more details.