s9e/text-formatter
Multi-purpose text formatting and markup library. Plugins offer support for BBCodes, Markdown, emoticons, HTML, embedding third-party media (YouTube, etc...), enhanced typography and more.
2.19.3
3.5M downloads/mo
#2708 most downloaded on Packagist
s9e/TextFormatter
What this package is like to depend on
Last release 9 months ago
14 Nov 2025
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 135 of 137 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
137 releases · first in 2015
3 releases in the last 12 months
see the full history below
Release timeline
137 releases · Aug 2015 to Nov 2025Releases
latest 60 of 137-
2.19.314 Nov 2025 -
2.19.214 Nov 2025Release notes
Open source →Release notes
Open source → -
2.19.126 Oct 2025Release notes
Open source →Added
99e57d380MediaEmbed: added ConfigurableHostInterface8346e81d3MediaEmbed: added Crankers9e4296987MediaEmbed: added PeerTubef87358afaMediaEmbed: added missing source file
Removed
f6bdc27a5MediaEmbed: removed Livestream (defunct)
Fixed
479af5fd2MediaEmbed: fixed PeerTube helper
Changed
b20fb7bcbDisable network tests by default7aef5f425Fix deprecation warnings on PHP 8.55de379d6dFix more deprecation warnings on PHP 8.5e0aea781eMediaEmbed: updated Imgurce6eaaa14MediaEmbed: updated On3303959a41MediaEmbed: updated Pastebincb1368cf2MediaEmbed: updated Rumble05febbbe9MediaEmbed: updated Threads5a32f548cRegexpConvertor: updated Unicode propertiesffa2386edRemove unsupported PHP 8.1 from CIc22e88f0bUpdated docs
Release notes
Open source →Added
99e57d380MediaEmbed: added ConfigurableHostInterface8346e81d3MediaEmbed: added Crankers9e4296987MediaEmbed: added PeerTubef87358afaMediaEmbed: added missing source file
Removed
f6bdc27a5MediaEmbed: removed Livestream (defunct)
Fixed
479af5fd2MediaEmbed: fixed PeerTube helper
Changed
b20fb7bcbDisable network tests by default7aef5f425Fix deprecation warnings on PHP 8.55de379d6dFix more deprecation warnings on PHP 8.5e0aea781eMediaEmbed: updated Imgurce6eaaa14MediaEmbed: updated On3303959a41MediaEmbed: updated Pastebincb1368cf2MediaEmbed: updated Rumble05febbbe9MediaEmbed: updated Threads5a32f548cRegexpConvertor: updated Unicode propertiesffa2386edRemove unsupported PHP 8.1 from CIc22e88f0bUpdated docs
-
2.19.026 Apr 2025Release notes
Open source →Added
0ad200815MediaEmbed: added AbstractConfigurableHostHelper::getHosts()922ca9e50MediaEmbed: added Blueskyc126dec98MediaEmbed: added Nacho Videofcd2c8af5MediaEmbed: added Omny
Changed
5eabf320bMediaEmbed updated SoundCloudac657d73bMediaEmbed: updated Apple Podcastsc30ea7129MediaEmbed: updated Bandcampacb7c7f77MediaEmbed: updated Bluesky22c5386c5MediaEmbed: updated Facebook15d62a2dcMediaEmbed: updated Facebookbc9958e65MediaEmbed: updated Facebook309108d80MediaEmbed: updated Instagram9e72cf786MediaEmbed: updated Instagram425d20910MediaEmbed: updated VK4a1e208b3MediaEmbed: updated VK4d84cce94MediaEmbed: updated VK9288d086fRegexpConvertor: updated Unicode propertiese4c43adb7Updated hljs-loaderfd428797brefactor: Remove redundant use statement
Release notes
Open source →Added
0ad200815MediaEmbed: added AbstractConfigurableHostHelper::getHosts()922ca9e50MediaEmbed: added Blueskyc126dec98MediaEmbed: added Nacho Videofcd2c8af5MediaEmbed: added Omny
Changed
5eabf320bMediaEmbed updated SoundCloudac657d73bMediaEmbed: updated Apple Podcastsc30ea7129MediaEmbed: updated Bandcampacb7c7f77MediaEmbed: updated Bluesky22c5386c5MediaEmbed: updated Facebook15d62a2dcMediaEmbed: updated Facebookbc9958e65MediaEmbed: updated Facebook309108d80MediaEmbed: updated Instagram9e72cf786MediaEmbed: updated Instagram425d20910MediaEmbed: updated VK4a1e208b3MediaEmbed: updated VK4d84cce94MediaEmbed: updated VK9288d086fRegexpConvertor: updated Unicode propertiese4c43adb7Updated hljs-loaderfd428797brefactor: Remove redundant use statement
-
2.18.024 Jul 2024Release notes
Open source →⚠️ This release contains API changes. See docs/Internals/API_changes.md for a description. ⚠️
Added
613f6361cMediaEmbed: added SiteHelpers API
Changed
8cf698f84MediaEmbed: updated Spreaker9ac3f008cUpdated AbstractNormalizationa96383c6eUpdated GitHub actiona025c6e11Updated dependenciesc06092c26Upgraded GitHub actions
Release notes
Open source →⚠️ This release contains API changes. See docs/Internals/API_changes.md for a description. ⚠️
Added
613f6361cMediaEmbed: added SiteHelpers API
Changed
8cf698f84MediaEmbed: updated Spreaker9ac3f008cUpdated AbstractNormalizationa96383c6eUpdated GitHub actiona025c6e11Updated dependenciesc06092c26Upgraded GitHub actions
Release notes
Open source →The following classes have moved namespace and are (silently) deprecated:
-
s9e\TextFormatter\Plugins\MediaEmbed\Configurator\AbstractConfigurableHostHelper
-
s9e\TextFormatter\Plugins\MediaEmbed\Configurator\MastodonHelper
-
s9e\TextFormatter\Plugins\MediaEmbed\Configurator\XenForoHelper
The preferred way to access helpers is through the plugin's configurator. For example:
-
$configurator->MediaEmbed->getSiteHelper('mastodon')
-
$configurator->MediaEmbed->getSiteHelper('xenforo')
-
2.17.326 May 2024Release notes
Open source →Changed
3001de226MediaEmbed: updated Giphy7b7c14b61MediaEmbed: updated Instagram3a31a34c1MediaEmbed: updated JSFiddle34912a84eMediaEmbed: updated Medium4fd5739d6MediaEmbed: updated VKeafb249ccMediaEmbed: updated dark theme selector in Telegram and Twitter
Release notes
Open source →Changed
3001de226MediaEmbed: updated Giphy7b7c14b61MediaEmbed: updated Instagram3a31a34c1MediaEmbed: updated JSFiddle34912a84eMediaEmbed: updated Medium4fd5739d6MediaEmbed: updated VKeafb249ccMediaEmbed: updated dark theme selector in Telegram and Twitter
-
2.17.225 Apr 2024Release notes
Open source →Added
487e3c48bMediaEmbed: added On3 DB
Removed
8d91c8b3fMediaEmbed: removed BleacherReport
Changed
bf99a935dMediaEmbed: updated 247Sports05b9223e2MediaEmbed: updated WSJac0b75ee0MediaEmbed: updated example URLs742e3da89Return the response body when a HTTP error occurs during scraping
Release notes
Open source →Added
487e3c48bMediaEmbed: added On3 DB
Removed
8d91c8b3fMediaEmbed: removed BleacherReport
Changed
bf99a935dMediaEmbed: updated 247Sports05b9223e2MediaEmbed: updated WSJac0b75ee0MediaEmbed: updated example URLs742e3da89Return the response body when a HTTP error occurs during scraping
-
2.17.128 Mar 2024Release notes
Open source →Fixed
ce28c14bdFilterSyntaxMatcher: fixed parseFilterArg() signature
Changed
134bffb2bExtended optimizations related to equality tests to inequality testsf8c5a455fReplaced array callbacks with first class callables where applicablec7609e321Updated docse43f99a47Use in_array() in strict mode wherever applicable
Release notes
Open source →Fixed
ce28c14bdFilterSyntaxMatcher: fixed parseFilterArg() signature
Changed
134bffb2bExtended optimizations related to equality tests to inequality testsf8c5a455fReplaced array callbacks with first class callables where applicablec7609e321Updated docse43f99a47Use in_array() in strict mode wherever applicable
-
2.17.024 Mar 2024Release notes
Open source →Added
c9f762aadAdded JavaScript support for str_replace() as an attribute filter54546445fAdded deprecation warning to docsa3aa58984AttributeFilterChain: added support for constructor arguments in default filters5a937310aAttributeFilterCollection: added support for arguments passed to default filters84ee03aadFilterSyntaxMatcher: added support for named arguments4599040f4MediaEmbed: added Captivateddadd0525MediaEmbed: added XenForo
Fixed
56da3f431Fixed links in docs9dc8b1a69Fixed nullable types for PHP 8.4
Changed
894615027MediaEmbed: updated Imgur7372cd01fMediaEmbed: updated Kalturafb4b6d957MediaEmbed: updated Mastodon0941fde59Updated copyright notice99dffbce7Updated dependencies
Release notes
Open source →Added
c9f762aadAdded JavaScript support for str_replace() as an attribute filter54546445fAdded deprecation warning to docsa3aa58984AttributeFilterChain: added support for constructor arguments in default filters5a937310aAttributeFilterCollection: added support for arguments passed to default filters84ee03aadFilterSyntaxMatcher: added support for named arguments4599040f4MediaEmbed: added Captivateddadd0525MediaEmbed: added XenForo
Fixed
56da3f431Fixed links in docs9dc8b1a69Fixed nullable types for PHP 8.4
Changed
894615027MediaEmbed: updated Imgur7372cd01fMediaEmbed: updated Kalturafb4b6d957MediaEmbed: updated Mastodon0941fde59Updated copyright notice99dffbce7Updated dependencies
-
2.16.007 Jan 2024Release notes
Open source →⚠️ If you generate your own bundles, be sure to regenerate them after upgrading as their signature as been updated. ⚠️
Added
a41591323Bundles: added type declarations
Removed
b1d809a0cMediaEmbed: removed Amazonf9ff2282dMediaEmbed: removed Streamja
Changed
d9d50711dAbstractChooseOptimization: optimized isEqualNode() for the common casee4eb30c89AbstractChooseOptimization: replaced isEqualNode() implementationf97349402MediaEmbed: updated Bandcamp7c95e9d51MediaEmbed: updated Threads
Release notes
Open source →Added
a41591323Bundles: added type declarations
Removed
b1d809a0cMediaEmbed: removed Amazonf9ff2282dMediaEmbed: removed Streamja
Changed
d9d50711dAbstractChooseOptimization: optimized isEqualNode() for the common casee4eb30c89AbstractChooseOptimization: replaced isEqualNode() implementationf97349402MediaEmbed: updated Bandcamp7c95e9d51MediaEmbed: updated Threads
-
2.15.121 Dec 2023Release notes
Open source →Added
e1ec00821AbstractNormalization: added workaround for weird DOM quirks07f2468deMediaEmbed: added Twitter oEmbed endpoint
Fixed
e595860bbDisallowUnsupportedXSL: fixed the range of allowed characters in dynamic attributes
Changed
25714e6dcBumped the requirements for s9e/sweetdom14d759679OptimizeChoose: minor code simplification31ae9abd5OptimizeChoose: reorganized codefc9795083OptimizeChooseText: remove empty text nodes during optimizationd8e08b723UninlineAttributes: refactored how xsl:attribute elements are created195118a53Updated dependencies
-
2.15.003 Dec 2023Release notes
Open source →Added
44b040c98Added GitHub workflowf0fbc6f84TemplateNormalizations: added OptimizeChooseAttributes pass3da387000TemplateNormalizations: added support for SweetDOM
Removed
bb1a1d2acMediaEmbed: removed NBC Sportsbc785a197MediaEmbed: removed Stitcher
Fixed
d5b261549MediaEmbed: fixed TikTok oEmbed endpoint
Changed
4e54aa38dElementInspector: updated to the latest HTML specs3601bb871Emoji: updated to Unicode 15.18e6a8b119MediaEmbed: updated IMDbf788f1d86MediaEmbed: updated Podbean7574739cbMediaEmbed: updated Spreaker6c327465bParsedDOM: simplified some DOM manipulationsb6fb13a79RecursiveParser: use unnamed captures for arguments04f5bc417RegexpConvertor: updated Unicode propertiesc2c6c69dcTemplateNormalizations: simplified code through argument unpackingfddea0221Updated dependencies20e789066XPathConvertor: optimize away superfluous string() calls
-
2.14.311 Nov 2023Release notes
Open source →Changed
cd53829c3BBCodes: updated default CODEc5891a573MediaEmbed: updated Facebookee1965642MediaEmbed: updated Facebookb429c7b60MediaEmbed: updated Facebook593490f42MediaEmbed: updated Facebook135de3549MediaEmbed: updated Twitter334e96d72MediaEmbed: updated Twitter6fb87d797MediaEmbed: updated YouTube55cae0cdfUpdated README
-
2.14.205 Oct 2023Release notes
Open source →Changed
440d40901Enable PHP8 functions in bundled renderers8188d7aceMediaEmbed: updated Reddit528665cc3RulesGeneratorList: updated remove()f33cdf622Updated RTD config
-
2.14.114 Sep 2023Release notes
Open source →Added
38e323231MediaEmbed: added Threadsd1887fad1MediaEmbed: added support for YouTube clips
Removed
d34f9d3c1MediaEmbed: removed defunct site Gfycat
Changed
a35d090d2MediaEmbed: updated Facebook473cb5958MediaEmbed: updated Facebookb06918f8fMediaEmbed: updated Instagram9cd4fc514MediaEmbed: updated Spotifyae32e676dMediaEmbed: updated Spotifycbf872bb7MediaEmbed: updated TrendingViews6653f07f7MediaEmbed: updated Twitter1817f1b79MediaEmbed: updated YouTube2d73167e4Reorganized TemplateNormations66fcff366Updated README
-
2.14.008 Jun 2023Release notes
Open source →Added
5b58f4485Added ParsedDOM API to safely manipulate XML
Changed
052cde47bBBCodes: updated hljs-loadere824143f7MediaEmbed: updated SlideShare84be6040cMediaEmbed: updated SlideShare31553ea9aMediaEmbed: updated Telegram422f66269MediaEmbed: updated TikTok0b2abb6e3MediaEmbed: updated Tumblrab81d37a8MediaEmbed: updated YouTube
-
2.13.111 Feb 2023Release notes
Open source →Added
f84dbded0MediaEmbed: added Bunny Stream922025f00MediaEmbed: added support for YouTube Live URLs
Changed
8b473fee9Improved PHP 8.2 support285322ab8MediaEmbed: updated Tumblrd1441d7aeMediaEmbed: updated Tumblr961b39811Parser: remove U+FFFE and U+FFFF from input and output889296b3bUpdated PHPUnit to 9.6
-
2.13.030 Jan 2023Release notes
Open source →Added
536cbdf1fAutoimage: added support for custom file extensionseb8a5c487Autovideo: added support for custom file extensionsd4750cdbbMediaEmbed: added MastodonHelper9ad74ecacMediaEmbed: added support for custom Mastodon instances
Changed
7f7481ab9MediaEmbed: updated Mastodonba76ce0b0MediaEmbed: updated Rutube9724b7906MediaEmbed: updated TikTok
-
2.12.326 Dec 2022Release notes
Open source →Changed
c0ce8f099ElementInspector: updated HTML specs41b342149Emoji: replaced the default assets URL
-
2.12.230 Nov 2022Release notes
Open source →Added
ece847b93MediaEmbed: added Mastodon
Changed
af7a4ddcbBBCodes: updated default CODE0989028dcEmoji: updated to Unicode 15.0bb5aadcbbLitedown: updated inline spoilers' onclick handler62d23f557MediaEmbed: updated Spotifyce3edbd40MediaEmbed: updated Tumblr
-
2.12.123 Oct 2022Release notes
Open source →Added
4460ef815MediaEmbed: added Rumble oEmbed endpoint02eefa9cfMediaEmbed: added Rutube oEmbed endpoint
Removed
d3d27b7bdMediaEmbed: removed bad header from Rutube
Changed
3b117c891MediaEmbed: updated Facebook8b3919d87MediaEmbed: updated Facebook9fb6cd493MediaEmbed: updated Facebookf0879ef04MediaEmbed: updated dynamic iframes
-
2.12.005 Oct 2022Release notes
Open source →Added
71e5bbe78Added CSP headers to live preview demos6ceca4fffAdded doc5ce43ed08JavaScript: added messaging-related externs
Removed
440817eb0JavaScript: removed support for Internet Explorer
Changed
20a3c1333BBCodes: updated default SPOILER87223f85eBumped requirements to PHP >= 7.4266f84b50FunctionCache: don't add a semicolon if there's aleady one followed by whitespacebabb3f094JavaScript: hash function content as key in function cacheac7984af4JavaScript: made the XSLT generator publicc4f347bc2JavaScript: moved function cache generator to its own classdd4553f4fJavaScript: unescape braces before generating the function cache key6404747b1JavaScript: updated externsff36ac05dJavaScript: updated externs47cba5e05JavaScript: use ES6 syntax for variable declarations8f58dcb9fJavaScript: use arrow functions where appropriatecf678e15bMediaEmbed: replaced var with let in onload handlersa9ac9d364MediaEmbed: updated Odyseeb4f8a86dfMediaEmbed: updated TikTokc3e1c382bUpdated live preview demod55692342Updated live preview demos
-
2.11.519 Sep 2022Release notes
Open source →Removed
e3245de01BBCodes: removed redundant higlighting in CODE
Fixed
c87eb3f35BBCodes: fixed Closure Compiler warning in CODE
Changed
02f0d41f2BBCodes: updated hljs-loader in CODEcdd9d190eElementInspector: updated to latest specsdf8440c2bJavaScript: prefill the function cache with static code
-
2.11.417 Aug 2022Release notes
Open source →Added
87a284e38MediaEmbed: added Wavekit
Changed
e0dcd772bBBCodes: updated default CODE4919d8bd3MediaEmbed: updated MixCloudb23054412Updated dependencies69de62652Updated docs
-
2.11.313 Jun 2022Release notes
Open source → -
2.11.205 Jun 2022Release notes
Open source →Fixed
ba4b7a84bFixed whitespace
Changed
c34737eb5Allow trailing plus sign in Autolink6d4c3e097Updated MkDocs
-
2.11.115 May 2022Release notes
Open source →Added
7cd2a60beMediaEmbed: added Gfycat oEmbed data16d598964MediaEmbed: added support for dark theme in Instagram66afa69e6MediaEmbed: added support for dark theme in Reddit6fca64d7eMediaEmbed: added support for dark theme in Telegram
Removed
5e294db63MediaEmbed: removed Vocaroo's old Flash player
Fixed
c199a448aFixed callable type annotations
Changed
840acf54cElementInspector: updated element definitions0f6b6372aMediaEmbed: updated Acast2822347caMediaEmbed: updated Getty6b6fc560cMediaEmbed: updated Odyseee0d2ecbb2MediaEmbed: updated Rumble683a50394MediaEmbed: updated Spotify example URLe3c00295bMediaEmbed: updated Streamable17904dd79MediaEmbed: updated TikTok2483eaf1bMediaEmbed: updated Twitter0cbd29fdeMediaEmbed: updated Twitterbfd6323d0MediaEmbed: updated Vimeo3fcab01e0MediaEmbed: updated Vimeo53ce06e23MediaEmbed: updated WSHH9c8a36d2dUpdated external dependenciesd11508589Use correct parameter type in setParameters docblock4f02bf465XmlFileDefinitionCollection: allow '0' to be cast to an integerbc0d88317XmlFileDefinitionCollection: do not convert non-string values
-
2.11.002 Oct 2021Release notes
Open source →Added
bc58b94edAdded support for PHP 8.1cf6fb85ceMediaEmbed: added Audius
Changed
1d5e3e2a1Emoji: updated to Unicode 14.0e8ff4904dMediaEmbed: updated Facebook7b7dcd3cbUpdated BBCodes doc
-
2.10.011 Aug 2021Release notes
Open source →Changed
2bacb5d24BBCodes: give explicitly-paired BBCodes slightly better priority1c00f2624MediaEmbed: ignore Gist archive links11c766817MediaEmbed: updated Acaste75f9f3d2MediaEmbed: updated Gista81e56567MediaEmbed: updated TrendingViewsf80f790b0NormalizedCollection: ignore invalid keys in delete() and exists()
-
2.9.409 Jul 2021Release notes
Open source →Added
6d3c5af8eMediaEmbed: added Acast0c4e0c15cMediaEmbed: added YouMakerdcf3cbf98RegexpConvertor: added early return for empty regexps
Changed
c88fe3653BBCodes: updated default CODE BBCode62b4e7f4bBBCodes: updated default CODE BBCode29d5bcf16Change code highlighting theme fromgithub-gisttogithub.37fadd4e9MediaEmbed: scrape from HTTP headers as well as body6e66120f0MediaEmbed: updated 247Sports83629d2c4MediaEmbed: updated Medium03c9dd73aUse HLJS 11.0.1
-
2.9.330 May 2021Release notes
Open source →Changed
fd0df9fe2BBCodes: updated default CODE BBCode699577a02Quick renderer: do not transform switch statements
-
2.9.217 May 2021Release notes
Open source →Fixed
5df3c57b9StylesheetCompressor: fixed an issue with UTF-8 chars incorrectly split
-
2.9.109 May 2021Release notes
Open source →Added
2091db6b6FixUnescapedCurlyBracesInHtmlAttributes: added support for arrow functions129691dddMediaEmbed: added Odysee
Removed
ce1817bf0MediaEmbed: removed defunct sites Break, GameTrailers, and Mixer
Changed
16a01b3dfElementInspector: updated definitions from HTML specs70e05f3c3JavaScript: replaced substr() with substring()632452c0aMediaEmbed: updated Odyseefa6ce8f1aMediaEmbed: updated YouTubeb680fbcd0Replaced ternaries with null coalescing operatorse51239b7eUrlFilter: updated regexp and JavaScript version
-
2.9.017 Apr 2021Release notes
Open source →Added
4256d1f08MediaEmbed: added Apple Podcastsbeb0082bcXPathConvertor: added support for PHP 8.0 string functions
Changed
f801b61f2MediaEmbed: updated IMDb44f22bfc8MediaEmbed: updated Wistiabd16776c5Updated bundlesf1fe19a42XPathConvertor: made the optional PHP features togglable26ac52914XSLT: explicitly set htmlspecialchars() escape mode
-
2.8.629 Mar 2021Release notes
Open source →Changed
4b83f7c67BBCodes: updated default CODE BBCodec7b72ac82MediaEmbed: updated Podbeaned19f57c0MediaEmbed: updated SoundCloud6a233cf46MediaEmbed: updated TikTok739cd5f10MediaEmbed: updated WorldStarHipHop
-
2.8.515 Mar 2021Release notes
Open source →Added
33168acaaMediaEmbed: added AMP metadata
Changed
b52de21fdEnforceContentModels: generate breakParagraph rules where applicable813be2c3dMediaEmbed: updated Megaphone126771444MediaEmbed: updated Sportsnet
-
2.8.402 Mar 2021Release notes
Open source →Added
03edc53a0MediaEmbed: added support for fb.watch URLs
Fixed
f3a88beceLitedown: fixed an issue with fenced code blocks inside of lists
Changed
19699dc2fEmoji: ignore aliases that are followed by U+FE0E36e505cedMediaEmbed: updated BBC Newse838f3779MediaEmbed: updated Rutube9f08233e6MediaEmbed: updated Twitch03af8d8e2Parser: simplified outputTag()a11f4c232TaskLists: recheck tags at the end of configuration
-
2.8.310 Feb 2021Release notes
Open source →Fixed
4d0b7595fEmoji: fixed a PHP error that can occur with empty aliases327f06a6aEmoji: fixed an issue with some Unicode aliases
Changed
cf913ebbeBBCodes: updated default CODE BBCode38f158f2fMediaEmbed: updated Anchor
-
2.8.223 Jan 2021Release notes
Open source →Added
b5d664bb3MediaEmbed: added Imgur oEmbed infoc21685645MediaEmbed: added Instagram Reels06d5e490fPHP renderer generator: added a fast path for handling static node names
Removed
f357b2e64TemplateParser: removed unused parameters
Changed
0dd855c9eMediaEmbed: updated Streamable23ee8a5d5MediaEmbed: updated Wistiaf14bd4ecaTemplateParser: mark boolean attributes in the representation
-
2.8.127 Dec 2020Release notes
Open source →Fixed
6909b2327TemplateHelper: fixed handling of HTML special characters in highlightNode()
Changed
0a661c962AttributeFilters: refactored HashmapFilter and MapFilterc8ae84391BBCodes: updated default CODE BBCode816182d45MediaEmbed: updated BitChute16d018d6eMediaEmbed: updated TikTok704b16b4fRegexpFilter: reworked safeness checks
-
2.8.009 Dec 2020Release notes
Open source →Added
bb8c095e6FilterSyntaxMatcher: added explicit octal notationea51b491dMediaEmbed: added Falstad Circuit Simulator159784fb2MediaEmbed: added JSFiddle7baf9538cMediaEmbed: added Rumble935957bb4MediaEmbed: added support for dark themes
Removed
c7548f5e1MediaEmbed: removed discontinued FOX Sports site
Changed
0edf2e91bMediaEmbed: updated JSFiddle6b99842feMediaEmbed: updated Libsyn16a1e596aMediaEmbed: updated Twitterdf91465b8Updated bundles
-
2.7.615 Nov 2020Release notes
Open source →Changed
2b9267496BBCodes: updated default CODE BBCodea583e346cMediaEmbed: updated 247Sports0b138efc4MediaEmbed: updated Amazon923310847MediaEmbed: updated BBC News338e48986MediaEmbed: updated Spotify30b0a11c8MediaEmbed: updated Stitcher47c929c02MediaEmbed: updated dumpert
-
2.7.521 Sep 2020Release notes
Open source →Changed
c49e5a430BBCodes: updated default CODE BBCode480398516BBCodes: updated default CODE BBCodec88642cdcEmoji: updated to Unicode 13.15a6c80ea0MediaEmbed: updated Getty Images14923f953MediaEmbed: updated Gfycat693b57ae9MediaEmbed: updated Medium
-
2.7.420 Aug 2020Release notes
Open source →Added
e62774c4eMediaEmbed: added Clyp79c359ed8MediaEmbed: added Mixcloud oEmbed data
Changed
039a08e49BBCodes: updated default CODE BBCode5aa06ccdaMediaEmbed: updated BBC News6ac0b25b2MediaEmbed: updated Kaltura74ee840cdMediaEmbed: updated Spotify9f6654eb9MediaEmbed: updated Stitcher
-
2.7.320 Jul 2020Release notes
Open source →Added
b65d3a585MediaEmbed: added Castosd96e5b47bMediaEmbed: added CodePenc7265bc7aMediaEmbed: added Kaltura33da8e189MediaEmbed: added TradingView1fa8bcd3bMediaEmbed: added Vimeo oEmbed info
Changed
c81c92802CallbackGenerator: explicitly cast callback to string715710926MediaEmbed: updated MSNBCe9b901e96MediaEmbed: updated Medium
-
2.7.222 Jun 2020Release notes
Open source →Changed
4fd902b91BBCodes: updated default CODE BBCodeb2823a510BBCodes: updated default CODE BBCodeb13470f70MediaEmbed: updated Audiomacka5cce0a8eMediaEmbed: updated Twitch615378133MediaEmbed: updated Twitch
-
2.7.106 Jun 2020Release notes
Open source →Added
c34a75ea4MediaEmbed: added Wistia
Changed
7f2a0a843BBCodes: updated default CODE BBCode388e4fbfcJavaScript: updated externs4d2792bc4MediaEmbed: reinstated unofficial support for hashless VK URLsca83829e5RegexpConvertor: reorganized codeb141e1098RegexpConvertor: updated Unicode propertiesc5c2d2cbfTaskList: replaced template manipulation with SweetDOM
-
2.7.030 May 2020Release notes
Open source →Added
ea4658c5bAdded template manipulation via SweetDOMdc61d807cLitedown: added support for self-generated "id" attributes in headers
Removed
f9eb0e264Autolink: removed dead code2e127910cPHP Renderer: removed redundant removal of meta-elements
Changed
cc0c621c2Litedown: improved compatibility with original Markdown rules for parentheses in links
-
2.6.017 May 2020Release notes
Open source →Added
62942bbc2Added AddAttributeValueToElements and SetAttributeOnElements template normalizersd4d0b66ecMediaEmbed: added GIPHYef7a64e6bMediaEmbed: added loading="lazy" attribute to iframesf136125c1MediaEmbed: added support for GIPHY videos
Changed
a79accfd0Emoji: updated Twemoji URLea42a6e90Emoji: updated to Unicode 13.03f51c0852MediaEmbed: updated Facebook782bbadbbRenderers: ensure that floating point numbers are displayed in the C localea1d089576SetRelNoreferrerOnTargetedLinks: refactored to extend AddAttributeValueToElementse08158d2fTaskLists: ignore task IDs during live preview1b5d46223XSLT: ensure that the decimal separator is a dot regardless of locale
-
2.5.029 Apr 2020Release notes
Open source →⚠️ This release contains functional changes. See docs/Internals/Changes.md for a description. ⚠️
Added
f2d1ff160Added TaskLists pluginc12c0db9cFatdown: added TaskLists96912cdebLitedown: added support for automatic links
Changed
885f7e234Renderer: improved performance of safety check436c2d8d9Utils: improved the performance of various functions
Release notes
Open source →The Litedown plugin now supports automatic links and creates an
EMAILtag. -
2.4.111 Apr 2020Release notes
Open source →Added
5c358aa8fDisallowUnsupportedXSL: added xsl:attribute and xsl:element checks
Changed
af2944f19DisallowUnsupportedXSL: refactored attribute requirements7e3c1a8c0MediaEmbed: updated Facebook7290f8b4ePHP renderer: match libxslt serialization of minimizable attributes in HTML7414ca9d5Quick renderer: replaced hardcoded value with constant
-
2.4.031 Mar 2020Release notes
Open source →Added
6d9dcd09cTemplateChecks: added DisallowUncompilableXSL039015605TemplateChecks: added DisallowUnsupportedXSL, enabled by default
Changed
a5ddda129DisallowUnsafeDynamicURL: improved detection of safe URLs27dbc900bMediaEmbed: updated Spotify
-
2.3.710 Mar 2020Release notes
Open source →Fixed
12bdf56b7JavaScript: fixed scripts not being executed on Blink browsers
Changed
544f430f9BBCodes: updated default CODE BBCode61d3dcf2aBBCodes: updated default CODE BBCode194bc5388BBCodes: updated default CODE BBCode98fa77467JavaScript: updated externs
-
2.3.624 Feb 2020 -
2.3.418 Feb 2020Release notes
Open source →Added
9db9113e6Autolink: added support for trailing underscores4de32bb77JavaScript: added minifier hints for plugin regexp
Fixed
c7d1b9e72Autolink: fixed an issue where valid characters could be removed from the end of a URL3b08570a2TemplateNormalizer: fixed an issue where the XSL namespace could become unregistered in XPath
Changed
3d1969853MediaEmbed: updated MSNBC and Tumblrc1e06bc87MediaEmbed: updated TikTok9bf0d3823MediaEmbed: updated XboxClips, now GameClips.io19674d155XPathConvertor: do not add extraneous calls to boolean() in conditions
-
2.3.323 Jan 2020Release notes
Open source →Removed
b79f84836MediaEmbed: removed defunct site CollegeHumor
Changed
0af04297eBBCodes: updated default CODE BBCode385992df9MediaEmbed: updated Vocaroo138821eacTag: reorganized codead91b2d37XPathHelper: improved minification of boolean operators6943368f2XPathHelper: improved minification of consecutive non-word characters55782b27aXPathHelper: remove redundant parentheses in minify()26004e063XPathHelper: replaced string encoder in minify()00510a5b6XPathHelper: simplified and improved minification of operators
-
2.3.210 Jan 2020Release notes
Open source →Added
f6c496721Autolink: added support for rootless URLs0f7166909FilterSyntaxMatcher: added support for numeric literal separatord519bad01HTMLEntities: added support for HTML5 entities076524e87MediaEmbed: added support for Spotify podcasts1bd195933TemplateLoader: added support for HTML 5 entities in HTML templatesba20ec844TemplateLoader: added support for HTML 5 entities in XSLT templates
Changed
3fe1f6482BBCodes: updated default CODE BBCodeb3cea0820FilterSyntaxMatcher: improved support for escaped characters94071e2feTemplateLoader: improved handling of HTML5's AMP entity33d90df58XPathHelper: rewritten string encoder
-
2.3.126 Dec 2019Release notes
Open source →Added
abc127c7dMediaEmbed: added Spreaker0aaff6af6XPathConvertor: added support for booleans in math expressions
Removed
0d8acace1MediaEmbed: removed defunct site Plays.tv
Fixed
84f8f35fdParser: fixed trimFirstLine rule ignored on paired tags
Changed
0764f9e3cXPathConvertor: do not backtrack on attribute names07df31fbeXPathHelper: improved minification of substractionsb19a9207eXPathHelper: use the XPathConvertor parser for complex expressions
-
2.3.017 Nov 2019Release notes
Open source →Added
7dde9892cAdded support for custom header in generated PHP files727da332cBundle: added getParser() and getRenderer() definitions to base classe707f6f28BundleGenerator: added support for bundling the JavaScript source5c576086aMediaEmbed: added Anchor2ec9591ceMediaEmbed: added Megaphone
Changed
729fbb540MediaEmbed: updated CNBCa669a53d4Parser: simplified the computation of allowed tags in new contexte4030cf6aStylesheetCompressor: split into smaller chunks to appease Google Closure Compiler30654b4f5Updated JavaScript Logger
-
2.2.027 Oct 2019Release notes
Open source →⚠️ This release contains API changes. See docs/Internals/API_changes.md for a description. ⚠️
⚠️ This release contains functional changes. See docs/Internals/Changes.md for a description. ⚠️
Added
b52eb84f3AbstractConstantFolding: added support for folding conditional expressionsda7387e1bFoldConstantXPathExpressions: added support for boolean expressionseeb5ec68fFoldConstantXPathExpressions: added support for simple comparisonsa2c8cc0beInlineXPathLiterals: added support for true() and false()cd6eede77Live preview: added support for data-s9e-livepreview-hash attributee560157b9Live preview: added support for data-s9e-livepreview-onupdate attribute/eventfd984e34eMediaEmbed: added Mixer4ef14d2c5TemplateNormalizations: added DeoptimizeIff7dddb9a6TemplateNormalizations: added OptimizeChooseDeadBranches179035702XPathConvertor: added support for true() and false()
Removed
414f457edMediaEmbed: removed defunct site Tinypicabf0bea88Ruleset: removed useless code
Fixed
f52add17fFixed Google Closure Compiler warnings in live preview
Changed
6d8d0e82cAbstractConstantFolding: improved performance4d08e2493Amend document typos492288d7bBBCodes: updated [code] BBCode510176e04BBCodes: updated [code] BBCodead030d0a6BBCodes: updated [code] BBCode98acaa712BBCodes: updated var descriptions in bundled BBCodese8501554bContextSafeness: consider backticks unsafe in JavaScripte7baa21e2ElementInspector: updated to HTML 5.38ef407006Emoji: updated to Unicode 12.171c5b4d15Escaper: escape tildes by default0e277e649FoldArithmeticConstants: restricted additive identity folding507cdadd4FoldConstantXPathExpressions: ignore irrational numbers74d308561JavaScript: updated externsbde1c604dLive preview: improved handling of update eventba54cfa16Live preview: renamed data-s9e-livepreview-postprocess to data-s9e-livepreview-onrender6b35b43c7MediaEmbed: updated Audioboom912a5f52cMediaEmbed: updated CNN3e0df2054MediaEmbed: updated Facebooke92f180d6RecursiveParser: use a DEFINE group for group expressions99b7f0b84RegexpConvertor: updated properties to latest Unicode specs8b2ba9100XPath: reorganized codeed9e70daaXPathConvertor: simplified grouping of boolean operators and expressions
Release notes
Open source →The following methods are silently deprecated and will be removed in the next major release:
-
s9e\TextFormatter\Configurator\TemplateChecker::disable()
-
s9e\TextFormatter\Configurator\TemplateChecker::enable()
Release notes
Open source →The
data-s9e-livepreview-postprocessattribute has been renamed todata-s9e-livepreview-onrender. The old attribute name remains as an alias but will be removed in 3.0.0. See the list of live preview attributes.The Escaper plugin now escapes
~by default.The backtick character
`is now considered unsafe when user input is used in a JavaScript context.