setFunctionHook('emoji', [__CLASS__, 'onRenderTag']); } /** * Render tag function. * * @param Parser $parser * @param string $id * @param string $size * * @return string * @throws ConfigException */ public static function onRenderTag(Parser $parser, string $id = '', string $size = ''): string { // Argument: id. $getID = MW_EXT_Kernel::outClear($id ?? '' ?: ''); $outID = self::getEmoji($getID); // Argument: size. $getSize = MW_EXT_Kernel::outClear($size ?? '' ?: ''); $outSize = empty($getSize) ? '' : ' width: ' . $getSize . 'em; height: ' . $getSize . 'em;'; // Out HTML. $outHTML = ''; // Out parser. return $parser->insertStripItem($outHTML, $parser->getStripState()); } /** * Load resource function. * * @param OutputPage $out * @param Skin $skin * * @return void */ public static function onBeforePageDisplay(OutputPage $out, Skin $skin): void { $out->addModuleStyles(['ext.mw.emoji.styles']); } }