Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 14 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 1 |
Hooks | |
0.00% |
0 / 14 |
|
0.00% |
0 / 3 |
12 | |
0.00% |
0 / 1 |
onParserFirstCallInit | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
getConfig | |
0.00% |
0 / 9 |
|
0.00% |
0 / 1 |
2 | |||
sourceToDom | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | |
3 | namespace WikiHiero; |
4 | |
5 | use MediaWiki\Hook\ParserFirstCallInitHook; |
6 | use MediaWiki\Parser\Parser; |
7 | use Wikimedia\Parsoid\Ext\ExtensionModule; |
8 | use Wikimedia\Parsoid\Ext\ExtensionTagHandler; |
9 | use Wikimedia\Parsoid\Ext\ParsoidExtensionAPI; |
10 | |
11 | class Hooks extends ExtensionTagHandler implements ExtensionModule, ParserFirstCallInitHook { |
12 | /** |
13 | * Because <hiero> tag is used rarely, we don't need to load its body on every hook call, |
14 | * so we keep our simple hook handlers here. |
15 | * |
16 | * @param Parser $parser |
17 | */ |
18 | public function onParserFirstCallInit( $parser ) { |
19 | $parser->setHook( 'hiero', [ WikiHiero::class, 'parserHook' ] ); |
20 | } |
21 | |
22 | /** @inheritDoc */ |
23 | public function getConfig(): array { |
24 | return [ |
25 | 'name' => 'WikiHiero', |
26 | 'tags' => [ |
27 | [ |
28 | 'name' => 'hiero', |
29 | 'handler' => self::class |
30 | ] |
31 | ] |
32 | ]; |
33 | } |
34 | |
35 | /** @inheritDoc */ |
36 | public function sourceToDom( ParsoidExtensionAPI $extApi, string $src, array $extArgs ) { |
37 | $hiero = new WikiHiero(); |
38 | $extApi->addModuleStyles( [ 'ext.wikihiero' ] ); |
39 | $html = str_replace( "\n", " ", $hiero->render( $src ) ); |
40 | return $extApi->htmlToDom( $html ); |
41 | } |
42 | } |