xbbcode 8.x-3.0-alpha4 ---------------------- - #2627826: Rewrote the parsing algorithm, and used the prepare() phase of the filter. Tags are now validated before any other filters are applied, and the tag arguments (as well as a copy of the source text) are base64-encoded to bypass other filters. This means that tag.option, tag.attr.* and tag.source are now raw values, and only the content is processed by other filters first. Tag contents are rendered on demand, so a [code] tag's content will never be rendered in the first place. - #2633282: Removed self-closing property. All tags must be closed explicitly. - #2630676: Added some tests for the filter itself. So far it tests attribute parsing, as well as parsing of various nested tags. - #2634160: Text after the last closing tag was not appended (including the entire input text, if it has no tags). - #2634170: Escape quotes in unquoted values. This is needed to disambiguate between the unquoted value `\"foo\"`, and the double-quoted value `"foo"`. - #2634274: Escape ] in unquoted values. This is needed to ensure the expression does not match beyond the end of the opening tag. - #2634224: Mark content() and outerSource() as safe, after escaping the attribute string included in outerSource(). - Increased minimum size of template textarea to 15 lines. - Documented tag.source and tag.outerSource variables in the help text. - Sorting tag plugins by name in the tips and the settings. - Added final newline to list template. - Removed double newline in Element. - #2630152: Reference template files via @module/template.html.twig instead of injecting them into the theme registry with hook_theme(). - #2634170: Remove some redundant look-ahead assertions from the regex. - Call TableTagPlugin::splitComma statically. - Add a notice about output security to the documentation. - #2629256: Remove quotes from [font] CSS.