mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-29 00:30:44 +00:00
8368e17d6a
* All parser pipelines including tokenizer and DOM stuff are now constructed from a 'recipe' data structure in a ParserPipelineFactory. * All sub-pipelines of these can now be cached * Event registrations to a pipeline are directly forwarded to the last pipeline member to save relatively expensive event forwarding. * Some APIs for on-demand expansion / format conversion of parameters from parser functions are added: param.to('tokens/expanded', cb) param.to('text/wiki', cb) (this does not work yet) All parameters are additionally wrapped into a Param object that provides method for positional parameter naming (.named() or conversion to a dict (.dict()). * The async token transform manager is now separated from a frame object, with the frame holding arguments, an on-demand expansion method and loop checks. * Only keys of template parameters are now expanded. Parser functions or template arguments trigger an expansion on-demand. This (unsurprisingly) makes a big performance difference with typical switch-heavy template systems. * Return values from async transforms are no longer used in favor of plain callbacks. This saves the complication of having to maintain two code paths. A trick in transformTokens still avoids the construction of unneeded TokenAccumulators. * The results of template expansions are no longer buffered. * 301 parser tests are passing Known issues: * Cosmetic cleanup remains to do * Some parser functions do not support async expansions yet, and need to be modified. Change-Id: I1a7690baffbe8141cadf67270904a1b2e1df879a
30 lines
653 B
JSON
30 lines
653 B
JSON
{
|
|
"name": "mediawiki-parsoid",
|
|
"description": "Mediawiki parser for the VisualEditor.",
|
|
"version": "0.0.1",
|
|
"dependencies": {
|
|
"events": "0.x.x",
|
|
"jquery": "1.x.x",
|
|
"request": "2.x.x",
|
|
"querystring": "0.x.x",
|
|
"path": "0.x.x",
|
|
"jshashes": "0.x.x",
|
|
"optimist": "0.x.x",
|
|
"assert": "0.x.x",
|
|
"jsdom": "0.x.x",
|
|
"pegjs": "0.x.x",
|
|
"lru-cache": "1.x.x"
|
|
},
|
|
"devDependencies": {
|
|
"coffee-script": "1.x.x",
|
|
"colors": "0.x.x",
|
|
"diff": "1.x.x",
|
|
"html5": "0.x.x"
|
|
},
|
|
"main": "mediawiki.parser.js",
|
|
"scripts": {
|
|
"pretest": "node ../../tests/parser/fetch-parserTests.txt.js",
|
|
"test": "node ../../tests/parser/parserTests.js"
|
|
}
|
|
}
|