You are here

CHANGELOG.txt in Extensible BBCode 4.0.x

2020-05-19 - 4.0.0

Feature release, and compatibility with Drupal 9.

4.x will be compatible with Drupal 8.8+ and Drupal 9+.

Once Drupal 9+ introduces deprecations that are not backward compatible
with Drupal 8, a 5.x branch will be opened for Drupal 9+ only. Features
will be backported to 4.x when feasible for as long as Drupal 8 is supported.

 - Rework HTML filtering in several ways:
   - Only attributes and option values have their HTML filtering reversed.
   - Make internal HTML sanitization optional (but still a recommended default).
   - Make the HTML sanitizer escape markup instead of deleting it.
   - Apply sanitization to tag source and outer source as well as content.
 - Cleanup and refactor to pass code inspection.
 - Update the sample code in README.md to work correctly.
 - Fixed some old encoding bugs in code used by [code], [list], and [table].
 - Allow editing the list of attached libraries in the custom tag form.
 - Detect and point out duplicate plugins using the same default tag name.

These features are the last to be backported to 8.x-3.x and released as a final
version 8.x-3.2, which is still compatible with Drupal 8.5+.

2018-06-03 - 8.x-3.1

Cleanup and refactor; system requirements increased.

 - Use PHP 7+ language features.
 - Use PHP 7.1+ language features.
 - Use Drupal 8.5+ core APIs.

2017-11-10 - 8.x-3.0

First stable release for Drupal 8.

 - Instead of configuring tag plugins directly in the filter format, admins now
   configure them in "Tag sets" which can be used by any number of formats.
 - Major improvements to stability, parsing, and admin UI.
 - A lot of code refactoring. Partially decoupled the parser component
   from the Drupal/Symfony framework.
 - Full overhaul of the caching system, tracking dependencies between filter
   output and the BBCode tags used in the input.
 - Improvements to the [list] and [table] tags with better handling of nested
   markup inside list items and cells.

2015-12-04 - 8.x-3.0-alpha1

This is the first full Drupal 8 port.

 - The procedural API is gone. The hook is replaced by an annotated plugin type,
   and the custom tag table with a config entity type.
 - Custom tags use Twig templates instead of HTML and PHP code.
 - Removed all special tag properties (nocode, plain, selfclosing).
 - Rewrote the parsing algorithm, and used the prepare() phase of the
   filter. Tags are now validated before any other filters are applied, and
   attributes as well as tag.source bypass all text filtering.
   Tag content is now rendered on demand only if the tag's renderer uses it.
 - The module now contains unit tests.

2012-02-19

 - Repository finally moved to drupal.org
 - Using PHP in custom tags now requires the PHP module, and the correct permission.
   This follows the core pattern of isolating the ability to evaluate PHP code
   into a separate permission from normal administrative access.

2012-02-18 - 2.1.0

 - Repository migrated from SVN on ermarian.net to GitHub.
 - Changed the rendering algorithm to render tags even inside nocode, and then
   discard the result when the nocode tag is closed successfully. This replaces
   the old behavior of blocking all rendering, and then retroactively do it
   if the nocode tag breaks. This code was vulnerable to input that used quadratic time.
 - Stopped injecting tag content and arguments into evaluated PHP code. Instead,
   the code must access the $tag variable to get these arguments.
 - xbbcode currently has branches compatible with 7.x and 8.x.

2010-10-26 - 2.0.4-r495

 - Ported xbbcode_table and xbbcode_list.
 - Compatibility upgrade for Drupal 7: As of issue #934050, text formats use an 
   alphanumeric key instead of an integer. Global constant switched from 0 to
   GLOBAL, to avoid colliding with lowercase text format IDs.
 - Allowed using the format-level settings form for unsaved formats. The new UI
   for Drupal expects settings to work even before an actual format ID exists.
 - The long filter tips have been converted to a table to match the HTML help.
 - More generic and better samples in the xbbcode_basic module.
 - Many other small codestyle fixes and bug fixes.

