613f6361c
MediaEmbed: added SiteHelpers API
8cf698f84
MediaEmbed: updated Spreaker9ac3f008c
Updated AbstractNormalizationa96383c6e
Updated GitHub actiona025c6e11
Updated dependenciesc06092c26
Upgraded GitHub actions
3001de226
MediaEmbed: updated Giphy7b7c14b61
MediaEmbed: updated Instagram3a31a34c1
MediaEmbed: updated JSFiddle34912a84e
MediaEmbed: updated Medium4fd5739d6
MediaEmbed: updated VKeafb249cc
MediaEmbed: updated dark theme selector in Telegram and Twitter
487e3c48b
MediaEmbed: added On3 DB
8d91c8b3f
MediaEmbed: removed BleacherReport
bf99a935d
MediaEmbed: updated 247Sports05b9223e2
MediaEmbed: updated WSJac0b75ee0
MediaEmbed: updated example URLs742e3da89
Return the response body when a HTTP error occurs during scraping
ce28c14bd
FilterSyntaxMatcher: fixed parseFilterArg() signature
134bffb2b
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 applicable
c9f762aad
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 XenForo
56da3f431
Fixed links in docs9dc8b1a69
Fixed nullable types for PHP 8.4
894615027
MediaEmbed: updated Imgur7372cd01f
MediaEmbed: updated Kalturafb4b6d957
MediaEmbed: updated Mastodon0941fde59
Updated copyright notice99dffbce7
Updated dependencies
a41591323
Bundles: added type declarations
b1d809a0c
MediaEmbed: removed Amazonf9ff2282d
MediaEmbed: removed Streamja
d9d50711d
AbstractChooseOptimization: optimized isEqualNode() for the common casee4eb30c89
AbstractChooseOptimization: replaced isEqualNode() implementationf97349402
MediaEmbed: updated Bandcamp7c95e9d51
MediaEmbed: updated Threads
e1ec00821
AbstractNormalization: added workaround for weird DOM quirks07f2468de
MediaEmbed: added Twitter oEmbed endpoint
e595860bb
DisallowUnsupportedXSL: fixed the range of allowed characters in dynamic attributes
25714e6dc
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
44b040c98
Added GitHub workflowf0fbc6f84
TemplateNormalizations: added OptimizeChooseAttributes pass3da387000
TemplateNormalizations: added support for SweetDOM
bb1a1d2ac
MediaEmbed: removed NBC Sportsbc785a197
MediaEmbed: removed Stitcher
d5b261549
MediaEmbed: fixed TikTok oEmbed endpoint
4e54aa38d
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() calls
cd53829c3
BBCodes: updated default CODEc5891a573
MediaEmbed: updated Facebookee1965642
MediaEmbed: updated Facebookb429c7b60
MediaEmbed: updated Facebook593490f42
MediaEmbed: updated Facebook135de3549
MediaEmbed: updated Twitter334e96d72
MediaEmbed: updated Twitter6fb87d797
MediaEmbed: updated YouTube55cae0cdf
Updated README
440d40901
Enable PHP8 functions in bundled renderers8188d7ace
MediaEmbed: updated Reddit528665cc3
RulesGeneratorList: updated remove()f33cdf622
Updated RTD config
38e323231
MediaEmbed: added Threadsd1887fad1
MediaEmbed: added support for YouTube clips
d34f9d3c1
MediaEmbed: removed defunct site Gfycat
a35d090d2
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 TemplateNormations66fcff366
Updated README
5b58f4485
Added ParsedDOM API to safely manipulate XML
052cde47b
BBCodes: updated hljs-loadere824143f7
MediaEmbed: updated SlideShare84be6040c
MediaEmbed: updated SlideShare31553ea9a
MediaEmbed: updated Telegram422f66269
MediaEmbed: updated TikTok0b2abb6e3
MediaEmbed: updated Tumblrab81d37a8
MediaEmbed: updated YouTube
f84dbded0
MediaEmbed: added Bunny Stream922025f00
MediaEmbed: added support for YouTube Live URLs
8b473fee9
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.6
536cbdf1f
Autoimage: added support for custom file extensionseb8a5c487
Autovideo: added support for custom file extensionsd4750cdbb
MediaEmbed: added MastodonHelper9ad74ecac
MediaEmbed: added support for custom Mastodon instances
7f7481ab9
MediaEmbed: updated Mastodonba76ce0b0
MediaEmbed: updated Rutube9724b7906
MediaEmbed: updated TikTok
c0ce8f099
ElementInspector: updated HTML specs41b342149
Emoji: replaced the default assets URL
ece847b93
MediaEmbed: added Mastodon
af7a4ddcb
BBCodes: updated default CODE0989028dc
Emoji: updated to Unicode 15.0bb5aadcbb
Litedown: updated inline spoilers' onclick handler62d23f557
MediaEmbed: updated Spotifyce3edbd40
MediaEmbed: updated Tumblr
4460ef815
MediaEmbed: added Rumble oEmbed endpoint02eefa9cf
MediaEmbed: added Rutube oEmbed endpoint
d3d27b7bd
MediaEmbed: removed bad header from Rutube
3b117c891
MediaEmbed: updated Facebook8b3919d87
MediaEmbed: updated Facebook9fb6cd493
MediaEmbed: updated Facebookf0879ef04
MediaEmbed: updated dynamic iframes
71e5bbe78
Added CSP headers to live preview demos6ceca4fff
Added doc5ce43ed08
JavaScript: added messaging-related externs
440817eb0
JavaScript: removed support for Internet Explorer
20a3c1333
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 demos
e3245de01
BBCodes: removed redundant higlighting in CODE
c87eb3f35
BBCodes: fixed Closure Compiler warning in CODE
02f0d41f2
BBCodes: updated hljs-loader in CODEcdd9d190e
ElementInspector: updated to latest specsdf8440c2b
JavaScript: prefill the function cache with static code
87a284e38
MediaEmbed: added Wavekit
e0dcd772b
BBCodes: updated default CODE4919d8bd3
MediaEmbed: updated MixCloudb23054412
Updated dependencies69de62652
Updated docs
e0fab7776
MediaEmbed: added support for private playlists in SoundCloud
ba4b7a84b
Fixed whitespace
c34737eb5
Allow trailing plus sign in Autolink6d4c3e097
Updated MkDocs
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 Telegram
5e294db63
MediaEmbed: removed Vocaroo's old Flash player
c199a448a
Fixed callable type annotations
840acf54c
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 values
bc58b94ed
Added support for PHP 8.1cf6fb85ce
MediaEmbed: added Audius
1d5e3e2a1
Emoji: updated to Unicode 14.0e8ff4904d
MediaEmbed: updated Facebook7b7dcd3cb
Updated BBCodes doc
2bacb5d24
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 regexps
c88fe3653
BBCodes: updated default CODE BBCode62b4e7f4b
BBCodes: updated default CODE BBCode29d5bcf16
Change code highlighting theme fromgithub-gist
togithub
.37fadd4e9
MediaEmbed: scrape from HTTP headers as well as body6e66120f0
MediaEmbed: updated 247Sports83629d2c4
MediaEmbed: updated Medium03c9dd73a
Use HLJS 11.0.1
fd0df9fe2
BBCodes: updated default CODE BBCode699577a02
Quick renderer: do not transform switch statements
5df3c57b9
StylesheetCompressor: fixed an issue with UTF-8 chars incorrectly split
2091db6b6
FixUnescapedCurlyBracesInHtmlAttributes: added support for arrow functions129691ddd
MediaEmbed: added Odysee
ce1817bf0
MediaEmbed: removed defunct sites Break, GameTrailers, and Mixer
16a01b3df
ElementInspector: updated definitions from HTML specs70e05f3c3
JavaScript: replaced substr() with substring()632452c0a
MediaEmbed: updated Odyseefa6ce8f1a
MediaEmbed: updated YouTubeb680fbcd0
Replaced ternaries with null coalescing operatorse51239b7e
UrlFilter: updated regexp and JavaScript version
4256d1f08
MediaEmbed: added Apple Podcastsbeb0082bc
XPathConvertor: added support for PHP 8.0 string functions
f801b61f2
MediaEmbed: updated IMDb44f22bfc8
MediaEmbed: updated Wistiabd16776c5
Updated bundlesf1fe19a42
XPathConvertor: made the optional PHP features togglable26ac52914
XSLT: explicitly set htmlspecialchars() escape mode
4b83f7c67
BBCodes: updated default CODE BBCodec7b72ac82
MediaEmbed: updated Podbeaned19f57c0
MediaEmbed: updated SoundCloud6a233cf46
MediaEmbed: updated TikTok739cd5f10
MediaEmbed: updated WorldStarHipHop
33168acaa
MediaEmbed: added AMP metadata
b52de21fd
EnforceContentModels: generate breakParagraph rules where applicable813be2c3d
MediaEmbed: updated Megaphone126771444
MediaEmbed: updated Sportsnet
03edc53a0
MediaEmbed: added support for fb.watch URLs
f3a88bece
Litedown: fixed an issue with fenced code blocks inside of lists
19699dc2f
Emoji: ignore aliases that are followed by U+FE0E36e505ced
MediaEmbed: updated BBC Newse838f3779
MediaEmbed: updated Rutube9f08233e6
MediaEmbed: updated Twitch03af8d8e2
Parser: simplified outputTag()a11f4c232
TaskLists: recheck tags at the end of configuration
4d0b7595f
Emoji: fixed a PHP error that can occur with empty aliases327f06a6a
Emoji: fixed an issue with some Unicode aliases
cf913ebbe
BBCodes: updated default CODE BBCode38f158f2f
MediaEmbed: updated Anchor
b5d664bb3
MediaEmbed: added Imgur oEmbed infoc21685645
MediaEmbed: added Instagram Reels06d5e490f
PHP renderer generator: added a fast path for handling static node names
f357b2e64
TemplateParser: removed unused parameters
0dd855c9e
MediaEmbed: updated Streamable23ee8a5d5
MediaEmbed: updated Wistiaf14bd4eca
TemplateParser: mark boolean attributes in the representation
6909b2327
TemplateHelper: fixed handling of HTML special characters in highlightNode()
0a661c962
AttributeFilters: refactored HashmapFilter and MapFilterc8ae84391
BBCodes: updated default CODE BBCode816182d45
MediaEmbed: updated BitChute16d018d6e
MediaEmbed: updated TikTok704b16b4f
RegexpFilter: reworked safeness checks
bb8c095e6
FilterSyntaxMatcher: added explicit octal notationea51b491d
MediaEmbed: added Falstad Circuit Simulator159784fb2
MediaEmbed: added JSFiddle7baf9538c
MediaEmbed: added Rumble935957bb4
MediaEmbed: added support for dark themes
c7548f5e1
MediaEmbed: removed discontinued FOX Sports site
0edf2e91b
MediaEmbed: updated JSFiddle6b99842fe
MediaEmbed: updated Libsyn16a1e596a
MediaEmbed: updated Twitterdf91465b8
Updated bundles
2b9267496
BBCodes: updated default CODE BBCodea583e346c
MediaEmbed: updated 247Sports0b138efc4
MediaEmbed: updated Amazon923310847
MediaEmbed: updated BBC News338e48986
MediaEmbed: updated Spotify30b0a11c8
MediaEmbed: updated Stitcher47c929c02
MediaEmbed: updated dumpert
c49e5a430
BBCodes: updated default CODE BBCode480398516
BBCodes: updated default CODE BBCodec88642cdc
Emoji: updated to Unicode 13.15a6c80ea0
MediaEmbed: updated Getty Images14923f953
MediaEmbed: updated Gfycat693b57ae9
MediaEmbed: updated Medium
e62774c4e
MediaEmbed: added Clyp79c359ed8
MediaEmbed: added Mixcloud oEmbed data
039a08e49
BBCodes: updated default CODE BBCode5aa06ccda
MediaEmbed: updated BBC News6ac0b25b2
MediaEmbed: updated Kaltura74ee840cd
MediaEmbed: updated Spotify9f6654eb9
MediaEmbed: updated Stitcher
b65d3a585
MediaEmbed: added Castosd96e5b47b
MediaEmbed: added CodePenc7265bc7a
MediaEmbed: added Kaltura33da8e189
MediaEmbed: added TradingView1fa8bcd3b
MediaEmbed: added Vimeo oEmbed info
c81c92802
CallbackGenerator: explicitly cast callback to string715710926
MediaEmbed: updated MSNBCe9b901e96
MediaEmbed: updated Medium
4fd902b91
BBCodes: updated default CODE BBCodeb2823a510
BBCodes: updated default CODE BBCodeb13470f70
MediaEmbed: updated Audiomacka5cce0a8e
MediaEmbed: updated Twitch615378133
MediaEmbed: updated Twitch
c34a75ea4
MediaEmbed: added Wistia
7f2a0a843
BBCodes: updated default CODE BBCode388e4fbfc
JavaScript: updated externs4d2792bc4
MediaEmbed: reinstated unofficial support for hashless VK URLsca83829e5
RegexpConvertor: reorganized codeb141e1098
RegexpConvertor: updated Unicode propertiesc5c2d2cbf
TaskList: replaced template manipulation with SweetDOM
ea4658c5b
Added template manipulation via SweetDOMdc61d807c
Litedown: added support for self-generated "id" attributes in headers
f9eb0e264
Autolink: removed dead code2e127910c
PHP Renderer: removed redundant removal of meta-elements
cc0c621c2
Litedown: improved compatibility with original Markdown rules for parentheses in links
62942bbc2
Added AddAttributeValueToElements and SetAttributeOnElements template normalizersd4d0b66ec
MediaEmbed: added GIPHYef7a64e6b
MediaEmbed: added loading="lazy" attribute to iframesf136125c1
MediaEmbed: added support for GIPHY videos
a79accfd0
Emoji: updated Twemoji URLea42a6e90
Emoji: updated to Unicode 13.03f51c0852
MediaEmbed: updated Facebook782bbadbb
Renderers: ensure that floating point numbers are displayed in the C localea1d089576
SetRelNoreferrerOnTargetedLinks: refactored to extend AddAttributeValueToElementse08158d2f
TaskLists: ignore task IDs during live preview1b5d46223
XSLT: ensure that the decimal separator is a dot regardless of locale
f2d1ff160
Added TaskLists pluginc12c0db9c
Fatdown: added TaskLists96912cdeb
Litedown: added support for automatic links
885f7e234
Renderer: improved performance of safety check436c2d8d9
Utils: improved the performance of various functions
5c358aa8f
DisallowUnsupportedXSL: added xsl:attribute and xsl:element checks
af2944f19
DisallowUnsupportedXSL: refactored attribute requirements7e3c1a8c0
MediaEmbed: updated Facebook7290f8b4e
PHP renderer: match libxslt serialization of minimizable attributes in HTML7414ca9d5
Quick renderer: replaced hardcoded value with constant
6d9dcd09c
TemplateChecks: added DisallowUncompilableXSL039015605
TemplateChecks: added DisallowUnsupportedXSL, enabled by default
a5ddda129
DisallowUnsafeDynamicURL: improved detection of safe URLs27dbc900b
MediaEmbed: updated Spotify
12bdf56b7
JavaScript: fixed scripts not being executed on Blink browsers
544f430f9
BBCodes: updated default CODE BBCode61d3dcf2a
BBCodes: updated default CODE BBCode194bc5388
BBCodes: updated default CODE BBCode98fa77467
JavaScript: updated externs
3eae3fbe1
MediaEmbed: updated definitions
15bfc779b
OptimizeChooseDeadBranches: fixed 00 incorrectly considered true732a54ac7
XPathHelper: fixed an issue with overzealous minification
9db9113e6
Autolink: added support for trailing underscores4de32bb77
JavaScript: added minifier hints for plugin regexp
c7d1b9e72
Autolink: fixed an issue where valid characters could be removed from the end of a URL3b08570a2
TemplateNormalizer: fixed an issue where the XSL namespace could become unregistered in XPath
3d1969853
MediaEmbed: updated MSNBC and Tumblrc1e06bc87
MediaEmbed: updated TikTok9bf0d3823
MediaEmbed: updated XboxClips, now GameClips.io19674d155
XPathConvertor: do not add extraneous calls to boolean() in conditions
b79f84836
MediaEmbed: removed defunct site CollegeHumor
0af04297e
BBCodes: updated default CODE BBCode385992df9
MediaEmbed: updated Vocaroo138821eac
Tag: reorganized codead91b2d37
XPathHelper: improved minification of boolean operators6943368f2
XPathHelper: improved minification of consecutive non-word characters55782b27a
XPathHelper: remove redundant parentheses in minify()26004e063
XPathHelper: replaced string encoder in minify()00510a5b6
XPathHelper: simplified and improved minification of operators
f6c496721
Autolink: added support for rootless URLs0f7166909
FilterSyntaxMatcher: added support for numeric literal separatord519bad01
HTMLEntities: added support for HTML5 entities076524e87
MediaEmbed: added support for Spotify podcasts1bd195933
TemplateLoader: added support for HTML 5 entities in HTML templatesba20ec844
TemplateLoader: added support for HTML 5 entities in XSLT templates
3fe1f6482
BBCodes: updated default CODE BBCodeb3cea0820
FilterSyntaxMatcher: improved support for escaped characters94071e2fe
TemplateLoader: improved handling of HTML5's AMP entity33d90df58
XPathHelper: rewritten string encoder
abc127c7d
MediaEmbed: added Spreaker0aaff6af6
XPathConvertor: added support for booleans in math expressions
0d8acace1
MediaEmbed: removed defunct site Plays.tv
84f8f35fd
Parser: fixed trimFirstLine rule ignored on paired tags
0764f9e3c
XPathConvertor: do not backtrack on attribute names07df31fbe
XPathHelper: improved minification of substractionsb19a9207e
XPathHelper: use the XPathConvertor parser for complex expressions
7dde9892c
Added support for custom header in generated PHP files727da332c
Bundle: added getParser() and getRenderer() definitions to base classe707f6f28
BundleGenerator: added support for bundling the JavaScript source5c576086a
MediaEmbed: added Anchor2ec9591ce
MediaEmbed: added Megaphone
729fbb540
MediaEmbed: updated CNBCa669a53d4
Parser: simplified the computation of allowed tags in new contexte4030cf6a
StylesheetCompressor: split into smaller chunks to appease Google Closure Compiler30654b4f5
Updated JavaScript Logger
b52eb84f3
AbstractConstantFolding: added support for folding conditional expressionsda7387e1b
FoldConstantXPathExpressions: added support for boolean expressionseeb5ec68f
FoldConstantXPathExpressions: added support for simple comparisonsa2c8cc0be
InlineXPathLiterals: added support for true() and false()cd6eede77
Live preview: added support for data-s9e-livepreview-hash attributee560157b9
Live preview: added support for data-s9e-livepreview-onupdate attribute/eventfd984e34e
MediaEmbed: added Mixer4ef14d2c5
TemplateNormalizations: added DeoptimizeIff7dddb9a6
TemplateNormalizations: added OptimizeChooseDeadBranches179035702
XPathConvertor: added support for true() and false()
414f457ed
MediaEmbed: removed defunct site Tinypicabf0bea88
Ruleset: removed useless code
f52add17f
Fixed Google Closure Compiler warnings in live preview
6d8d0e82c
AbstractConstantFolding: improved performance4d08e2493
Amend document typos492288d7b
BBCodes: updated [code] BBCode510176e04
BBCodes: updated [code] BBCodead030d0a6
BBCodes: updated [code] BBCode98acaa712
BBCodes: updated var descriptions in bundled BBCodese8501554b
ContextSafeness: consider backticks unsafe in JavaScripte7baa21e2
ElementInspector: updated to HTML 5.38ef407006
Emoji: updated to Unicode 12.171c5b4d15
Escaper: escape tildes by default0e277e649
FoldArithmeticConstants: restricted additive identity folding507cdadd4
FoldConstantXPathExpressions: ignore irrational numbers74d308561
JavaScript: updated externsbde1c604d
Live preview: improved handling of update eventba54cfa16
Live preview: renamed data-s9e-livepreview-postprocess to data-s9e-livepreview-onrender6b35b43c7
MediaEmbed: updated Audioboom912a5f52c
MediaEmbed: updated CNN3e0df2054
MediaEmbed: updated Facebooke92f180d6
RecursiveParser: use a DEFINE group for group expressions99b7f0b84
RegexpConvertor: updated properties to latest Unicode specs8b2ba9100
XPath: reorganized codeed9e70daa
XPathConvertor: simplified grouping of boolean operators and expressions
61d2a9b6c
Emoji: fixed compiler warnings in JavaScript parser15fa701f5
Fixed compiler warning in JavaScript version of urldecode()b69ead06d
Fixed various compiler warnings in JavaScript sources987acc8f4
Fixed various compiler warnings in JavaScript sourcesda93809a4
Fixed various compiler warnings in JavaScript sources55b029742
Keywords: fixed compiler warnings in JavaScript parserb75c7ccb5
Litedown: fixed JavaScript warnings in Emphasis pass
6f2f1fcc9
BBCodes: updated default CODE BBCode4dd69b5dd
FancyPants: updated JavaScript parserbb7c27a95
HTMLElements: simplified attributes parsing1dbbcc606
HTMLElements: updated attribute filter definitions9e2a4e874
JavaScript: updated externs3c3bc7d3f
JavaScript: updated externsa28771a30
JavaScript: updated regexp result handling and castinga2e4c9a83
Litedown: eliminated superfluous variable in Blocks pass0ddf1936c
Litedown: made variable non-nullable in Emphasis passf5f10524a
Parser: ensure that regexpLimit is set before executing a plugin's regexpfea82fedf
PipeTables: handle tables inside of spoiler blocksef703b9b1
Reorganized DOM diffing in live preview
28a405d9e
MediaEmbed: added Trending Views
e83bf910c
BBCodes: updated the algorithm that handles backslashesdecd84340
BBCodes: updated the regexp that captures unquoted attributes58835aa86
Litedown: exclude ASCII punctuation from inline scripts' short form
aed44ffd6
Added FilterHelper and short syntaxc8e3025c5
Added RecursiveParser, to be used internally357c9c773
DisallowUnsafeDynamicURL: added support for xsl:choose statements3da711fed
Litedown: added support for block spoilers and inline spoilers
a59c76606
MediaEmbed: removed defunct site Healthguruc7a59a846
MediaEmbed: removed defunct site LiveCap8d4310813
MediaEmbed: removed defunct site Yahoo Screen6f7aa1ab2
MediaEmbed: removed discontinued site HumorTV
1b79cd300
Fixed default sortPriority value in Tag.js8d6c6327b
Fixed handling of ignored attributes in live preview
3c63ecc4a
BBCode: properly reject colons in BBCode names during configuration531c0e963
FilterSyntaxMatcher: renamed ArrayKey, ArrayValue to Scalar, Literal13cfdfa2e
Litedown: set all blockquote tags to the same priority27f70904e
Litedown: skip the next auto line break when a forced line break is used42d410db1
MediaEmbed: updated BBC News903568b8a
MediaEmbed: updated Bleacher Report81239be11
MediaEmbed: updated CNBCf2d0b1cb1
MediaEmbed: updated Internet Archive69d0bfeb4
MediaEmbed: updated MRCTV1a78a1e62
MediaEmbed: updated MSNBC58874c6f0
MediaEmbed: updated İzlesene872421b92
OptimizeChoose: switch the logic of when/otherwise if it eliminates a branch34b2c5369
Parser: do not needlessly fix self-closing tags with an autoClose rulef7eb4688d
Parser: improved the tag sorting algorithm9641a2721
RecursiveParser: use the match name as a tiebreaker when sorting7cd28aa6a
XPathConvertor: simplified tokenizeXPathForExport()a3e52ece8
XPathConvertor: updated to use RecursiveParserd43da72ea
XPathConvertor: use a PCRE MARK to identify the match
021b68b5b
Emoji: fixed Twemoji filenames for ZWJ sequences
2868b21d6
Added new named parameters to tag filterscfb9bb738
Fatdown: added mailto to the list of allowed schemesbec1c0810
MediaEmbed: added Sporcleab956458c
MediaEmbed: added support for Google Sheets charts40adb246e
TemplateNormalizer: added support for custom normalizations list in constructor27716cd91
Utils\Http\Client: added returnHeaders option
7bb7842f8
AbstractNormalization: removed the $onlyOnce property5d443634e
Emoji: removed attribute name from configurator4d6998300
RegexpBuilder: removed CharacterClassBuilder07a289f23
Removed deprecated APIs571a82ce8
Renderers\XSLT: removed unreachable codec2e519208
TemplateHelper: removed deprecated API
f018f9da3
Fixed rejection of templates that can only be partially rendered by the Quick renderer234c8df36
Utils\Http\Client: fixed custom headers not being reset between requests
1f917de42
AVTHelper: improved handling of escaped braces6f827c274
Autolink: prevent partial replacements inside of a URLffd66f8b8
Bumped PHP requirements to 7.1f237bd07c
DisallowUnsafeDynamicURL: reorganized codebf09f813a
Emoji: changed default template to use Twemoji assets407f5208e
JavaScript\FunctionProvider: prefill cache and keep it in sync40a9f8e66
MediaEmbed: updated BBC Newscb7888d3d
RegexpBuilder: refactored to use s9e\RegexpBuilderbf24e0d72
RendererGenerators\XSLT: reorganized code47c32647d
RendererGenerators\XSLT: replaced optimizer6a71b5f29
Reorganized Configurable trait9f029995b
Tag: reorganized invalidate()b18ba8205
TemplateLoader: replace CDATA on load5c18a0de1
UrlFilter: allow non-HTTP, non-FTP URLs with no authority parte70e95de4
Utils\Http\Client: updated API212389923
XPathConvertor: identify translate() as a string functionb9aa4c8e3
XPathConvertor: refactored and rewritten234de3584
XPathConvertor: updated Runner constructor
5b4420b4c
MediaEmbed: added Sendvid
d3860f3a5
MediaEmbed: updated XboxDVR
35cd6f3bd
MediaEmbed: added 247Sports9312daef7
MediaEmbed: added BitChute
639a92db4
Censor: do not use atomic grouping in JavaScript regexp3e576cd3d
MediaEmbed: updated 247Sports5f26c13a5
MediaEmbed: updated Amazon78d31f3f0
MediaEmbed: updated Gfycatae5ac62af
MediaEmbed: updated MLB
01d8b015f
Autovideo: added controls to the player496320829
MediaEmbed: added TikTok
2fb37c77a
Emoji: updated to Unicode 12.0c164ec116
MediaEmbed: register variables on setup and update them in real timec35ed70dd
MediaEmbed: updated Spotify
63574b76c
UninlineAttributes: added a fast path for static attributes
d2d21bae3
AVTHelper: simplified parse()5644c5f88
Configurator: do not implicitly call finalize() in asConfig()3440c0225
Emoji: updated EmojiOne URLfc470bbd9
FoldArithmeticConstants: updated regexps3a2d4d3c0
MediaEmbed: updated Gfycat446c4295e
MediaEmbed: updated Gistea5d59768
MediaEmbed: updated Google Sheets4be095e3e
MediaEmbed: updated Google Sheetsc216c71b5
MediaEmbed: updated Pinterest020ea657d
MediaEmbed: updated The Guardian582dcb793
MediaEmbed: updated Tumblr1fc93878f
NodeLocator: reorganized internal APIc61d88266
NormalizeAttributeNames: replaced PHP conditional with XPath predicate76f73f2ab
PHP Serializer: cache the value of all "void" attributes8ca414940
Quick: improved the regexp used to match string literals in sourcea24789833
TemplateLoader: remove redundant namespace declarations on load/save192081983
TemplateNormalizations: improved the handling of whitespace in text nodes1c805a2ee
TemplateNormalizer: reduced the number of passes that run on uninlined attributesfacc8d79b
TemplateParser: use XPath queries instead of DOM methodsf944f8789
UninlineAttributes: use a document fragment when creating xsl:attribute elements4e355e608
XPathHelper: reorganized parseEqualityExpr()
640eed514
ColorFilter: added support for alpha channel
7651e0c8a
MediaEmbed: updated Gfycat9341727fd
MediaEmbed: updated Google Sheets62b26960b
MediaEmbed: updated Instagram3eb59f3e9
MediaEmbed: updated MSNBC and Team Coco1ba5d6685
MediaEmbed: updated Medium397e9f640
MediaEmbed: updated Twitter2d1755cbd
MediaEmbed: updated Twitter9dc6edfb2
MediaEmbed: updated dynamically-sized sites21a52e55d
Parser: reject invalid UTF-8 inputec51bb0b9
Parser: remove control characters from attribute values
8c9bfcbf2
AbstractDynamicContentCheck: added support for multiple named attributes in XPath expressionsc3c8c86ea
DisallowUnsafeCopyOf: added support for multiple attributes in xsl:copy-ofe6668ae95
MediaEmbed: added support for /embed/ URLs in Internet Archivea2bd8c7b0
MediaEmbed: added support for YouTube playlists with no IDe4db3c75d
TemplateParser: added support for multiple attributes in xsl:copy-of
119cd186e
MediaEmbed: removed defunct sites Kiss Video and Videomega
9a1107012
AbstractDynamicContentCheck: reorganized checkExpression() codef1f24c6e9
Censor: simplified Helper's regexp8aa52c780
MediaEmbed: updated Hudl3f5de94b9
MediaEmbed: updated Internet Archivecdb0984ad
MediaEmbed: updated example URLs to use HTTPS23aadcb92
TemplateHelper: updated highlightNode()
2be2114b4
BBCodes: added colspan/rowspan to TD and THb1f9068e9
ClosureCompilerApplication: added support for user-defined invocation77cd86307
Emoji: added support for Twemoji-style filenamesf73f8c737
Emoji: added support for Unicode 11.0d64c68848
MediaEmbed: added getSites()51a901525
MediaEmbed: added support for /presentation/ URLs in Scribd
4473762e5
MediaEmbed: removed Fora.tv
684350c16
MediaEmbed: fixed a potential issue with cached HTTP client using the wrong cache dir
e2abcec27
Emoji: capture trailing U+FE0F even when it's superfluous89d0da364
Emoji: merged default shortnames into custom aliases5b705ab2d
Emoji: renamed JavaScript hint71c4369a3
JavaScript: renamed $exportMethods to $exports5baaab747
JavaScript: sort exports in lexical order072c87d2d
MediaEmbed: updated Getty Images70c62091a
MediaEmbed: updated Global News7d42f039d
MediaEmbed: updated Rutubee29597a06
MediaEmbed: updated VK5a42834b2
RegexpConvertor: updated Unicode properties6ccd4a31b
Remove e/i/s tags in live preview to emulate the PHP renderer's algorithm
cf9b03193
Autoimage: added support for .svg, .svgz and .webp
a656b9159
EnforceHTMLOmittedEndTags: reorganized code6e3039f2e
PHP Quick renderer: detect truncated XML with a "r" root tagfd5e9f35a
Renderer: detect truncated XML with a "t" root tag806df83ad
Renderer: throw an exception when loading invalid XML
23906f738
MediaEmbed: added Streamja149e28792
MediaEmbed: added support for Instagram's IGTV8af61dce9
TemplateNormalizations: added EnforceHTMLOmittedEndTags
972a5a2fa
MediaEmbed: removed defunct site Blab9cc11283d
MediaEmbed: removed defunct site Viagame
c0b22b293
ElementInspector: fixed incorrect results in closesParent()
fd66aa6f2
MediaEmbed: updated Amazon8d2e3c683
MediaEmbed: updated Amazon (.in)4ccf4531f
MediaEmbed: updated Brightcove0d813046d
MediaEmbed: updated Gamespot142e4f953
MediaEmbed: updated Kickstarter25db4ecb8
MediaEmbed: updated MSNBCe152afe5a
Parser: prevent tags from starting or ending in the middle of a UTF sequence
70e7d0631
MediaEmbed: updated Youku7b909f51a
NodeLocator: simplified code8b647bafc
Split TemplateHelper into separate componentsec48771b3
TemplateHelper: simplified some code
50be65408
MediaEmbed: added support for custom headers when scraping
a7a43dec5
MediaEmbed: updated NPRfcaa772d5
Reorganized PHP serializer code
d16774a0e
TemplateParser: fixed an issue with empty elements being incorrectly removed from default case
1052a19e0
BBCodes: removed useless code from repository
a8174fafa
Fixed a potential issue with DOMNode::$childNodes returning empty text nodescf1069519
Fixed a potential issue with whitespace passed to the PHP renderer generator's serializer21ef901d2
TemplateParser: fixed a potential issue with DOMNode::$childNodes
588c7e272
BBCodes: reorganized Repository internals2aabcb262
TemplateNormalizations: avoid creating empty text nodescb2ddd1df
TemplateParser: improved compatibility with Libxml 2.76e1ddead0
TemplateParser: replaced PHP conditionals with XPath predicates
65c1fedf6
MediaEmbed: added support for custom user-agent value in scrapes
5d97a666a
ElementInspector: updated with HTML 5.2 changes8d5ece9fe
HTMLComments: remove trailing dashes to conform to HTML 5.2a213d7403
MediaEmbed: updated GoFundMe2a1977596
MediaEmbed: updated Imgurfd5a06765
MediaEmbed: updated Team Coco76a71ed88
MediaEmbed: updated Twitter5a558c1da
MediaEmbed: updated VK9e6255edc
MediaEmbed: updated VK's dimensions
692a5157f
TemplateHelper: added support for select attribute in passthrough replacements
4096d3523
MediaEmbed: fixed legacy Imgur embeds
a6b9a107b
BBCodes\Configurator\Repository: improved error message on bad repository filec50c7525b
XmlFileDefinitionCollection: load XML files using native PHP streams
dce9241bb
FoldConstantXPathExpressions: fixed an issue with function calls without arguments being incorrectly replaced95ea73acb
XPathConvertor: fixed boolean conversion of parameters set to '0' in conditionals49330b7fd
XPathConvertor: fixed handling of negative numbers that start with a zero815cef8b5
XPathConvertor: fixed handling of numbers that start with a zero
1d8456c11
MediaEmbed: updated Liveleakeee99ce51
MediaEmbed: updated MLB8cfcbe30c
XPathConvertor: refactored exportXPath()6d69d0ee0
XPathConvertor: simplified matchXPathForExport()57c7a5d71
XPathConvertor: simplified translate()
8e6388310
MediaEmbed: added support for "allow" attributes in iframes26cad57a6
XPathConvertor: added support for current()
d5cafb5e1
MediaEmbed: removed Oddshot
556b72ff8
MediaEmbed: updated Gfycat83b6bfa5d
MediaEmbed: updated Spotifyaa5532afc
TemplateHelper: reorganized replaceTokens()dcef175d3
XPathConvertor: refactored the way XPath expressions are tokenized
ac38f54cf
MediaEmbed: added support for Telegram5f4d01827
TemplateParser: added support for disable-output-escaping="yes"
08cb4d52a
MediaEmbed: removed support for Imgur's /t/ URLs
86f0c7ad7
BBCodes: updated SPOILER BBCode to prevent it from submitting forms7a4633b98
FixUnescapedCurlyBracesInHtmlAttributes: escape the first left brace of a function declaration74c90041a
InlineTextElements: do not inline text with disable-output-escaping="yes"58b2a389f
MediaEmbed: embed Imgur links to static images87671bcb8
MediaEmbed: updated BBC News95ed3fc0d
MediaEmbed: updated CBS News2b30e7523
MediaEmbed: updated Vevo25559caf4
MediaEmbed: updated Vevo289b1e26e
Simplified Quick renderer generator472c568b7
TemplateParser: refactored and split into subcomponents8a323795f
TemplateParser: simplified node removal
b72c04884
MediaEmbed: added FOX Sports
1b7e7a387
Parser: fixed an issue with malformed XML in places where text is ignored
7577e4584
Added caching HTTP clienta107e470a
Emoji: added support for textual codepoint sequences
147c773ea
BBCodes: removed $predefinedAttributes06920f1fb
MediaEmbed: removed $captureURLsffde0c243
MediaEmbed: removed $createIndividualBBCodesac33fb0a2
MediaEmbed: removed Vidme24d5ae989
MediaEmbed: removed Zippysharedef39285e
MediaEmbed: removed appendTemplate()7e343bf2d
MediaEmbed: removed support for custom schemes5921a6ad1
MediaEmbed: removed unused code21a9fce71
Parser: removed implicit invalidation in tag filters1c136a634
Removed InvalidTemplateException and InvalidXslException classes80ec0e641
Removed support for attribute generators and the {RANDOM} token in BBCodes
0c3bcb2c2
ElementInspector: updated for HTML 5.2ff6da69aa
HTMLElements: updated configurator for HTML 5.20bc92a880
HTMLElements: updated the list of URL attributesdace43e40
Litedown: restricted the characters allowed in link references' URLs8092ea038
MediaEmbed: refactored plugin6557a14ae
MediaEmbed: updated 8tracks112b7457c
MediaEmbed: updated Dailymotion and Twitch488a15907
MediaEmbed: updated Facebook9079e50c3
MediaEmbed: updated Flickrb7ee53bf5
MediaEmbed: updated Imgurc0f863da8
MediaEmbed: updated Redditeacf0e0f8
MediaEmbed: updated Spotifya5647eb14
MediaEmbed: updated Vimeo3d5cfef45
Parser: reorganized filter processing3de8c6af8
RegexpConvertor: updated Unicode properties to latest version1987a0ba4
TemplateHelper: updated for HTML 5.2788152faf
Updated live preview algorithm
8aef6ff75
Added RemoveLivePreviewAttributes template normalization to non-JavaScript renderer generatorsbadcf2a35
Added live preview attribute data-s9e-livepreview-ignore-attrsfa352dc5a
MediaEmbed: added live preview hints to dynamically-resized embeds
500d43a51
RegexpBuilder: fixed infinite recursion during remerge
69332cc50
JavaScript: updated Closure Compiler externs62ed3073f
MediaEmbed: keep all optional fields in cached definitions1e56d2a60
MediaEmbed: moved attribute creation out of add()805b1ae9a
MediaEmbed: normalize site definitions as they are createdee4b1bdd4
MediaEmbed: updated MSNBC6e5b6c405
Ruleset: refactored internals to be more scalabled3fde3969
TemplateInspector: split individual elements' inpection into ElementInspector2d242d8a7
Updated live preview code and JavaScript externsf6551bb4d
Updated live preview to return the last node modifieda75aef0cb
Updated the live preview algorithm
fa9e938a4
Added MinifyInlineCSS template normalizationd471649ce
Added timestamp attribute filter
0ef891332
Censor: removed unused method
feeeac930
HashmapFilter: fixed an issue where hash keys were not preserved during JavaScript minification803d3c5b9
RegexpConvertor: fixed the conversion of empty regexps
9ccb7597a
BuiltInFilters: reorganized filters into separate classes66b1d77be
BuiltInFilters: simplified regexp-based filters4f998c818
Logger: renamed get() to getLogs()d2df9701b
MediaEmbed: updated MSNBC47b00f1c8
MediaEmbed: updated YouTube017c8f77c
MediaEmbed: updated cached definitions
cff256ec2
Added OptimizeChooseText template normalizationf7b88b2d8
Added UninlineAttributes template normalization8dfdedf97
BBCodeMonkey: added support for short-form optional attributese92549522
Litedown: added support for subscript8e751a5a1
MediaEmbed: added Orfium
193dec933
Emoji: removed set configuration and hardcoded default template4744c5950
OptimizeChoose: removed redundant method232bb4e03
PHP renderer: removed source from renderer instance433651b7b
Removed HostedMinifier and RemoteCachecf79c62f4
Renderer: removed $metaElementsRegexpd37d1912a
TemplateInspector: removed getDOM()
0c6bc3331
AVTHelper: preserve whitespace in toXSL()4ea55275c
BBCodeMonkey: reorganized some code761bc3e35
ClosureCompilerService: updated service's URL34ff96f14
Detect unexpected input that cannot be rendered by the Quick renderer1fc40d19d
Emoji: use EmojiOne 3.1's PNG assetse6f58045d
Litedown: do not require a blank line before listsbe2618c1d
Litedown: refactored Superscript passb6368c235
Litedown: refactored parser into separate passes9ebe42bea
Litedown: reorganized Emphasis parserc941be98a
Litedown: simplified configurator setupf4be8e77d
Litedown: updated emphasis syntax to check for whitespace92ba7928c
Litedown: updated superscript syntax8d8e3cde3
MediaEmbed: updated Google Sheetscb942255a
MediaEmbed: updated Mail.Rucb0c4d6dc
MediaEmbed: updated YouTube283087b99
MediaEmbed: updated YouTube to remove deprecated optione06cc7079
Moved static code from dynamically generated PHP renderers into a separate class713cc2e29
OptimizeChoose: moved generic methods to an abstract class21f63889d
Preg: replaced detection of invalid regexpsd5bfb22a4
Quick: bypass entity decoding/encoding when multiple XML attribute values are output in an HTML attribute50d1bf55e
Quick: simplified boilerplate code3755ed483
Refactored and simplified template normalization classesf1a382413
Replaced custom branch tables with native switch statements in PHP renderers844df511a
TemplateInspector: reorganized code for readabilityd184254b7
TemplateInspector: simplified bitfield analysisbdcfec4fc
TemplateNormalizer: increased the maximum number of iterationse20a5c8b0
Updated JavaScript parsers to use bracket notation for character accessf6a3dfdb6
Updated PHP requirements to PHP 5.4.7
b82ab12b4
Litedown: fixed a bug triggered by empty code blocks77e81cfba
Quick: fixed an issue with @* in conditionalsac2353ba6
XmlFileDefinitionCollection: fixed an issue with atypical but valid definitions
14c4846e4
MediaEmbed: identify [media] tag pairs as markupaeaa1c8f1
MediaEmbed: made ->MediaEmbed->captureURLs accessible744f5a436
MediaEmbed: updated NHLee5e8e13b
MediaEmbed: updated Podbean91fa461a0
Preg: normalize custom tag names955c8e78c
RulesGenerator: improved code's readabilityba76dd0fd
XmlFileDefinitionCollection: cast known config values to the appropriate type
eebac1ad4
MediaEmbed: added support for parameters metadata in site config
8eb826344
MediaEmbed: removed default dimensions from definitions
d84102711
BBCodes: updated default [img] BBCode to accept dimensions9e917849f
MediaEmbed: updated Gfycat57bff33ca
MediaEmbed: updated Imgur7e7aa3b23
MediaEmbed: updated Vidmed75174d02
MediaEmbed: updated YouTube
0239f7e06
Added AllowAll rules generator76c01d93b
MediaEmbed: added support for Amazon Indiaafe63fc05
RulesGenerator: added BlockElementsCloseFormattingElements to default generators
d94ef970f
Configurator: removed addHTML5Rules() and integrated it in finalize()3e9a48fe1
Configurator: removed the finalizeParser and finalizeRenderer options from finalize()599a21548
Configurator: removed the optimizeConfig option from finalize()c20153268
Configurator: removed the returnParser and returnRenderer options from finalize()77f96dfe8
RulesGenerator: removed support for parentHTML option4d3370389
Ruleset: removed defaultChildRule() and defaultDescendantRule()65c910a20
TemplateInspector: removed isIframe()
f5f176c8c
Utils: fixed removeTag() failing with arbitrarily high values
4b05c5233
Autoimage: reversed tag priority to allow Autolink to linkify the imagea4862b55e
Autovideo: explicitly allow URL tags to be used as fallback9970de5da
Internals: increased the default limits for tags and other resourcesc31a802d1
MediaEmbed: explicitly allow URL tags to be used as fallback2d3cc9ba9
MediaEmbed: limit the width of dynamically-sized embeds to 100%a2dba6ee0
MediaEmbed: reorganized template generation for readabilitya58a52a34
MediaEmbed: updated Amazona7088bd48
MediaEmbed: updated Amazon4fc5fbda2
MediaEmbed: updated Getty2074eeabc
MediaEmbed: updated Google Drive6b26c91cd
MediaEmbed: updated Vidme608840ec2
MediaEmbed: use span as responsive wrapper15f65327a
Rules: the default rule for tags is nowdeny
.allowDescendant
anddenyDescendant
now only apply to non-child descendant
98f1ec319
Censor: fixed an issue where Helper::censorHtml() would not use the correct replacement
438497a86
MediaEmbed: added support for new Twitch Clips URLse12a63653
TemplateParser: added support for namespaces
f0a1b6589
Censor: removed Helper::reparse()023d2f1a7
Tag: removed setSortPriority()
51fce5c9d
Censor: fixed an issue with special characters in censorHtml()
5390c3af6
BBCodes: updated default spoiler BBCode80e813320
MediaEmbed: updated Audiomackaf3c2e758
MediaEmbed: updated audioBoom3e32c86eb
MediaEmbed: updated vidme
dc754f8d9
BBCodeMonkey: added support for setting nestingLimit and tagLimit in definitionsc6edaf190
BuiltInFilters: added support for PHP 7.2739fa2ee9
HotnameList: added support for PHP 7.2bd9a5d697
XPathConvertor: added support for PHP 7.2
07abb3413
MediaEmbed: removed the authoritative part of SoundCloud URLs used as id
ed780e3b9
FixUnescapedCurlyBracesInHtmlAttributes: fixed an issue where properly escaped braces would get incorrectly escaped again
7d7e16ebf
FixUnescapedCurlyBracesInHtmlAttributes: improved support for HTML attributes that end with an odd number of left braces76b806e92
HTMLElements: updated list of URL attributes6aba111ff
MediaEmbed: systematically scrape track_id from SoundCloud URLs935381522
MediaEmbed: updated BBC Newsd8f6c0573
MediaEmbed: updated Pinterest to exclude "explore" links
3159fe96a
XPathHelper: added support for ints and floats in export()
284b4e08e
FoldArithmeticConstants: fixed an issue with number formatting in non-C locales65f5721d4
Parser: fixed an unbounded loop that can occur when a tag closes an ancestor with a worse priority
cd0a160b3
FoldArithmeticConstants: improved the parsing of decimal and negative numbers82abeb20c
Parser: do not apply closeAncestor/closeParent rules if maxFixingCost has been reached to mitigate against unbounded loopsa8abcf6dd
Parser: tweaked regexp for performanceb7ba9e117
XPathHelper: improved detection of numerical expressions
a1b60abf9
TemplateInspector: fixed an issue where templates with a mixed content model would not allow any children
4ebc635ce
FixUnescapedCurlyBracesInHtmlAttributes: escape left braces that are not followed by a right brace3a3577129
MediaEmbed: updated Youku9e1197ae1
TemplateNormalizer: replaced the way iterations are counted
10d67eec1
MediaEmbed: added livestreaming tag5e9de5cda
MediaEmbed: added support for ABC News embed URLs
ea80c9deb
OptimizeChoose: fixed an issue where xsl:choose elements could be improperly repositioned
f44d2dede
MediaEmbed: accept uppercase schemes in IGN1356d05e8
MediaEmbed: accept uppercase schemes in SoundCloud231d1bc0e
MediaEmbed: updated Google Sheets1041b3e88
MediaEmbed: updated Oddshotd8ed8bf40
MediaEmbed: updated TinyPicb14e5abb4
MediaEmbed: updated Twitch
72091c2c4
Autoimage: added support for more punctuations4f9aa8bcd
Autovideo: added support for more punctuations18c63cea7
MediaEmbed: added support for attribution links from YouTube8bbb9b089
MediaEmbed: added support for new share links from YouTube4f5475ffe
TemplateInspector: added isIframe()
d3f9ae424
BBCodeMonkey: allow newlines in {TEXT} used in composite attributese52087874
EnforceContentModels: limit content fallback to single iframes31f46d6cb
MediaEmbed: updated Twitch8d0d4a82a
MediaEmbed: updated vidme6d678d75b
TemplateInspector: elements with "display:none" won't be considered block elements
1f4c52189
BBCodeMonkey: added support for flexible whitespace in composite attributes22566a0a1
BBCodes: added TBODY and THEAD to the repositorya8114878c
PHP renderer generators: added support for @* in conditions
f36db2024
BBCodeMonkey: TEXT and ANYTHING tokens don't have to consume any text in composite attributes3d7542c72
Parser: create tags generated by a fosterParent rule at the first available non-whitespace positionb241fbd2d
Parser: remove empty tag pairs, including those with attributes0031b5fa0
Parser: trim whitespace when adding a magic end tag if the current tag ignores whitespacee8bcaed06
Parser: trim whitespace when closing multiple tags if any of them ignores whitespace
8a25af9fa
FixUnescapedCurlyBracesInHtmlAttributes: added more JavaScript-related replacementsacdd16962
MediaEmbed: added support for Gifs.com42f549035
MediaEmbed: added support for Pinterest
25f2c231a
Removed the custom autoloader
382b31df3
RegexpParser: fixed incorrect unanchored patternecf1d71e4
Utils: fixed raw newlines in replaceAttributes()
bd3e3edce
Autolink: simplified parentheses matching842b02716
JavaScript: do not replace the s9e object if it already exists19c33a310
JavaScript\ConfigOptimizer: do not deduplicate empty arrays and dictionariescaf68b1cf
MediaEmbed: updated Podbean9deb2f725
MediaEmbed: updated WSHHd8623b088
RegexpParser: anchored bracket matching pattern as a precautionf5f494fc7
TemplateForensics: renamed to TemplateInspector2f57d0383
TemplateInspector: replaced "self" type hints with "TemplateInspector"20c5ed80f
Utils: normalize control characters in replaceAttributes()
e2910c4b1
FancyPants: added =/= as an alias for the not-equal signa9a2f2fa2
FancyPants: added support for toggling groups of replacementsd8644729c
FancyPants: added support for vulgar fractions5bc811858
PipeTables: added support for empty cells
ff0e5cf03
Emoji: updated aliases and changed JavaScript regexp to lowercasefcbe4f120
MediaEmbed: updated IMDbe7ad9f604
PipeTables: improved the priority of table tags9c4eff9ab
Updated composer.json with dev dependencies92f61dc74
XSLT: force HTML attributes to use double quotes
29dd2ca78
Added #fontfamily attribute filter008025df4
Added PipeTables plugind62d30a89
BBCodes: added align attribute to TD and THf7da8cd9c
Fatdown: added PipeTables1b2a9b28f
MediaEmbed: added support for MLB.comba6ce5e2d
MediaEmbed: added support for Twitch clipsfffd95cde
MediaEmbed: added support for the new NHL video site
3b3731fe6
FontfamilyFilter: fixed consecutive quoted strings
88bbafc3f
AttributeFilters: reorganized how each filter sets its own safenessf911748d3
BBCodes: disabled paragraphs inside [TD] and [TH]71c0fe828
BBCodes: updated default [font]8620a49e3
ClosureCompiler: updated externs85f6f41bb
HashmapFilter: reorganized code. No functional change5d2eea951
Litedown: improved the priority of QUOTE start tagsffde5aa2e
MediaEmbed: updated BBC Newsf4c750adc
MediaEmbed: updated Facebook06658f1b3
MediaEmbed: updated IMDbce1b411d7
MediaEmbed: updated SoundCloud. No functional change507fcbddd
MediaEmbed: updated Spotify8a486df0d
Parser: addTagPair() now sets the priority of the end tag to minus the given value7db413b19
Parser: invalidate tags that are skippedc5d2dbece
RegexpFilter: reorganized code slightlyf72332402
Ruleset: clear() should reset defaultChildRule and defaultDescendantRule rather than remove them
f83eb28
FancyPants: added support for not equal sign and guillemets
6d5797c
Censor\Helper: fixed an issue with text in quotes being ignored83f2797
Quick renderer: fixed an issue where attribute values would not be saved
6dced78
FancyPants: cached tagName/attrName in a local variable for better JS minification7293db8
FancyPants: reorganized code. No functional change04a6539
FancyPants: simplified parseSymbolsAfterDigits()0300282
MediaEmbed: made the default [media] tag's name configurable
4048a68
BBCodes: added [table], [tr], [th] and [td] to repository1e44987
Forum bundle: added [table], [tr], [th] and [td]90fcbce
MediaEmbed: added support for NBC News videosde73726
MediaEmbed: added support for Washington Post Video426e103
MediaEmbed: added support for new Pastebin URLsfd1094a
TemplateForensics: added support for more optional end tags
2805fba
Emoji: updated aliases915a281
Fatdown: disabled paragraphs inside of and3b8b047
FoldConstantXPathExpressions: replaced the blacklist of unsupported functions with a whitelist of supported functions
e82316c
FoldConstantXPathExpressions: fixed detection of XPath node tests in uppercase
d26e62b
FoldConstantXPathExpressions: improved detection of nonfoldable expressions
f3ce808
FoldArithmeticConstants: added support for folding substractions83a3468
Litedown: added support for spaces in inline links' info7cb65e0
MediaEmbed: added 'name' and 'tags' metadata to CachedDefinitionCollection items4602feb
TemplateNormalizer: added FoldConstantXPathExpressions pass
8b2e036
Parser: removed manual garbage collection
dc20ca8
BBCodes: updated default [CODE]75b28f9
MediaEmbed: replaced the SiteDefinitionProvider API6d1d7c0
MediaEmbed: simplified the XML configuration reader
3c2ff81
Added Autovideo plugin8608895
Autoimage: added support for fallback link via Autolinkca3cc4e
MediaEmbed: added Steam store64bc419
MediaEmbed: added support for fallback link via Autolink2a7b9ff
MediaEmbed: added support for uppercase scheme
0693ad7
BuiltInFilters.js: fixed unchecked access to undefined vardfa0e66
HTMLElements: fixed exception's messageba79789
TemplateForensics: fixed allowsChildElements() on a template with no xsl:apply-templates element8371057
Utils: fixed an issue with removeFormatting() where some tags were skipped
411f753
Autolink: excluded fullwidth and halfwidth punctuation from links02360fa
Emoji: simplified UTF-8 to codepoint algorithma0a2546
Emoji: store hexadecimal codepoints padded to 4 characters31b88d0
Emoji: updated JavaScript regexp. No functional changeb3b9e7b
EnforceContentModels: allow for some fallback content in templates with no xsl:apply-templates elementf1fb0c3
HTMLElements: updated the list of URL attributes7f67345
MediaEmbed: updated Amazon9388645
RegexpConvertor: updated Unicode properties2023bfb
Replaced the default behaviour on duplicates in AttributeCollection, BBCodeCollection, EmoticonCollection and TagCollectione66f291
TemplateForensics: updated specs to HTML 5.12c8bbf0
Utils: simplified the UTF-8 to codepoint algorithm
7cd1dfe
Emoji: added support for UTR #51 Unicode Emoji, Version 3.0e1701fd
Forum bundle: added support for emoji646c85b
JavaScript: added support for urldecode() as a callback3626b16
MediaEmbed: added support for non-ASCII usernames in Google+
f654a16
BBCodes: replaced stripos() calls for performance3352264
Emoji: made EmojiOne the default image setaee1add
Emoji: updated path to Twemoji assets27d1b6b
MediaEmbed: improved support for embeds whose dimensions are fully dynamic76e4641
MediaEmbed: updated ESPN8a77784
MediaEmbed: updated Imgurce36a47
MediaEmbed: updated TED Talksf3a0f52
MediaEmbed: updated VK2fc4807
Parser: improved the performance of out-of-order insertions in the tag stack4d3b0b0
Parser: simplified out-of-order insertion algorithm2507bfc
Parser: tweaked addTagPair() to reduce the need for additional sorting36c544e
Preg: set a higher priority to replacements over default pluginsd0543dd
StylesheetCompressor: improved heuristicscda5b1f
Tag: setSortPriority() has been deprecated and will emit a warning
3d68336
Autoimage: added support for uppercased URLsc8253c9
BBCodeMonkey: added support for putting BBCode attributes in quotes
7f3031c
Litedown: fixed catastrophic backtracking when matching inline links/images
5e6c18a
Litedown: added support for separating blockquotes with two blank lines636bd77
Litedown: added support for separating lists with two blank linesd77de85
MediaEmbed: added support for Plays.tv shortlinks
bf77ead
BuiltInFilters: removed public access to parseUrl()39a41bc
Configurator: removed getParser() and getRenderer()b005a40
Removed the Variant class and related API
915226a
BuiltInFilters: fixed an issue with empty query/fragment in URLs
52e41b9
ClosureCompilerService: updated externs07317a1
Code: ensure that __toString() always returns a stringe3c010a
Code: filterConfig('JS') should return the instance itself to preserve its content from being encoded as a stringd4c9eca
Emoticons: customized exception message to be more meaningful584562c
Litedown: expanded escaping to include the left parenthesis and single quotea365537
Litedown: replaced the algorithm handling links and imagesec2f000
Litedown: simplified ignoreEmphasis()0f533ba
MediaEmbed: updated Scribdaf8ddab
MediaEmbed: updated Straw Poll78ca63b
MediaEmbed: updated YouTube2ded572
Moved JS parser loading to PluginBase::getBaseProperties()0f34747
PluginBase: getBaseProperties() should not return a 'js' element if there is no JS parser4ecb7f2
Quick renderer: replaced the export() algorithmfa99034
Regexp: replaced JavaScript-related API99fbcd1
RegexpConvertor: updated toJS() to return a string rather than an instance of Code
d081f95
Added new rule type: createChild413fbeb
MediaEmbed: added support for Google Drive links that contain a domain namebfad6cc
MediaEmbed: added support for JW Platform
8a53870
Litedown: suspended escaping inside inline code spansafbbcd5
MediaEmbed: ignore the hash part of URLs when scraping2683928
MediaEmbed: updated Hudl0aff031
MediaEmbed: updated Hudl38ad33f
MediaEmbed: updated Reddit41967d0
MediaEmbed: updated SoundCloudd7526a4
MediaEmbed: updated XboxClips to exclude screenshotse141f0b
TemplateHelper: refactored some code and reformatted sources96a5a67
TemplateHelper: remove invalid attributes in loadTemplate()
a55119c
Litedown: removed excessive slash stripping from attributes722763d
Removed unused variable from PHP renderers
7ea7d29
Fixed an issue with newlines in attribute values in Quick renderingefd1ce3
Litedown: fixed an issue with quote markup inside of multiline attributes
65d80c1
Litedown: refactored inline code spans matching665444d
Parser: output LF characters as HTML entities in attribute values
0c704d7
Litedown: fixed an issue with backticks inside inline code spans6e536e6
Litedown: fixed an issue with unbalanced inline code markersc66c940
TemplateHelper: fixed an issue with UTF-8 characters in HTML-to-XML conversion
bad5c74
BBCodes: updated Highlight.js to 9.4.06e8c811
MediaEmbed: updated Getty Images
ff775b7
Emoji: added support for more aliasesb573086
XPathConvertor: added support for less-than and greater-then comparisons
558f34e
JavaScript\Encoder: fixed a potential issue with property names that start with a digit448e167
RegexpConvertor: fixed an issue with incorrect ranges used for \P properties
81106df
Emoji: updated EmojiOne's template to use lowercase filenames50e85d6
MediaEmbed: prevent division by zero in variable-sized embeds43acb03
MediaEmbed: updated Facebook3912aa9
MediaEmbed: updated Getty253fbb5
MediaEmbed: updated Internet Archivea579d85
RegexpConvertor: precompute the regexp that matches Unicode properties for performancee22a808
Updated Tinypic
64f3ee0
Added OL and UL to the Forum bundle794d664
BBCodes: added OL and UL to the default repository794127a
MediaEmbed: added NBC Sports8c6aa1e
MediaEmbed: added The Guardian7714ae9
MediaEmbed: added Veoh630ad0a
MediaEmbed: added a background image to YouTube and Twitter
c2a3a1c
Litedown: removed support for unquoted titles in links and images
a13416c
Fatdown: fixed missing title in links
c032937
Autolink: made ->Autolink->matchWww public11633f8
Autolink: remove most non-letters at the end of the URL2a7de09
Autolink: replaced manual check with word boundary assertion90eaf86
BBCodes: updated Highlight.js to 9.3.01608c79
Litedown: made the decodeHtmlEntities property public94f07bd
MediaEmbed: replaced all HTTP URLs with protocol-relative URLs in src attributes8b0a31d
MediaEmbed: updated Brightcove76638c6
MediaEmbed: updated Gfycat16038df
MediaEmbed: updated Gistab22f0b
MediaEmbed: updated VBOX7b0b717a
MediaEmbed: updated Youkud9f1608
MediaEmbed: updated dumperte49d6c9
OnlineMinifier: instantiate the HTTP client in the constructor15e3223
OnlineMinifier: renamed HTTP client property4f10e67
OptimizeChoose: streamlined conditionalc6fd225
TemplateForensics: inspect an element's style to determine whether it's a block-level element
266ccf8
Added support for named parameter 'text' in tag filterse5d1b85
MediaEmbed: added Brightcove5c5206c
MediaEmbed: added Healthguru34a49c1
MediaEmbed: added MRCTV04d14f1
MediaEmbed: added Video Detectiveae8cc70
MediaEmbed: added support for FORA.tv9a741c3
MediaEmbed: added support for Livestream short links and old sitebdc62e8
TemplateNormalizations: added SetRelNoreferrerOnTargetedLinks (enabled by default)
3b0682f
Litedown: removed support for space in inline links markup
71064bb
Litedown: fixed an issue with Setext headers causing the next line to be ignored
f038f28
Litedown: prefix the class name used to identify the language of a code block7606ab6
Litedown: require code fences' length to matchd2ff237
MediaEmbed: updated Dailymotion55ca396
MediaEmbed: updated NYTimes
eb234d7
MediaEmbed: added support for LiveCap
7e8fb2a
OptimizeChoose: fixed an issue when removing nested conditionals
9ca5270
Parser: fixed an issue with fosterParent and high-priority tags0eeecb3
Parser: fixed an issue with fosterParent and low-priority tags
11bdbe7
BlockElementsFosterFormattingElements: do not create a fosterParent rule if the template is not passthrough5bb3b77
Parser: adjusted the cost of fixing tags in fosterParent
8a13fb4
RegexpBuilder: added support for non-Unicode strings
7bafcde
MediaEmbed: removed support for discontinued Mixcloud short links
9f2b080
Litedown: fixed quote markup interpreted inside of fenced code blockse56f871
OptimizeChoose: fixed an issue with node iteration over a live tree
09bc408
Http: prefer native stream to cURL if safe mode is on (PHP 5.3 only)9398ee9
MediaEmbed: updated ComedyCentral93a6a9b
MediaEmbed: updated Imgur5de2c70
MediaEmbed: updated Straw Pollbbabbb9
MediaEmbed: updated Tumblr5ac0294
Updated externs files for Closure Compiler v20160208
e98b8a0
Added an HTTP helper with support for cURL and native streams19ecb28
Added support for customisable timeout in HTTP clients88562c2
Added support for toggling SSL peer verification in HTTP clientsc4e0a99
ClosureCompilerService: added support for configurable HTTP clientff15e3a
HostedMinifier: added support for configurable HTTP client8509ded
MediaEmbed: added Blab5feeae6
MediaEmbed: added support for HTTP client used for scrapinge2cae50
RemoteCache: added support for configurable HTTP client
39139c3
ClosureCompilerService: reorganized code0c2b5aa
Curl: reset the request body when doing POST requests48d08f6
MediaEmbed: moved all GitHub iframes to RawGitc73392e
MediaEmbed: moved hosted iframes back to GitHub4e55063
MediaEmbed: updated Indiegogo6444043
Moved Http helper to the Utils namespace9973077
OnlineMinifier: automatically set timeout in getHttpClient()ab2c9f1
RemoteCache: updated for new APIb2481cd
Reorganized native HTTP client's code0489bb8
Set headers unconditionally in native HTTP client
fd08fc1
Added support for MatthiasMullie\Minify8eda0fb
JavaScript: added support for converting \x{....} in regexps932f6f1
Minifiers: added experimental minifiers HostedMinifier and RemoteCache
e06bc52
MediaEmbed: removed Rdio
2c76bb3
BBCodes: updated Highlight.js to 9.0.04be9a3f
ClosureCompilerApplication: cache the binary's hash for performanceb730287
ClosureCompilerApplication: made constructor argument optional43b9f74
Minifier: use a default constant used as cache differentiator
8e4706d
Added support for negative offsets in NormalizedListfaeafd6
JavaScript: added FirstAvailable minifier1ec2d62
MediaEmbed: added Plays.tv853e63b
MediaEmbed: added support for timestamps in Twitch videos
4dab11f
Litedown: fixed incorrect indentation in fenced code blocks
8bc9340
Litedown: trim whitespace around the language name in fenced code blocks19ee41c
Litedown: updated inline code syntax to bring it closer to Markdown's1f6e375
MediaEmbed: updated Pastebin299996e
MediaEmbed: updated Twitch to use their new player
c40350b
Censor: added JavaScript hint650adb0
Censor: added JavaScript hint68fe6d6
Emoji: added JavaScript hint491042c
Emoji: added JavaScript hint23e84ac
Emoticons: added JavaScript hint7ec97e6
HTMLElements: added JavaScript hint5b5a6c4
JavaScript: added support for custom hints set by pluginsfe484da
Litedown: added JavaScript hint for skipping HTML entity decoding0971ef0
Litedown: added support for decoding HTML entities in attribute values993f5cc
Preg: added JavaScript hint
3484b60
BBCodes: removed duplicate condition
d0b6396
BBCodes: fixed improper pairing during parsing080d7aa
HTMLElements: fixed detection of empty elements
58dd013
HTMLEntities: ignore control characters encoded as HTML entitiesffcdd48
MediaEmbed: replaced protocol-relative iframe URLs from GitHub to use HTTPS95b72d7
MediaEmbed: updated CNNec41c55
MediaEmbed: updated GameTrailers2209d3c
Updated emoji script4ce201a
utils.js: cache the element used in html_entity_decode()
b6d4c3e
BBCodes: added support for lists that start at an arbitrary number72d8236
Litedown: added support for empty linksc466adf
Litedown: added support for ordered lists that start at an arbitrary number54b40b8
Litedown: added support for reference links and imagesd26f829
Litedown: added support for single quoted and unquoted titles in links and images22426da
Litedown: added support for unescaped brackets in link text and image alt text76c7f6a
MediaEmbed: added support for country-specific Facebook links58d8541
XPathConvertor: added support for conditions with more than 3 boolean operations
d1ce37e
MediaEmbed: fixed CSS overflow on iOS Safari10cfa29
XPathConvertor: fixed comparison to 0
845279a
Escaper: reverted to using a custom taga94a625
MediaEmbed: updated Facebook13c9015
MediaEmbed: updated Facebookc742fa7
MediaEmbed: updated Imgurd7edfed
MediaEmbed: updated Imgurff60c99
MediaEmbed: updated Instagram4e138d7
MediaEmbed: updated Xbox DVR048e433
MediaEmbed: updated vidmebb56400
Parser: automatically correct the length of ignore tags0676a8d
Updated Fatdown
3abcb7d
Bundles: added getCachedParser() and getCachedRenderer()
5925a64
MediaEmbed: removed redundant code
b0ab098
Emoji: simplified template generationf624086
Litedown: allow lists to start immediately after a header or horizontal rulea871f19
Litedown: replaced the way block boundaries are set3c8c61d
MediaEmbed: updated Comedy Centralce982d7
MediaEmbed: updated Imgurdf9e944
MediaEmbed: updated Imgur to not transform links to static imagese5c72df
MediaEmbed: updated NPRcd24826
NormalizedCollection: save items in the lexical order of their keys
73e14ab
BBCodes: ensure that end tags added by lookahead are not duplicatedfd6bd30
Emoji: added draggable="false" to Emoji One imagesd32e93d
MediaEmbed: added support for private tracks in SoundCloud0dd8a61
PHP renderer generator: added support for raw output
ce681ae
BBCodes: updated the default CODE definition627d41c
JavaScript\ConfigOptimizer: do not attempt to deduplicate simple variables7afa5f9
MediaEmbed: updated wget() to send a User-agent header31e3b26
TemplateParser: set the escape value of literal text in script elements to "raw"
b6dd56b
MediaEmbed: fixed malformed XSL when an attribute value contains an angle bracket but is not XSL0d4675c
MediaEmbed: fixed responsive embeds alignment
30ca6ac
MediaEmbed: updated Medium7887f79
MediaEmbed: updated SoundCloud
7abbe26
Added AVTHelper::toXSL()5863c4c
Added JavaScript\StylesheetCompressor257a413
MediaEmbed: added support for Google Drivea6f99bb
MediaEmbed: added support for multiple-choice templates82f06e3
TemplateNormalizations: added OptimizeChoosebc8e764
TemplateNormalizations: added additive identity optimization to FoldArithmeticConstants9548cee
TemplateNormalizations: added support for decimal values in InlineXPathLiterals0a6ff7a
TemplateNormalizations: added support for multiplications, divisions and sub expressions in FoldConstants7a439ff
XPathConvertor: added support for parenthesized math expressions
dc8a261
Emoji: removed unnecessary parentheses in JavaScript regexpedacfa8
MediaEmbed: removed ESPN Deportese20df9f
MediaEmbed: removed enableResponsiveEmbeds() and disabledResponsiveEmbeds()4e7f087
MediaEmbed: removed the embed element from Flash templatesb1500b6
PHP renderer generator: removed constant math evaluation which was made redundant by the FoldArithmeticConstants template normalization pass
9c8eaa0
MediaEmbed: fixed the MEDIA tag filter to not create a tag if it does not match a known sitea5feb09
Quick renderer: fixed a potential issue with string comparison against single quotes80f2c9a
Quick renderer: fixed incorrect comparison against literals that contain a single quote
e1809c3
BBCodes: updated Highlight.js in CODE BBCodec3f79fb
Censor: do not escape single quotes in Helper::reparse()050b051
MediaEmbed: overhauled responsive embeds2ac29f1
MediaEmbed: reorganized filterTag()5ff9c1e
MediaEmbed: reorganized template generation7ede2a7
MediaEmbed: updated Audiomack and SoundCloud1b8956f
MediaEmbed: updated Google Drive493ac00
MediaEmbed: updated IMDb455723e
MediaEmbed: updated Imgur4680bb5
MediaEmbed: updated Ustream5552810
Moved JavaScript callbacks deduplication to ConfigOptimizer2bc612c
TemplateNormalizations: improved parentheses removal in FoldArithmeticConstants361212f
TemplateNormalizations: preserve strings content in FoldArithmeticConstants679f0d3
TemplateNormalizations: renamed FoldConstants to FoldArithmeticConstants470c1da
Updated docblock0765165
Utils: updated serializeAttributes() to escape quotes in a manner consistent with the parsercaf1dc2
XPathHelper: updated minify() to remove more space around the div operator38a9c89
XPathHelper: updated minify() to remove spaces after a div operator
dd3fe8c
Added CharacterClassBuilder helper
c3f08fb
JavaScript: use returnFalse and returnTrue callbacks as-is0f5051d
MediaEmbed: simplified the regexp that matches text links
51bce03
ClosureCompilerService: added read timeout with a default value of 10s348e1de
JavaScript: added returnTrue() in utils.js
957ada3
ClosureCompilerApplication: updated command line options for v20150901 and turned off warningsd105dbc
JavaScript: created different externs for ClosureCompilerApplication and ClosureCompilerService3cab461
MediaEmbed: moved template generation out of add()c497eb3
MediaEmbed: normalized the order of characters in regexps' character classesed7aaaf
MediaEmbed: replaced the 'unresponsive' attribute in site definitions with a 'responsive' attribute95007fb
MediaEmbed: simplified the generation of Flash templatesa75dd32
Refreshed bundlesd4e81cb
Regexp: avoid adding non-capturing subpatterns to regexps generated by getNamedCaptures() where they are not neededcd1f119
Regexp: simplified getNamedCaptures()
d363f8b
MediaEmbed: fixed responsive Flash objectsf1ef4fc
Parser: fixed incorrect tag removal
ce1d116
MediaEmbed: moved template generation to its own classbe478e7
MediaEmbed: moved the 'unresponsive' attribute into the iframe/flash definition3f5e499
MediaEmbed: removed support for custom templates15e8ece
MediaEmbed: updated Vine
c089b4a
XPathHelper: fixed false negative in isExpressionNumeric()
6c181a7
MediaEmbed: added Oddshot.tv48d03be
TemplateNormalizations: added FoldConstants pass
de996ae
Litedown: gave inline links a slightly better priority to give them precedence over BBCodes
6a44f9f
Litedown: fixed incorrect indentation inside fenced code blocks
Initial release