3.0.0
After almost two years, this is the first stable release for Drupal 8.
Changes since the last release candidate:
- The
[list]
tag has been rewritten in the same way the[table]
tag has. Both now allow safely nesting further tags (including more tables and lists) inside them. - The module is up to date with the stable Drupal 8.4.x series.
- Tag attachments are now loaded when rendering the tag preview, so JS-using tags will behave correctly. (Attachments still cannot be manually added via the admin UI, but are transferred when copying existing tags and can be added by modules or config editors.)
To resummarize the major changes since the D7 version:
- The parser now creates and then renders a syntax tree when processing BBCode.
- Tags use the plugin architecture provided by Symfony/Drupal, with tag plugins either defined by annotated PHP classes or derived from a config entity. Custom tags form a subset of the latter.
- Instead of global vs format-specific settings, these settings are now represented by Tag Sets, which map tag names to plugins. This allows multiple BBCode formats to use the same tag set, and the same plugin to be aliased to multiple tag names.
- Custom tags now use the Twig template engine instead of PHPTemplate, greatly improving security.
- The custom tag form is interactive, rendering an AJAX preview and reporting Twig syntax errors.
The parser is now decoupled from the Drupal module, and is also available as a standalone package at https://github.com/cburschka/xbbcode-parser / https://packagist.org/packages/ermarian/xbbcode. As of now, the Drupal module still duplicates this code; in the future, it may switch to using the composer package.