To load the necessary CSS modules into a page, the current code in Parsoid follows these steps:
- When asking for an extension output using the MW API action=parse, it also requests which modules are used.
- Using a set of hard-coded modules and the style modules discovered in the previous step, an URL to load.php is generated (in mediawiki.DOMPostProcessor.js:336–).
- This link is included as a stylesheet link in the generated HTML's <head>.
- It doesn't work for parser functions, only for modules added by extensions (because the API doesn't provide the modules used in action=expandtemplates, see task T69540).
- It uses a hard-coded skin (vector).
- Cache / performance issues? (Also, the current code uses debug mode, which should be changed).
Let's use this task to discuss how we can improve the current situation.