10.11.0 / 2019-12-20 2=================== 3This is the LAST release of (the JS implementation of) Parsoid. Parsoid has been 4ported from JS to PHP and will be more closely integrated into MediaWiki and will 5not need its own debian package henceforth. 6 7This release contains the entire working port of Parsoid to PHP, but we are not 8providing any support for this setup. By the next release of MediaWiki, Parsoid 9will be better integrated there and will be available as part of MediaWiki. 10 11 Notable changes 12 * Parsoid HTML version bumped to 2.1.0 13 * Code cleanup 14 - Use ES6 class syntax with one class export per file 15 - Removed dead code 16 - Removed most uses of .bind() 17 - Removed circular dependencies 18 - Replaced promises with async/yield in most places in the codebase 19 * Language converter 20 - Bulk of the code moved out of Parsoid into its own repo 21 - Crimean Tatar, zh language converters added 22 * Code improvements 23 - Extract a token transform interface that individual handlers implement 24 - Extract a DOMHandler interface for html2wt DOM handlers 25 * Move media info code to a post-processing batch pass to eliminate 26 imageinfo API requests during token processing 27 * Move data out of DOM nodes into a bag-on-the-side 28 * Eliminate serialize/parse of JSON data attributes when tree building 29 * Move redlink and language converter code into lib/parse.js - Parsoid's 30 entry point class 31 * Use wikipeg (our erstwhile pegjs fork) native rule parameters and get rid of 32 our homegrown stop/flag stacks and update PEG grammar 33 * Ensure protocol-relative URLs are used for media 34 * A number of bug fixes during the port of Parsoid from JS to PHP 35 360.10.0 / 2018-12-05 37=================== 38 Notable wt -> html changes 39 * Parsoid HTML version bumped to 2.0.0 40 * Support for the Content Negotiation Protocol for negotiating HTML content versions 41 * Implement RFC T157418: Trim whitespace in wikitext headings, lists, tables 42 * Added support for template styles 43 * Expose content inside <includeonly> to editors via data-mw attribute 44 * Support directionality for references 45 * A bunch of cleanup and bug fixes in paragraph wrapping for improved compliance 46 with PHP parser output. Move to DOM based p-wrapping of unwrapped bare text 47 * Remove `html5-legacy` mode of ID generation 48 * Media-related: 49 - Use <audio> elements for rendering audio files 50 - Use `resource` attribute for [[Media:....]] links 51 - Image alt and link options can contain arbitrary wikitext which is stripped 52 - Support more link types in file alt/link options 53 - Increase the default height of mw:Audio to 32px 54 - Stop adding valign classes to block media 55 - Parse more block constructs in media captions 56 * A number of bug fixes and crasher fixes 57 58 Notable html -> wt changes: 59 * Scrub DOM to convert <p></p> sequences to NL-emitting normal forms 60 This now translates empty lines entered in VE to empty lines in wikitext 61 * Add new lines before and after lists in wikitext 62 * Improve templatedata spec compliance wrt leading and trailing newlines 63 * Avoid piped links in more cases by moving formatting outside the link 64 * Handle | chars in hrefs 65 * Handle } in table cells 66 * Serialize empty table cells with a single whitespace character 67 * Don't force paragraphs inside blockquotes to serialize on a new line 68 * Distinguish between inserted & deleted diff markers 69 70 Infrastructure: 71 * Make the Sanitizer "static" and decouple it from the parsing pipeline 72 * Removed < node v6 compatibility 73 * Migrate to jsdoc instead of jsduck for documentation 74 * Allow users to dynamically configure new wikis 75 * Addressed nsp-triggered security advisories 76 * Updated domino and other dependencies 77 78 Extensions 79 * Cleanup of the extension API to reduce exposure of Parsoid internals 80 * Migrated native Parsoid extensions to the updated extension API 81 * Native Parsoid implementation of <poem> 82 83 Performance fixes: 84 * Mostly minor tweaks: 85 - Performance improvements in the TokenTransformManager 86 - Add a fast path to avoid unnecessarily retokenizing the extlink href 87 - Test for a valid protocol before attempting to tokenize extlink content 88 - Ensure ref.cachedHtml isn't being regenerated needlessly 89 - Suppress autoInsertedEnd flags where not required 90 91 Cleanup: 92 * Split up large utility classes into smaller functional groups 93 * More native ES6 classes 94 * More native ES6 syntax (let, const, yield) 95 * A whole bunch of dead code removed 96 * Cleanup return types in Token Transformers 97 980.9.0 / 2018-03-23 99================== 100 Notable wt -> html changes 101 * Parsoid HTML version bumped to 1.6.1 102 * T114072: Add <section> wrappers to Parsoid output 103 * T118520: Use figure-inline instead of span for inline media 104 * Update Parsoid to generate modern HTML5 IDs w/ legacy fallback 105 * T58756: External links class= now setting free, text and autonumber 106 * T45094: Replace <span> with <sup> for references 107 * T97093: Use mw:WikiLink/Interwiki for interwiki links 108 * Permit extension tags in xmlish attribute values 109 * A number of bug fixes and crasher fixes 110 111 Notable html -> wt changes: 112 * Preserve original transclusion's parameter order 113 * T180930: Selser shouldn't reuse orig sep for autoinserted tags 114 115 Infrastructure: 116 * This release requires clients (VE, etc.) to return a 1.6.0 and 117 greater HTML version string in the header. If not, Parsoid will 118 return a HTTP 406. This can be fixed by updating VE (or relevant 119 clients) to a more recent version. 120 * T66003: Make strictSSL configurable per wiki as well 121 * Use pure compute workers for the request processing 122 * T123446: Bring back request timeouts 123 * Lots of changes to wikitext linting code including new 124 linter categories. 125 126 Extensions 127 * Match core's parsing of gallery dimensions 128 * Added <section> and <indicator> extension handling. 129 130 Performance fixes: 131 * Don't process token attributes unnecessarily 132 * T176728: Use replaceChild instead of insertBefore 133 * Performance fixes to domino, the html + dom library used in Parsoid 134 135 Dependencies: 136 * Upgrade eslint, domino, service-runner, request and many other 137 dev and non-dev dependencies 138 139 Cleanup: 140 * Get rid of the handleUnbalancedTables DOM pass 141 * The `normalize` post processor isn't needed any more 142 * More use of arrow functions, promises, async/yield, ES6 classes 143 in the codebase 144 * Switch from jsduck to jsdoc3 for documentation and use 145 new jsdoc-wmf-theme for documentation 146 1470.8.0 / 2017-10-24 148================== 149 Notable wt -> html changes: 150 * T43716: Parse and serialize language converter markup 151 * T64270: Support video and audio content 152 * T39902, T149794: Markup red links, disambiguation links in Parsoid HTML 153 * T122965: Support HTML5 elements in older browsers 154 * T173384: Improve handling of tokens in parser function targets 155 * T153885: Handle templated template names 156 * T151277: Handle [[Media:Foo.jpg]] syntax correctly 157 * Generalize removal of useless p-wrappers 158 * More permissive attribute name parsing 159 + match PHP parser's attribute sanitizer 160 * Remove dependence on native parser functions 161 * Stop using usePHPPreProcessor as a proxy for an existing mw api to parse extensions 162 * Several bug fixes 163 164 Notable html -> wt changes: 165 * T135667, T138492: Use improved format specifier for TemplateData enabling templates 166 to control formatting of transclusions after VE edits 167 * T153107: Fix unhandled detection of modified link content 168 * T136653: Handle interwiki shortcuts 169 * T177784: Update reverse interwiki map to prefer language prefixes over others 170 * Cleanup in separator handling in the wikitext serializer 171 * Several bug fixes 172 173 API: 174 * Remove support for pb2html in the http api 175 176 Extensions: 177 * Cite: 178 - T159894: Add support for Cite's `responsive` parameter 179 * Gallery: 180 - Remove inline styling for vertical alignment in traditional galleries 181 - All media should scale in gallery 182 183 Dependencies: 184 * Upgrade service-runner, mediawiki-title 185 * Use uuid instead of node-uuid 186 * Upgrade several dependencies to deal with security advisories 187 * Limit core-js shimming to what we need 188 189 Infrastructure: 190 * Migrate from jshint to eslint 191 192 Notable wikitext linting changes: 193 * Move linter config properties to the linter config object 194 * Only lint pages that have wikitext contentmodel 195 * Lint multiple colon escaped links (incorrect usage) 196 * Add an API endpoint to get lint errors for wikitext 197 * Turn off ignored-table-attr output 198 * Add detection for several wikitext patterns that render differently 199 in Tidy compared to a HTML5 based parser (Parsoid, RemexHTML). 200 This is only relevant if you want to fix pages before replacing 201 Tidy or if you want to use Parsoid HTML for non-edit purposes. 202 203 Other: 204 * Add code of conduct file to the repo 205 2060.7.1 / 2017-04-05 207================== 208 No changes. New release to update nodejs dependency in the deb package. 209 2100.7.0 / 2017-04-04 211================== 212 213 wt -> html changes: 214 * T102209: Assign ids to H[1-6] tags that match PHP parser's assignment 215 * T150112: Munge link fragments and element ids as in the php parser 216 * T59603: T133267: Escape extlink content when containing ] anywhere 217 * T156296: Update cached wiki configs for several wikimedia wikis 218 * T50900: Improved error output for extensions, missing images 219 * T109897: Remove implicit_table_data_tag rule 220 * T98960: Accept entities in extlink href and url links 221 * T113044: Complete templatearg representation in spec 222 * T104523: Prevent infinite recursion in template expansion 223 * T104662: Allow nested ref tags only in templates 224 * Support extension tags which shadows "block level" HTML elements 225 * A bunch of cleanup and edge case fixes in the PEG tokenizer 226 * Don't accept pipe unconditionally in extlink 227 * Percent-encode modules link in the HEAD section 228 * Update CSS modules in HEAD section 229 * Remove special-case non-void semantics for SOURCE 230 * Fixup redirect-detecting regular expressions in multiple places 231 * Edge case bug fixes to title handling code 232 * Edge case bug fixes in aynsc token transformation pipeline 233 * Several fixes to the linting code to support the PHP Linter extension 234 235 html -> wt changes: 236 * T149209: Handle newlines in TD and TH cells 237 * T160207: Fix serializing multi-line indent-pre w/ sol wt syntax 238 * T133267: Escape extlink content when containing ] anywhere 239 * T152633: Fix crasher from ConstrainedText 240 * T112043: Handle anchors without hrefs 241 * Fix and cleanup domdiff annotations which fixes some edge case bugs 242 243 Extensions: 244 * T110910: Implement gallery extension natively inside Parsoid 245 * T58381, T108216: Treat NOWIKI and html PRE as extension tags 246 * Cite: T102134: Fix hrefs to render properly 247 * Cite: Escape cite ids with Sanitizer.escapeId 248 * Move section handling to the LST extension 249 * Extension API improvements for the ProofreadPage extension 250 * Normalize all extension options 251 252 Infrastructure changes: 253 * Update parser tests syncing scripts to let us sync PHP extension tests 254 from to/from Parsoid. 255 * Several fixes to parserTests scripts to improve output and processing of 256 test options, among other things. 257 * Bump domino, service-runner, minor versions of some deps, 258 and some dev deps. 259 * Switch to npm@3 260 261 API changes: 262 * In dev-api mode, add ?follow_redirects=true support to wt2html 263 API end points to get Parsoid to return a HTTP 302 response for 264 redirect pages. This lets 302-following clients to render the 265 target page. 266 267 Other fixes: 268 * T153797: ApiRequest: Clone the request options before modifying them 269 * T150213: Suppress logs for known unknown contentmodels 270 * Code cleanup and refactoring for upcoming audio/video support. 271 * Code cleanup and refactoring in template handling for upcoming support 272 for templated template names. This also fixes some edge case bugs. 273 2740.6.1 / 2016-11-14 275================== 276 277 * Fix broken 0.6.0 debian package 278 2790.6.0 / 2016-11-07 280================== 281 282 wt -> html changes: 283 * T147742: Trim template target after stripping comments 284 * T142617: Handle invalid titles in transclusions 285 * Handle caption-like text outside tables 286 * migrateTrailingNLs DOM pass: Code simplifications and 287 some subtle edge case bug fixes 288 * Handle HTML tags in attribute text properly 289 * A bunch of cleanup and fixes in the PEG tokenizer 290 291 html -> wt changes: 292 * T134389: Serialize content in HTML tables using HTML tags 293 * T125419: Fix selser issues serializing first table row 294 * T137406: Emit |- between thead/tbody/tfoot 295 * T139388: Ensure that edits to content nested in elements 296 with templated attributes is not lost by the 297 selective serializer. 298 * T142998: Fix crasher in DOM normalization code 299 * Normalize all lists to not mix wikitext and HTML list syntax 300 * Always emit canonical wikitext for url links 301 * Emit url-links where appropriate no matter what rel attribute says 302 303 Infrastructure changes: 304 * T96195 : Remove node 0.8 support 305 * T113322: Use the mediawiki-title library instead of 306 Parsoid-homegrown title normalization code. 307 * Remove html5 treebuilder in favour of domino's 308 * service-runner: 309 * T90668 : Replace custom server.js with service-runner 310 * T141370: Use service-runner's logger as a backend to 311 Parsoid's logger 312 * Use service-runner's metrics reporter in the http api 313 * Extensions: 314 * T48580, T133320: Allow extensions to handle specific contentmodels 315 * Let native extensions add stylesheets 316 * Lots of wikitext linter fixes / features. 317 318 API changes: 319 * T130638: Add data-mw as a separate JSON blob in the pagebundle 320 * T135596: Return client error for missing data attributes 321 * T114413: Provide HTML2HTML endpoint in Parsoid 322 * T100681: Remove deprecated v1/v2 HTTP APIs 323 * T143356: Separate data-mw API semantics 324 * Add a page/wikitext/:title route to GET wikitext for a page 325 * Updates in preparation for supporting version 2.x content 326 in the future -- should be no-op for version 1.x content 327 * Don't expose dev routes in production 328 * Cleanup http redirects 329 * Send error responses in the requested format 330 331 Performance fixes: 332 * Template wrapping: Eliminate pathological tpl-range nesting scenario 333 * computeDSR: Fix source of pathological O(n^2) behavior 334 335 Other fixes: 336 * Make the http connect timeout configurable 337 * Prevent JSON.stringify circular refs in template wrapping 338 trace/error logs 339 * Fix processing listeners in node v7.x 340 3410.5.3 / 2016-11-01 342================== 343 344 * T149504: SECURITY: Fix reflected XSS 345 3460.5.2 / 2016-07-05 347================== 348 349 * Fix npm package 350 3510.5.1 / 2015-05-02 352================== 353 354 * Fix debian package 355 3560.5.0 / 2015-05-02 357================== 358 359 * Thar be dragons 360