2010-04-16 - 2.0.0-r462

 - Completely rewrote the parsing algorithm for BBCode. Tags are now required to be nested correctly.
   Tag weights are gone, and so is the "pairing" process.

2010-04-12 - 1.1.0-r453

 - Several significant bugs and regressions were fixed.
 - Restored compatibility with the new development version of Drupal 7 core.
 - The tag discovery process was streamlined and greatly improved.
 - Minor improvements were made to the administrative interface and help texts.

2009-12-10 - 1.0.0-r393

 - XBBCode is now compatible with Drupal 7.
 - Greatly improved the administration interface.
 - Refactored and cleaned up the code.

2008-12-26 - 1.1.1-r326

 - Fixed a bug that broke [quote] tags.
 - Fixed a bug that broke multiple-argument tags.
 - Set 0 instead of NULL defaults throughout the tables.
 - Codestyle fixes.

2008-11-16 - 1.1.0-r314

 - XBBCode is now compatible with Drupal 6.
 - The highlighter module is now standalone. It is required to use xbbcode_highlighter.
   It can be downloaded from http://ermarian.net/downloads/drupal-addons/highlighter
 - Numerous bug fixes.
 - Several UI improvements when adding custom tags: Automatic lower-case, better labels.
 - Instead of requiring sub-modules to call xbbcode_add_tags(), xbbcode discovers new tags on its own.

2008-01-20 - 0.3.1:

 - Code style of xbbcode module is now conforming to Drupal standards at last.
 - Several globals have been gotten rid of by placing them as statics into designated functions.
   This keeps the global namespace uncluttered while still allowing the caching of such variables.
 - The tags of a filter are now cached better, using static and Drupal's own caching system.
 - A bug in the parsing of arguments was fixed, which unexpectedly converted spaces to   and
   also lost values that were surrounded by single quotes.
   
This is the LAST VERSION of xbbcode that marks a JOINT development. After the last commit, the present trunk
was branched for a DRUPAL-5 version. The trunk will now be upgraded to Drupal 6.x compatibility.

2007-07-07 - 0.3:

 - Code-style cleanup everywhere
 - Removed the static XBBCode class as counter to Drupal structure, replaced with _xbbcode_%s functions.
 - Removed a MySQL version incompatibility that messed up a Natural Join
 - Removed a MySQL version incompatibility (and Drupal style incongruence) by replacing BOOLEAN with INT(1)
 - Filter is now cacheable, automatically resets cache on tag changes.

2007-07-06 - 0.2.2:

 - Modules now register their tags on installation
 - highlighter now tries to detect the PEAR libraries on installation
 - XBBCode can now autoclose tags left open at the end of text (optional)
 - XBBCode now works in PHP 4, thanks to the removal of several foreach($a as &$b) constructs

2007-07-01 - 0.2:

 - Refactored most of the module code, fixing the install system in the process
 - Renamed all the modules to conform with standards.
 

2007-02-16 - 0.1.2:

 - Tags can now be weighted. Parsing follows first weight, then text order.
 - The same tag name can be registered by different modules. Conflicts in the tag namespace 
   can be resolved by the admin, on a per-format basis.
 - Unified the infrastructure; *all* tags are now provided by modules. Admin-created tags 
   are provided through this module's own _xbbcode hook.

2007-02-12 - 0.1.1:

 - Fixed a bug that broke self-closing tags.
 - Fixed a bug that caused strings of form "$name" to disappear from dynamically parsed tags.
 - Fixed a bug that added backslashes to quote characters in dynamic tags.
 
 - Added multiple-arguments functionality for static tags.

File

