Added 1.0 files
This commit is contained in:
commit
6a5237bd8c
35
extension.json
Normal file
35
extension.json
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "Spoiler▓Alert",
|
||||||
|
"author": "Samuel Maenle",
|
||||||
|
"url": "https://git.maenle.net/diocloid/SpoilerAlert",
|
||||||
|
"description": "This MediaWiki extension allows users to create spoiler tags that reveal content on click. <code><spoiler> I am a spoiler </spoiler></code>",
|
||||||
|
"type": "parserhook",
|
||||||
|
"version": "1.0",
|
||||||
|
"license-name": "AGPL-3.0-only",
|
||||||
|
"manifest_version": 2,
|
||||||
|
"AutoloadClasses": {
|
||||||
|
"SpoilerAlertHooks": "includes/SpoilerAlertHooks.php"
|
||||||
|
},
|
||||||
|
"Hooks": {
|
||||||
|
"BeforePageDisplay": [
|
||||||
|
"SpoilerAlertHooks::onBeforePageDisplay"
|
||||||
|
],
|
||||||
|
"ParserFirstCallInit": [
|
||||||
|
"SpoilerAlertHooks::onParserFirstCallInit"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ResourceModules": {
|
||||||
|
"ext.spoileralert": {
|
||||||
|
"scripts": [
|
||||||
|
],
|
||||||
|
"styles": [
|
||||||
|
"/modules/ext.spoileralert.css"
|
||||||
|
],
|
||||||
|
"position": "top"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ResourceFileModulePaths": {
|
||||||
|
"localBasePath": "",
|
||||||
|
"remoteExtPath": "SpoilerAlert"
|
||||||
|
}
|
||||||
|
}
|
17
includes/SpoilerAlertHooks.php
Normal file
17
includes/SpoilerAlertHooks.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?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->addModules( ['ext.spoileralert'] );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
10
modules/ext.spoileralert.css
Normal file
10
modules/ext.spoileralert.css
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
.spoiler {
|
||||||
|
background-color: black;
|
||||||
|
color: black;
|
||||||
|
transition: color 0.5s ease;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spoiler.revealed {
|
||||||
|
color: white;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user