1<?php
2declare( strict_types = 1 );
3
4namespace Wikimedia\Parsoid\ParserTests;
5
6use DOMDocument;
7
8use Wikimedia\Parsoid\Ext\ExtensionModule;
9use Wikimedia\Parsoid\Ext\ExtensionTagHandler;
10use Wikimedia\Parsoid\Ext\ParsoidExtensionAPI;
11use Wikimedia\Parsoid\Utils\DOMCompat;
12
13class StyleTag extends ExtensionTagHandler implements ExtensionModule {
14	/** @inheritDoc */
15	public function sourceToDom(
16		ParsoidExtensionAPI $extApi, string $content, array $args
17	): DOMDocument {
18		$doc = $extApi->htmlToDom( '' ); // Empty doc
19		$style = $doc->createElement( 'style' );
20		DOMCompat::setInnerHTML( $style, $content );
21		$extApi->sanitizeArgs( $style, $args );
22		DOMCompat::getBody( $doc )->appendChild( $style );
23		return $doc;
24	}
25
26	/** @inheritDoc */
27	public function getConfig(): array {
28		return [
29			'name' => 'StyleTag',
30			'tags' => [
31				[ 'name' => 'style', 'handler' => self::class ],
32			],
33		];
34	}
35}
36