Hey, I am maintainer of the Maps extension for MediaWiki. https://github.com/JeroenDeDauw/Maps#maps
Recently I worked on improving integration with Visual Editor. Maps used to not show up as a grey box [0] since their initialization JavaScript was not being run. I got things working but am not happy with the solution and hope there is a better approach. After some searching I found that if I ran the initialization code in a handler to the ve.activationComplete hook, the maps would get initialized as desired [1]. That is not a complete solution though, since you can edit the maps with Visual Editor [2]. This causes an API request that parses the new wikitext to HTML, which then replaces the old HTML of the initialized map. So initialization needs to happen again. An hour or two searching through the docs and Visual Editor code did not yield any usable hook/event. (This was quite surprising to me. Has no one ever done something similar to what I am doing here?) So I settled on just running initialization once every second with setInterval(). I found the ve.deactivationComplete hook which I then used to stop the code running every second on saving and existing the visual editor. Turns out that when opening the visual editor after that does not result in a new ve.activationComplete event, hence I had to remove termination of the repeating initialization. Surely there is a better way to run my code once per second (ad infinitum) starting with Visual Editor activation? The perfect event for my usecase would be "visual editor rendered a parser function". A broader event (ie "something got rendered") would still be better than nothing. You can see my current code here [3], including a few commented out bits which I left in so you can see some of what did not work. [0] https://user-images.githubusercontent.com/146040/78461765-18d15780-76cc-11ea-82cd-eb69d0179fd7.png [1] https://user-images.githubusercontent.com/146040/78461769-21299280-76cc-11ea-9461-a2c343062482.png [2] https://user-images.githubusercontent.com/146040/78461779-369ebc80-76cc-11ea-9495-33334a91a24a.png [3] https://github.com/JeroenDeDauw/Maps/blob/7.17.1/resources/leaflet/LeafletLoader.js#L24-L45 Cheers -- Jeroen De Dauw | www.EntropyWins.wtf <https://EntropyWins.wtf> Professional wiki hosting and services: www.Professional.Wiki <https://Professional.Wiki> Entrepreneur | Software Crafter | Open Source | Wikimedia | Speaker ~=[,,_,,]:3 _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
