$fileScript = parent::getScript( $context );
$tagData = Sanitizer::getRecognizedTagData();
- $parserDefaults = [];
- $parserDefaults['allowedHtmlElements'] = array_merge(
+ $allowedHtmlElements = array_merge(
array_keys( $tagData['htmlpairs'] ),
array_diff(
array_keys( $tagData['htmlsingle'] ),
)
);
- $mainDataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [ $parserDefaults ] );
-
- // Associative array mapping magic words (e.g. SITENAME)
- // to their values.
$magicWords = [
'SITENAME' => $this->getConfig()->get( 'Sitename' ),
];
-
Hooks::run( 'ResourceLoaderJqueryMsgModuleMagicWords', [ $context, &$magicWords ] );
- $magicWordExtendData = [
+ $parserDefaults = [
+ 'allowedHtmlElements' => $allowedHtmlElements,
'magic' => $magicWords,
];
- $magicWordDataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [
- $magicWordExtendData,
- /* deep= */ true
+ $setDataScript = Xml::encodeJsCall( 'mw.jqueryMsg.setParserDefaults', [
+ $parserDefaults,
+ // Pass deep=true because mediawiki.jqueryMsg.js contains
+ // page-specific magic words that must not be overwritten.
+ true,
] );
- return $fileScript . $mainDataScript . $magicWordDataScript;
+ return $fileScript . $setDataScript;
}
/**
},
// Whitelist for allowed HTML elements in wikitext.
// Self-closing tags are not currently supported.
- // Can be populated via setPrivateData().
+ // Can be populated via setParserDefaults().
allowedHtmlElements: [],
// Key tag name, value allowed attributes for that tag.
// See Sanitizer::setupAttributeWhitelist