Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
Hooks
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 onParserFirstCallInit
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getConfig
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 1
2
 sourceToDom
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace WikiHiero;
4
5use MediaWiki\Hook\ParserFirstCallInitHook;
6use MediaWiki\Parser\Parser;
7use Wikimedia\Parsoid\Ext\ExtensionModule;
8use Wikimedia\Parsoid\Ext\ExtensionTagHandler;
9use Wikimedia\Parsoid\Ext\ParsoidExtensionAPI;
10
11class 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}