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