CHANGELOG.txt
View source
  1. 2020-05-19 - 4.0.0
  2. Feature release, and compatibility with Drupal 9.
  3. 4.x will be compatible with Drupal 8.8+ and Drupal 9+.
  4. Once Drupal 9+ introduces deprecations that are not backward compatible
  5. with Drupal 8, a 5.x branch will be opened for Drupal 9+ only. Features
  6. will be backported to 4.x when feasible for as long as Drupal 8 is supported.
  7. - Rework HTML filtering in several ways:
  8. - Only attributes and option values have their HTML filtering reversed.
  9. - Make internal HTML sanitization optional (but still a recommended default).
  10. - Make the HTML sanitizer escape markup instead of deleting it.
  11. - Apply sanitization to tag source and outer source as well as content.
  12. - Cleanup and refactor to pass code inspection.
  13. - Update the sample code in README.md to work correctly.
  14. - Fixed some old encoding bugs in code used by [code], [list], and [table].
  15. - Allow editing the list of attached libraries in the custom tag form.
  16. - Detect and point out duplicate plugins using the same default tag name.
  17. These features are the last to be backported to 8.x-3.x and released as a final
  18. version 8.x-3.2, which is still compatible with Drupal 8.5+.
  19. 2018-06-03 - 8.x-3.1
  20. Cleanup and refactor; system requirements increased.
  21. - Use PHP 7+ language features.
  22. - Use PHP 7.1+ language features.
  23. - Use Drupal 8.5+ core APIs.
  24. 2017-11-10 - 8.x-3.0
  25. First stable release for Drupal 8.
  26. - Instead of configuring tag plugins directly in the filter format, admins now
  27. configure them in "Tag sets" which can be used by any number of formats.
  28. - Major improvements to stability, parsing, and admin UI.
  29. - A lot of code refactoring. Partially decoupled the parser component
  30. from the Drupal/Symfony framework.
  31. - Full overhaul of the caching system, tracking dependencies between filter
  32. output and the BBCode tags used in the input.
  33. - Improvements to the [list] and [table] tags with better handling of nested
  34. markup inside list items and cells.
  35. 2015-12-04 - 8.x-3.0-alpha1
  36. This is the first full Drupal 8 port.
  37. - The procedural API is gone. The hook is replaced by an annotated plugin type,
  38. and the custom tag table with a config entity type.
  39. - Custom tags use Twig templates instead of HTML and PHP code.
  40. - Removed all special tag properties (nocode, plain, selfclosing).
  41. - Rewrote the parsing algorithm, and used the prepare() phase of the
  42. filter. Tags are now validated before any other filters are applied, and
  43. attributes as well as tag.source bypass all text filtering.
  44. Tag content is now rendered on demand only if the tag's renderer uses it.
  45. - The module now contains unit tests.
  46. 2012-02-19
  47. - Repository finally moved to drupal.org
  48. - Using PHP in custom tags now requires the PHP module, and the correct permission.
  49. This follows the core pattern of isolating the ability to evaluate PHP code
  50. into a separate permission from normal administrative access.
  51. 2012-02-18 - 2.1.0
  52. - Repository migrated from SVN on ermarian.net to GitHub.
  53. - Changed the rendering algorithm to render tags even inside nocode, and then
  54. discard the result when the nocode tag is closed successfully. This replaces
  55. the old behavior of blocking all rendering, and then retroactively do it
  56. if the nocode tag breaks. This code was vulnerable to input that used quadratic time.
  57. - Stopped injecting tag content and arguments into evaluated PHP code. Instead,
  58. the code must access the $tag variable to get these arguments.
  59. - xbbcode currently has branches compatible with 7.x and 8.x.
  60. 2010-10-26 - 2.0.4-r495
  61. - Ported xbbcode_table and xbbcode_list.
  62. - Compatibility upgrade for Drupal 7: As of issue #934050, text formats use an
  63. alphanumeric key instead of an integer. Global constant switched from 0 to
  64. GLOBAL, to avoid colliding with lowercase text format IDs.
  65. - Allowed using the format-level settings form for unsaved formats. The new UI
  66. for Drupal expects settings to work even before an actual format ID exists.
  67. - The long filter tips have been converted to a table to match the HTML help.
  68. - More generic and better samples in the xbbcode_basic module.
  69. - Many other small codestyle fixes and bug fixes.
  70. 2010-04-16 - 2.0.0-r462
  71. - Completely rewrote the parsing algorithm for BBCode. Tags are now required to be nested correctly.
  72. Tag weights are gone, and so is the "pairing" process.
  73. 2010-04-12 - 1.1.0-r453
  74. - Several significant bugs and regressions were fixed.
  75. - Restored compatibility with the new development version of Drupal 7 core.
  76. - The tag discovery process was streamlined and greatly improved.
  77. - Minor improvements were made to the administrative interface and help texts.
  78. 2009-12-10 - 1.0.0-r393
  79. - XBBCode is now compatible with Drupal 7.
  80. - Greatly improved the administration interface.
  81. - Refactored and cleaned up the code.
  82. 2008-12-26 - 1.1.1-r326
  83. - Fixed a bug that broke [quote] tags.
  84. - Fixed a bug that broke multiple-argument tags.
  85. - Set 0 instead of NULL defaults throughout the tables.
  86. - Codestyle fixes.
  87. 2008-11-16 - 1.1.0-r314
  88. - XBBCode is now compatible with Drupal 6.
  89. - The highlighter module is now standalone. It is required to use xbbcode_highlighter.
  90. It can be downloaded from http://ermarian.net/downloads/drupal-addons/highlighter
  91. - Numerous bug fixes.
  92. - Several UI improvements when adding custom tags: Automatic lower-case, better labels.
  93. - Instead of requiring sub-modules to call xbbcode_add_tags(), xbbcode discovers new tags on its own.
  94. 2008-01-20 - 0.3.1:
  95. - Code style of xbbcode module is now conforming to Drupal standards at last.
  96. - Several globals have been gotten rid of by placing them as statics into designated functions.
  97. This keeps the global namespace uncluttered while still allowing the caching of such variables.
  98. - The tags of a filter are now cached better, using static and Drupal's own caching system.
  99. - A bug in the parsing of arguments was fixed, which unexpectedly converted spaces to   and
  100. also lost values that were surrounded by single quotes.
  101. This is the LAST VERSION of xbbcode that marks a JOINT development. After the last commit, the present trunk
  102. was branched for a DRUPAL-5 version. The trunk will now be upgraded to Drupal 6.x compatibility.
  103. 2007-07-07 - 0.3:
  104. - Code-style cleanup everywhere
  105. - Removed the static XBBCode class as counter to Drupal structure, replaced with _xbbcode_%s functions.
  106. - Removed a MySQL version incompatibility that messed up a Natural Join
  107. - Removed a MySQL version incompatibility (and Drupal style incongruence) by replacing BOOLEAN with INT(1)
  108. - Filter is now cacheable, automatically resets cache on tag changes.
  109. 2007-07-06 - 0.2.2:
  110. - Modules now register their tags on installation
  111. - highlighter now tries to detect the PEAR libraries on installation
  112. - XBBCode can now autoclose tags left open at the end of text (optional)
  113. - XBBCode now works in PHP 4, thanks to the removal of several foreach($a as &$b) constructs
  114. 2007-07-01 - 0.2:
  115. - Refactored most of the module code, fixing the install system in the process
  116. - Renamed all the modules to conform with standards.
  117. 2007-02-16 - 0.1.2:
  118. - Tags can now be weighted. Parsing follows first weight, then text order.
  119. - The same tag name can be registered by different modules. Conflicts in the tag namespace
  120. can be resolved by the admin, on a per-format basis.
  121. - Unified the infrastructure; *all* tags are now provided by modules. Admin-created tags
  122. are provided through this module's own _xbbcode hook.
  123. 2007-02-12 - 0.1.1:
  124. - Fixed a bug that broke self-closing tags.
  125. - Fixed a bug that caused strings of form "$name" to disappear from dynamically parsed tags.
  126. - Fixed a bug that added backslashes to quote characters in dynamic tags.
  127. - Added multiple-arguments functionality for static tags.