shouldModifyCallback = $shouldModifyCallback; $this->modifyCallback = $modifyCallback; } public function element( SerializerNode $parent, SerializerNode $node, $contents ) { if ( ( $this->shouldModifyCallback )( $node ) ) { $node = clone $node; $node->attrs = clone $node->attrs; $newNode = ( $this->modifyCallback )( $node ); Assert::parameterType( SerializerNode::class, $newNode, 'return value' ); return parent::element( $parent, $newNode, $contents ); } else { return parent::element( $parent, $node, $contents ); } } public function startDocument( $fragmentNamespace, $fragmentName ) { return ''; } }; $serializer = new Serializer( $formatter ); $treeBuilder = new TreeBuilder( $serializer ); $dispatcher = new Dispatcher( $treeBuilder ); $tokenizer = new Tokenizer( $dispatcher, $htmlFragment ); $tokenizer->execute( [ 'fragmentNamespace' => HTMLData::NS_HTML, 'fragmentName' => 'body', ] ); return $serializer->getResult(); } } /** * @deprecated since 1.40 */ class_alias( HtmlHelper::class, 'MediaWiki\\HtmlHelper' );