s9e/text-formatter
PHP text formatting library with plugin support for BBCode, Markdown, HTML, and more. Includes predefined bundles, extensive documentation, and a JavaScript port for client-side preview and demos. Install via Composer and integrate customizable parsing/rendering.
99e57d380 MediaEmbed: added ConfigurableHostInterface8346e81d3 MediaEmbed: added Crankers9e4296987 MediaEmbed: added PeerTubef87358afa MediaEmbed: added missing source filef6bdc27a5 MediaEmbed: removed Livestream (defunct)479af5fd2 MediaEmbed: fixed PeerTube helperb20fb7bcb Disable network tests by default7aef5f425 Fix deprecation warnings on PHP 8.55de379d6d Fix more deprecation warnings on PHP 8.5e0aea781e MediaEmbed: updated Imgurce6eaaa14 MediaEmbed: updated On3303959a41 MediaEmbed: updated Pastebincb1368cf2 MediaEmbed: updated Rumble05febbbe9 MediaEmbed: updated Threads5a32f548c RegexpConvertor: updated Unicode propertiesffa2386ed Remove unsupported PHP 8.1 from CIc22e88f0b Updated docs0ad200815 MediaEmbed: added AbstractConfigurableHostHelper::getHosts()922ca9e50 MediaEmbed: added Blueskyc126dec98 MediaEmbed: added Nacho Videofcd2c8af5 MediaEmbed: added Omny5eabf320b MediaEmbed updated SoundCloudac657d73b MediaEmbed: updated Apple Podcastsc30ea7129 MediaEmbed: updated Bandcampacb7c7f77 MediaEmbed: updated Bluesky22c5386c5 MediaEmbed: updated Facebook15d62a2dc MediaEmbed: updated Facebookbc9958e65 MediaEmbed: updated Facebook309108d80 MediaEmbed: updated Instagram9e72cf786 MediaEmbed: updated Instagram425d20910 MediaEmbed: updated VK4a1e208b3 MediaEmbed: updated VK4d84cce94 MediaEmbed: updated VK9288d086f RegexpConvertor: updated Unicode propertiese4c43adb7 Updated hljs-loaderfd428797b refactor: Remove redundant use statement⚠️ This release contains API changes. See docs/Internals/API_changes.md for a description. ⚠️
613f6361c MediaEmbed: added SiteHelpers API8cf698f84 MediaEmbed: updated Spreaker9ac3f008c Updated AbstractNormalizationa96383c6e Updated GitHub actiona025c6e11 Updated dependenciesc06092c26 Upgraded GitHub actions3001de226 MediaEmbed: updated Giphy7b7c14b61 MediaEmbed: updated Instagram3a31a34c1 MediaEmbed: updated JSFiddle34912a84e MediaEmbed: updated Medium4fd5739d6 MediaEmbed: updated VKeafb249cc MediaEmbed: updated dark theme selector in Telegram and Twitter487e3c48b MediaEmbed: added On3 DB8d91c8b3f MediaEmbed: removed BleacherReportbf99a935d MediaEmbed: updated 247Sports05b9223e2 MediaEmbed: updated WSJac0b75ee0 MediaEmbed: updated example URLs742e3da89 Return the response body when a HTTP error occurs during scrapingce28c14bd FilterSyntaxMatcher: fixed parseFilterArg() signature134bffb2b Extended optimizations related to equality tests to inequality testsf8c5a455f Replaced array callbacks with first class callables where applicablec7609e321 Updated docse43f99a47 Use in_array() in strict mode wherever applicablec9f762aad Added JavaScript support for str_replace() as an attribute filter54546445f Added deprecation warning to docsa3aa58984 AttributeFilterChain: added support for constructor arguments in default filters5a937310a AttributeFilterCollection: added support for arguments passed to default filters84ee03aad FilterSyntaxMatcher: added support for named arguments4599040f4 MediaEmbed: added Captivateddadd0525 MediaEmbed: added XenForo56da3f431 Fixed links in docs9dc8b1a69 Fixed nullable types for PHP 8.4894615027 MediaEmbed: updated Imgur7372cd01f MediaEmbed: updated Kalturafb4b6d957 MediaEmbed: updated Mastodon0941fde59 Updated copyright notice99dffbce7 Updated dependencies⚠️ If you generate your own bundles, be sure to regenerate them after upgrading as their signature as been updated. ⚠️
a41591323 Bundles: added type declarationsb1d809a0c MediaEmbed: removed Amazonf9ff2282d MediaEmbed: removed Streamjad9d50711d AbstractChooseOptimization: optimized isEqualNode() for the common casee4eb30c89 AbstractChooseOptimization: replaced isEqualNode() implementationf97349402 MediaEmbed: updated Bandcamp7c95e9d51 MediaEmbed: updated Threadse1ec00821 AbstractNormalization: added workaround for weird DOM quirks07f2468de MediaEmbed: added Twitter oEmbed endpointe595860bb DisallowUnsupportedXSL: fixed the range of allowed characters in dynamic attributes25714e6dc Bumped the requirements for s9e/sweetdom14d759679 OptimizeChoose: minor code simplification31ae9abd5 OptimizeChoose: reorganized codefc9795083 OptimizeChooseText: remove empty text nodes during optimizationd8e08b723 UninlineAttributes: refactored how xsl:attribute elements are created195118a53 Updated dependencies⚠️ Starting with this release, s9e\TextFormatter requires PHP 8.1 or newer. ⚠️
44b040c98 Added GitHub workflowf0fbc6f84 TemplateNormalizations: added OptimizeChooseAttributes pass3da387000 TemplateNormalizations: added support for SweetDOMbb1a1d2ac MediaEmbed: removed NBC Sportsbc785a197 MediaEmbed: removed Stitcherd5b261549 MediaEmbed: fixed TikTok oEmbed endpoint4e54aa38d ElementInspector: updated to the latest HTML specs3601bb871 Emoji: updated to Unicode 15.18e6a8b119 MediaEmbed: updated IMDbf788f1d86 MediaEmbed: updated Podbean7574739cb MediaEmbed: updated Spreaker6c327465b ParsedDOM: simplified some DOM manipulationsb6fb13a79 RecursiveParser: use unnamed captures for arguments04f5bc417 RegexpConvertor: updated Unicode propertiesc2c6c69dc TemplateNormalizations: simplified code through argument unpackingfddea0221 Updated dependencies20e789066 XPathConvertor: optimize away superfluous string() callscd53829c3 BBCodes: updated default CODEc5891a573 MediaEmbed: updated Facebookee1965642 MediaEmbed: updated Facebookb429c7b60 MediaEmbed: updated Facebook593490f42 MediaEmbed: updated Facebook135de3549 MediaEmbed: updated Twitter334e96d72 MediaEmbed: updated Twitter6fb87d797 MediaEmbed: updated YouTube440d40901 Enable PHP8 functions in bundled renderers8188d7ace MediaEmbed: updated Reddit528665cc3 RulesGeneratorList: updated remove()f33cdf622 Updated RTD config38e323231 MediaEmbed: added Threadsd1887fad1 MediaEmbed: added support for YouTube clipsd34f9d3c1 MediaEmbed: removed defunct site Gfycata35d090d2 MediaEmbed: updated Facebook473cb5958 MediaEmbed: updated Facebookb06918f8f MediaEmbed: updated Instagram9cd4fc514 MediaEmbed: updated Spotifyae32e676d MediaEmbed: updated Spotifycbf872bb7 MediaEmbed: updated TrendingViews6653f07f7 MediaEmbed: updated Twitter1817f1b79 MediaEmbed: updated YouTube2d73167e4 Reorganized TemplateNormations⚠️ Starting with this release, s9e\TextFormatter requires PHP 8.
5b58f4485 Added ParsedDOM API to safely manipulate XML052cde47b BBCodes: updated hljs-loadere824143f7 MediaEmbed: updated SlideShare84be6040c MediaEmbed: updated SlideShare31553ea9a MediaEmbed: updated Telegram422f66269 MediaEmbed: updated TikTok0b2abb6e3 MediaEmbed: updated Tumblrab81d37a8 MediaEmbed: updated YouTubef84dbded0 MediaEmbed: added Bunny Stream922025f00 MediaEmbed: added support for YouTube Live URLs8b473fee9 Improved PHP 8.2 support285322ab8 MediaEmbed: updated Tumblrd1441d7ae MediaEmbed: updated Tumblr961b39811 Parser: remove U+FFFE and U+FFFF from input and output889296b3b Updated PHPUnit to 9.6536cbdf1f Autoimage: added support for custom file extensionseb8a5c487 Autovideo: added support for custom file extensionsd4750cdbb MediaEmbed: added MastodonHelper9ad74ecac MediaEmbed: added support for custom Mastodon instances7f7481ab9 MediaEmbed: updated Mastodonba76ce0b0 MediaEmbed: updated Rutube9724b7906 MediaEmbed: updated TikTokc0ce8f099 ElementInspector: updated HTML specs41b342149 Emoji: replaced the default assets URLFull Changelog: https://github.com/s9e/TextFormatter/compare/2.12.1...2.12.2
ece847b93 MediaEmbed: added Mastodonaf7a4ddcb BBCodes: updated default CODE0989028dc Emoji: updated to Unicode 15.0bb5aadcbb Litedown: updated inline spoilers' onclick handler62d23f557 MediaEmbed: updated Spotifyce3edbd40 MediaEmbed: updated Tumblr4460ef815 MediaEmbed: added Rumble oEmbed endpoint02eefa9cf MediaEmbed: added Rutube oEmbed endpointd3d27b7bd MediaEmbed: removed bad header from Rutube3b117c891 MediaEmbed: updated Facebook8b3919d87 MediaEmbed: updated Facebook9fb6cd493 MediaEmbed: updated Facebookf0879ef04 MediaEmbed: updated dynamic iframes⚠️ Starting with this release, s9e\TextFormatter requires PHP >= 7.4. ⚠️ ⚠️ The JavaScript live preview requires a browser with ES6 features. ⚠️
71e5bbe78 Added CSP headers to live preview demos6ceca4fff Added doc5ce43ed08 JavaScript: added messaging-related externs440817eb0 JavaScript: removed support for Internet Explorer20a3c1333 BBCodes: updated default SPOILER87223f85e Bumped requirements to PHP >= 7.4266f84b50 FunctionCache: don't add a semicolon if there's aleady one followed by whitespacebabb3f094 JavaScript: hash function content as key in function cacheac7984af4 JavaScript: made the XSLT generator publicc4f347bc2 JavaScript: moved function cache generator to its own classdd4553f4f JavaScript: unescape braces before generating the function cache key6404747b1 JavaScript: updated externsff36ac05d JavaScript: updated externs47cba5e05 JavaScript: use ES6 syntax for variable declarations8f58dcb9f JavaScript: use arrow functions where appropriatecf678e15b MediaEmbed: replaced var with let in onload handlersa9ac9d364 MediaEmbed: updated Odyseeb4f8a86df MediaEmbed: updated TikTokc3e1c382b Updated live preview demod55692342 Updated live preview demose3245de01 BBCodes: removed redundant higlighting in CODEc87eb3f35 BBCodes: fixed Closure Compiler warning in CODE02f0d41f2 BBCodes: updated hljs-loader in CODEcdd9d190e ElementInspector: updated to latest specsdf8440c2b JavaScript: prefill the function cache with static code87a284e38 MediaEmbed: added Wavekite0dcd772b BBCodes: updated default CODE4919d8bd3 MediaEmbed: updated MixCloudb23054412 Updated dependenciesFull Changelog: https://github.com/s9e/TextFormatter/compare/2.11.1...2.11.2
7cd2a60be MediaEmbed: added Gfycat oEmbed data16d598964 MediaEmbed: added support for dark theme in Instagram66afa69e6 MediaEmbed: added support for dark theme in Reddit6fca64d7e MediaEmbed: added support for dark theme in Telegram5e294db63 MediaEmbed: removed Vocaroo's old Flash playerc199a448a Fixed callable type annotations840acf54c ElementInspector: updated element definitions0f6b6372a MediaEmbed: updated Acast2822347ca MediaEmbed: updated Getty6b6fc560c MediaEmbed: updated Odyseee0d2ecbb2 MediaEmbed: updated Rumble683a50394 MediaEmbed: updated Spotify example URLe3c00295b MediaEmbed: updated Streamable17904dd79 MediaEmbed: updated TikTok2483eaf1b MediaEmbed: updated Twitter0cbd29fde MediaEmbed: updated Twitterbfd6323d0 MediaEmbed: updated Vimeo3fcab01e0 MediaEmbed: updated Vimeo53ce06e23 MediaEmbed: updated WSHH9c8a36d2d Updated external dependenciesd11508589 Use correct parameter type in setParameters docblock4f02bf465 XmlFileDefinitionCollection: allow '0' to be cast to an integerbc0d88317 XmlFileDefinitionCollection: do not convert non-string valuesbc58b94ed Added support for PHP 8.1cf6fb85ce MediaEmbed: added Audius1d5e3e2a1 Emoji: updated to Unicode 14.0e8ff4904d MediaEmbed: updated Facebook2bacb5d24 BBCodes: give explicitly-paired BBCodes slightly better priority1c00f2624 MediaEmbed: ignore Gist archive links11c766817 MediaEmbed: updated Acaste75f9f3d2 MediaEmbed: updated Gista81e56567 MediaEmbed: updated TrendingViewsf80f790b0 NormalizedCollection: ignore invalid keys in delete() and exists()6d3c5af8e MediaEmbed: added Acast0c4e0c15c MediaEmbed: added YouMakerdcf3cbf98 RegexpConvertor: added early return for empty regexpsc88fe3653 BBCodes: updated default CODE BBCode62b4e7f4b BBCodes: updated default CODE BBCode29d5bcf16 Change code highlighting theme from github-gist to github.37fadd4e9 MediaEmbed: scrape from HTTP headers as well as body6e66120f0 MediaEmbed: updated 247Sports83629d2c4 MediaEmbed: updated Medium03c9dd73a Use HLJS 11.0.1How can I help you explore Laravel packages today?