Release Notes for Cristal 0.24-rc-1

Last modified by Manuel Leduc on 2025/11/24 11:10

This is the release notes for Cristal.

This release comes with the integration of the messages macro (e.g., error, warning, or success). They allow for users to highlight blocks of code in a uniform way, with editor support. It also includes safeguards to warn users of badly configured authentication.

Information

Note for translators: While there is currently no easy way to switch languages, we started extracting translatable text info a format that can be exploited by Weblate. You can already start translating a few translation keys.

Warning

Cristal is still under heavy development.

  • All APIs are subject to be changed without notice
  • A lot of features are subject to limitations that will be removed over time
  • See the Roadmap page to see what we plan to work on in the next releases

New and Noteworthy (since Cristal 0.23)

Full list of issues fixed and Dashboard for 0.24.

For Users

Introduction of the "messages" macros

 
A new set of message macros has been introduced, to set display colorful informative message: info, warning, error and success.

They all take a body in the syntax of the current page, which will be highlighted (see screenshots).

Miscellaneous

  • Notification for missconfigured XWiki instance: XWiki instances need to be configured in a certain way to support authentication on a remote Cristal instance. Starting with the next release of cristal-integration (version 1.2.0), a warning will be displayed on Cristal after log-in if there is any issue with the configuration of the XWiki instance.

For Admins

No changes!

For Developers

Changes to UniAst

 
UniAST now uses a call sub-object for macro blocks and inline macros, which is a MacroInvocation-typed object.

New function utilities

 
New function utilities have been added: produceHtmlEl which is a helper to create HTML strings for DOM elements, and escapeHtml which escapes all HTML-specific characters in a string.

Rendering macros to HTML

 
Macros can now be rendered to HTML using the MacrosAstToHtmlConverter service interface.

Macros can now have a content

 
Macros can now have a body, using the same syntax as XWiki's.

Rendering is performed is done by providing the bodyType in the macro's informations to either none (no content), raw (body is not parsed and provided to the macro as-is), or wysiwyg (body is parsed using the page's syntax).

Support for information banners on main page

 
It is now possible to display information banners on Cristal by defining UI extensions with the extension point main.banner.

Miscellaneous

  • Enable styling of macros' editable area: Macros can now apply their own styling to their editable area, using the same styling object as other blocks.

  • Alerts with flat corners: The alert component has a new flatCorners property, to be used inside banners for example.

Upgrades

Security Issues

Security issues are not listed in issue lists or dashboards to avoid disclosing ways to use them, but they will appear automatically in them once they're disclosed. See the XWiki Security Policy for more details.

Known issues

Removed modules

  • @xwiki/cristal-markdown-api
  • @xwiki/cristal-markdown-default

API Breakages

@xwiki/cristal-uniast-api

  • UniAst now uses a call sub-object for macro blocks and inline macros, which is a MacroInvocation-typed object.

@xwiki/cristal-macros-api

  • macroBlockEditableArea and macroInlineEditableArea now have a style propery to style the block itself
  • Macros now specify their bodyType as none (no content), raw (body is not parsed and provided to the macro as-is), or wysiwyg (body is parsed using the page's syntax).
  • The render function now takes a rawBody parameter for when the macro's bodyType is set to raw

Credits

France 2030 Logo

This project is being financed by the French State as part of the France 2030 program

Ce projet est financé par l’État Français dans le cadre de France 2030

The following people have contributed code to this release (sorted alphabetically):

  • ClementEXWiki
  • Manuel Leduc
  • Pierre Jeanjean
  • Simpel
  • Thiago Krieck
  • xrichard

Get Connected