aboutsummaryrefslogtreecommitdiffstats
path: root/includes/specials/SpecialVersion.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/specials/SpecialVersion.php')
-rw-r--r--includes/specials/SpecialVersion.php40
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