diff options
Diffstat (limited to 'includes/specials/SpecialVersion.php')
-rw-r--r-- | includes/specials/SpecialVersion.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/includes/specials/SpecialVersion.php b/includes/specials/SpecialVersion.php index 8584e96567dc..e1c9388f1884 100644 --- a/includes/specials/SpecialVersion.php +++ b/includes/specials/SpecialVersion.php @@ -225,6 +225,7 @@ class SpecialVersion extends SpecialPage { $this->getLibraries( $credits ), $this->getParserTags(), $this->getParserFunctionHooks(), + $this->getParsoidModules(), $this->getHooks(), $this->IPInfo(), ]; @@ -954,6 +955,45 @@ class SpecialVersion extends SpecialPage { } /** + * Obtains a list of installed Parsoid Modules and the associated H2 header + * + * @return string HTML output + */ + protected function getParsoidModules() { + $siteConfig = MediaWikiServices::getInstance()->getParsoidSiteConfig(); + $modules = $siteConfig->getExtensionModules(); + + if ( !$modules ) { + return ''; + } + + $this->addTocSection( 'version-parsoid-modules', 'mw-version-parsoid-modules' ); + + $out = Html::rawElement( + 'h2', + [ 'id' => 'mw-version-parsoid-modules' ], + Html::rawElement( + 'span', + [ 'class' => 'plainlinks' ], + $this->getLinkRenderer()->makeExternalLink( + 'https://www.mediawiki.org/wiki/Special:MyLanguage/Parsoid', + $this->msg( 'version-parsoid-modules' ), + $this->getFullTitle() + ) + ) + ); + + $moduleNames = array_map( + static fn ( $m )=>Html::element( 'code', [], $m->getConfig()['name'] ), + $modules + ); + + $out .= $this->getLanguage()->listToText( $moduleNames ); + + return $out; + } + + /** * Creates and returns the HTML for a single extension category. * * @since 1.17 |