diff --git a/shubara/Shubara.i18n.php b/shubara/Shubara.i18n.php index 2a18ea8..63330f7 100644 --- a/shubara/Shubara.i18n.php +++ b/shubara/Shubara.i18n.php @@ -5,5 +5,6 @@ $magicWords['en'] = [ 'infobox' => [0, 'infobox'], 'infobox-list' => [0, 'infobox-list'], + 'messagebox' => [0, 'messagebox'], ]; diff --git a/shubara/resources/ext.shubara/ext.shubara.css b/shubara/resources/ext.shubara/ext.shubara.css index 88bf922..542269d 100644 --- a/shubara/resources/ext.shubara/ext.shubara.css +++ b/shubara/resources/ext.shubara/ext.shubara.css @@ -382,3 +382,18 @@ 20%); } } + +.ext-shubara-messagebox { + border-radius: 12px; + background: var(--color-surface-1); + border: 4px solid var(--color-surface-2); + padding-left: 10px; + margin-top: 4px; +} + +.ext-shubara-messagebox p { + display: flex; + flex-direction: row; + gap: 12px; + justify-content: flex-start; +} \ No newline at end of file diff --git a/shubara/src/Hooks.php b/shubara/src/Hooks.php index 91d730a..3279b1f 100644 --- a/shubara/src/Hooks.php +++ b/shubara/src/Hooks.php @@ -10,6 +10,7 @@ use MediaWiki\Extension\Shubara\Tags\Imagechip; use MediaWiki\Extension\Shubara\Tags\Projectstats; use MediaWiki\Extension\Shubara\Tags\NewsList; +use MediaWiki\Extension\Shubara\Tags\Messagebox; use MediaWiki\Extension\Shubara\ParserFunctions\Infobox; class Hooks implements ParserFirstCallInitHook, BeforePageDisplayHook { @@ -20,6 +21,7 @@ public function onParserFirstCallInit($parser) { $parser->setHook('imagechip', Imagechip::run(...)); $parser->setHook('projectstats', Projectstats::run(...)); $parser->setHook('newslist', NewsList::run(...)); + $parser->setHook('messagebox', Messagebox::run(...)); $parser->setFunctionHook('infobox', Infobox::main(...), SFH_NO_HASH); $parser->setFunctionHook('infobox-list', Infobox::list(...), SFH_NO_HASH); return true; diff --git a/shubara/src/ParserFunctions/Messagebox.php b/shubara/src/ParserFunctions/Messagebox.php index 922182e..9719204 100644 --- a/shubara/src/ParserFunctions/Messagebox.php +++ b/shubara/src/ParserFunctions/Messagebox.php @@ -9,8 +9,18 @@ /** * Render the messagebox parser function */ +// TODO: Rewrite this as a tag extension class Messagebox { - public static function run(Parser $parser) { - + public static function main(Parser $parser) { + $content = ''; + $input = array_slice(func_get_args(), 1); + + return [ + Html::rawElement('div', [ + // noexcerpt is there so Popups doesn't extract it + 'class' => 'ext-shubara-messagebox noexcerpt', + ], $parser->recursiveTagParseFully(implode('', $input))), + 'isHTML' => true + ]; } }