18 lines
666 B
PHP
18 lines
666 B
PHP
<?php
|
|
class SpoilerAlertHooks {
|
|
public static function onParserFirstCallInit( Parser $parser ) {
|
|
$parser->setHook( 'spoiler', [ self::class, 'renderSpoiler' ] );
|
|
return true;
|
|
}
|
|
|
|
public static function renderSpoiler( $input, array $args, Parser $parser, PPFrame $frame ) {
|
|
$output = $parser->recursiveTagParse( $input, $frame );
|
|
return "<span class='spoiler' onclick='this.classList.toggle(\"revealed\")'>" . htmlspecialchars( $output ) . "</span>";
|
|
}
|
|
|
|
public static function onBeforePageDisplay( OutputPage &$out, Skin &$skin ) {
|
|
$out->addModuleStyles( ['ext.spoileralert'] );
|
|
return true;
|
|
}
|
|
}
|