Hi Everyone,
Mark your calendars! Wikimedia Tech Talks 2020 Episode 6 will take place on Wednesday on 12 August 2020 at 17:00 UTC.
Title: Retargeting extensions to work with Parsoid
Speaker: Subramanya Sastry
Summary:
The Parsing team is aiming to replace the core wikitext parser with Parsoid for Wikimedia wikis sometime late next year. Parsoid models and processes wikitext quite differently from the core parser (all that Parsoid guarantees is that the rendering is largely identical, not the specific process of generating the rendering). So, that does mean that extensions that extend the behavior of the parser will need to adapt to work with Parsoid instead to provide similar functionality [1]. With that in mind, we have been working to more clearly specify how extensions need to adapt to the Parsoid regime.
At a high level, here are the questions we needed to answer: 1) How do extensions "hook" into Parsoid? 2) When the registered hook listeners are invoked by Parsoid, how do they process any wikitext they need to process? 3) How is the extension's output assimilated into the page output?
Broadly, the (highly simplified) answers are as follows: 1) Extensions now need to think in terms of transformations (convert this to that) instead of events (at this point in the pipeline, call this listener). So, more transformation hooks, and less parsing-event hooks. 2) Parsoid provides all registered listeners with a ParsoidExtensionAPI object to interact with it which extensions can use to process wikitext. 3) The output is treated as a "fully-processed" page/DOM fragment. It is appropriately decorated with additional markup and slotted into place into the page. Extensions need not make any special efforts (aka strip state) to protect it from the parsing pipeline.
In this talk, we will go over the draft Parsoid API for extensions [2] and the kind of changes that would need to be made. While in this initial stage, we are primarily targeting extensions that are deployed on the Wikimedia wikis, eventually, all MediaWiki extensions that use parser hooks or use the "parser API" to process wikitext will need to change. We hope to use this talk to reach out to MediaWiki extension developers and get feedback about the draft API so we can refine it appropriately.
[1] https://phabricator.wikimedia.org/T258838
[2] https://www.mediawiki.org/wiki/Parsoid/Extension_API
The link to the Youtube Livestream can be found here: https://www.youtube.com/watch?v=jNNy8ALGjaE
https://www.youtube.com/watch?v=lS1xPkERWCM
During the live talk, you are invited to join the discussion on IRC at #wikimedia-office
You can browse past Tech Talks here: https://www.mediawiki.org/wiki/Tech_talks
If you are interested in giving your own tech talk, you can learn more here: https://www.mediawiki.org/wiki/Project:Calendar/How_to_schedule_an_event#Tec...
Kindly,
Sarah R. Rodlund Senior Technical Writer, Developer Advocacy https://meta.wikimedia.org/wiki/Developer_Advocacy srodlund@wikimedia.org
Hi everyone,
Just a reminder that this talk will take place today at 17:00 UTC.
Hope to see you there!
Best, - Alex
On Thu, Jul 30, 2020 at 11:19 AM Sarah R srodlund@wikimedia.org wrote:
Hi Everyone,
Mark your calendars! Wikimedia Tech Talks 2020 Episode 6 will take place on Wednesday on 12 August 2020 at 17:00 UTC.
Title: Retargeting extensions to work with Parsoid
Speaker: Subramanya Sastry
Summary:
The Parsing team is aiming to replace the core wikitext parser with Parsoid for Wikimedia wikis sometime late next year. Parsoid models and processes wikitext quite differently from the core parser (all that Parsoid guarantees is that the rendering is largely identical, not the specific process of generating the rendering). So, that does mean that extensions that extend the behavior of the parser will need to adapt to work with Parsoid instead to provide similar functionality [1]. With that in mind, we have been working to more clearly specify how extensions need to adapt to the Parsoid regime.
At a high level, here are the questions we needed to answer:
- How do extensions "hook" into Parsoid?
- When the registered hook listeners are invoked by Parsoid, how do they
process any wikitext they need to process? 3) How is the extension's output assimilated into the page output?
Broadly, the (highly simplified) answers are as follows:
- Extensions now need to think in terms of transformations (convert this
to that) instead of events (at this point in the pipeline, call this listener). So, more transformation hooks, and less parsing-event hooks. 2) Parsoid provides all registered listeners with a ParsoidExtensionAPI object to interact with it which extensions can use to process wikitext. 3) The output is treated as a "fully-processed" page/DOM fragment. It is appropriately decorated with additional markup and slotted into place into the page. Extensions need not make any special efforts (aka strip state) to protect it from the parsing pipeline.
In this talk, we will go over the draft Parsoid API for extensions [2] and the kind of changes that would need to be made. While in this initial stage, we are primarily targeting extensions that are deployed on the Wikimedia wikis, eventually, all MediaWiki extensions that use parser hooks or use the "parser API" to process wikitext will need to change. We hope to use this talk to reach out to MediaWiki extension developers and get feedback about the draft API so we can refine it appropriately.
[1] https://phabricator.wikimedia.org/T258838
[2] https://www.mediawiki.org/wiki/Parsoid/Extension_API
The link to the Youtube Livestream can be found here: https://www.youtube.com/watch?v=jNNy8ALGjaE
https://www.youtube.com/watch?v=lS1xPkERWCM
During the live talk, you are invited to join the discussion on IRC at #wikimedia-office
You can browse past Tech Talks here: https://www.mediawiki.org/wiki/Tech_talks
If you are interested in giving your own tech talk, you can learn more here:
https://www.mediawiki.org/wiki/Project:Calendar/How_to_schedule_an_event#Tec...
Kindly,
Sarah R. Rodlund Senior Technical Writer, Developer Advocacy https://meta.wikimedia.org/wiki/Developer_Advocacy srodlund@wikimedia.org _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
This talk will be starting in 15 minutes on YouTube: https://www.youtube.com/watch?v=lS1xPkERWCM
See you soon!
On Wed, Aug 12, 2020 at 8:00 AM Alexandra Paskulin apaskulin@wikimedia.org wrote:
Hi everyone,
Just a reminder that this talk will take place today at 17:00 UTC.
Hope to see you there!
Best,
- Alex
On Thu, Jul 30, 2020 at 11:19 AM Sarah R srodlund@wikimedia.org wrote:
Hi Everyone,
Mark your calendars! Wikimedia Tech Talks 2020 Episode 6 will take place on Wednesday on 12 August 2020 at 17:00 UTC.
Title: Retargeting extensions to work with Parsoid
Speaker: Subramanya Sastry
Summary:
The Parsing team is aiming to replace the core wikitext parser with Parsoid for Wikimedia wikis sometime late next year. Parsoid models and processes wikitext quite differently from the core parser (all that Parsoid guarantees is that the rendering is largely identical, not the specific process of generating the rendering). So, that does mean that extensions that extend the behavior of the parser will need to adapt to work with Parsoid instead to provide similar functionality [1]. With that in mind, we have been working to more clearly specify how extensions need to adapt to the Parsoid regime.
At a high level, here are the questions we needed to answer:
- How do extensions "hook" into Parsoid?
- When the registered hook listeners are invoked by Parsoid, how do they
process any wikitext they need to process? 3) How is the extension's output assimilated into the page output?
Broadly, the (highly simplified) answers are as follows:
- Extensions now need to think in terms of transformations (convert this
to that) instead of events (at this point in the pipeline, call this listener). So, more transformation hooks, and less parsing-event hooks. 2) Parsoid provides all registered listeners with a ParsoidExtensionAPI object to interact with it which extensions can use to process wikitext. 3) The output is treated as a "fully-processed" page/DOM fragment. It is appropriately decorated with additional markup and slotted into place into the page. Extensions need not make any special efforts (aka strip state) to protect it from the parsing pipeline.
In this talk, we will go over the draft Parsoid API for extensions [2] and the kind of changes that would need to be made. While in this initial stage, we are primarily targeting extensions that are deployed on the Wikimedia wikis, eventually, all MediaWiki extensions that use parser hooks or use the "parser API" to process wikitext will need to change. We hope to use this talk to reach out to MediaWiki extension developers and get feedback about the draft API so we can refine it appropriately.
[1] https://phabricator.wikimedia.org/T258838
[2] https://www.mediawiki.org/wiki/Parsoid/Extension_API
The link to the Youtube Livestream can be found here: https://www.youtube.com/watch?v=jNNy8ALGjaE
https://www.youtube.com/watch?v=lS1xPkERWCM
During the live talk, you are invited to join the discussion on IRC at #wikimedia-office
You can browse past Tech Talks here: https://www.mediawiki.org/wiki/Tech_talks
If you are interested in giving your own tech talk, you can learn more here:
https://www.mediawiki.org/wiki/Project:Calendar/How_to_schedule_an_event#Tec...
Kindly,
Sarah R. Rodlund Senior Technical Writer, Developer Advocacy https://meta.wikimedia.org/wiki/Developer_Advocacy srodlund@wikimedia.org _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l
-- Alex Paskulin Technical Writer Wikimedia Foundation
wikitech-l@lists.wikimedia.org