<?php namespace Isekai; use Wikimedia\Parsoid\Ext\ExtensionTagHandler; use Wikimedia\Parsoid\Ext\ParsoidExtensionAPI; class BlockQuoteTagHandler extends ExtensionTagHandler { public function sourceToDom(ParsoidExtensionAPI $extApi, string $src, array $extArgs) { return $extApi->extTagToDOM( $extArgs, '', $src, [ 'wrapperTag' => 'span', 'parseOpts' => [ 'extTag' => 'blockquote', ], ], ); } public function getInnerWikitext(ParsoidExtensionAPI $extApi, \DOMElement $dom) { $wikiText = ''; foreach($dom->childNodes as $child){ if($child instanceof \DOMText){ $wikiText .= $child->nodeValue; } else { $wikiText .= $extApi->domToWikitext([], $child); } } return $wikiText; } public function domToWikitext(ParsoidExtensionAPI $extApi, \DOMElement $node, bool $wrapperUnmodified): string { $innerCode = $this->getInnerWikitext($extApi, $node); return "<span>\n{$innerCode}\n</span>"; } }