7use Wikimedia\Parsoid\Core\PageBundle;
20 public const PARSOID_PAGE_BUNDLE_KEY =
'parsoid-page-bundle';
26 private function __construct() {
44 PageBundle $pageBundle, ?
ParserOutput $originalParserOutput =
null
47 if ( $originalParserOutput ) {
71 self::PARSOID_PAGE_BUNDLE_KEY,
73 'parsoid' => $pageBundle->parsoid ?? null,
74 'mw' => $pageBundle->mw ?? null,
75 'version' => $pageBundle->version ?? null,
76 'headers' => $pageBundle->headers ?? null,
77 'contentmodel' => $pageBundle->contentmodel ?? null,
81 if ( isset( $pageBundle->headers[
'content-language'] ) ) {
82 $lang = LanguageCode::normalizeNonstandardCodeAndWarn(
84 $pageBundle->headers[
'content-language']
98 $pageBundleData = $parserOutput->
getExtensionData( self::PARSOID_PAGE_BUNDLE_KEY );
101 $headers = $pageBundleData[
'headers'] ?? [];
104 $headers[
'content-language'] = $lang->toBcp47Code();
107 return new PageBundle(
109 $pageBundleData[
'parsoid'] ?? [
'ids' => [] ],
110 $pageBundleData[
'mw'] ??
null,
113 $pageBundleData[
'version'] ??
'0.0.0',
114 $pageBundleData[
'headers'] ?? $headers,
115 $pageBundleData[
'contentmodel'] ??
null
120 return $parserOutput->
getExtensionData( self::PARSOID_PAGE_BUNDLE_KEY ) !==
null;
setExtensionData( $extensionData)
Set extension data for this result.
getExtensionData()
Get the extension data as: augmentor name => data.
Provides methods for conversion between PageBundle and ParserOutput TODO: Convert to a trait once we ...
static hasPageBundle(ParserOutput $parserOutput)
static pageBundleFromParserOutput(ParserOutput $parserOutput)
Returns a Parsoid PageBundle equivalent to the given ParserOutput.
static applyPageBundleDataToParserOutput( $pageBundle, ParserOutput $parserOutput)
Given an existing ParserOutput and a PageBundle, applies the PageBundle data to the ParserOutput.
static parserOutputFromPageBundle(PageBundle $pageBundle, ?ParserOutput $originalParserOutput=null)
Creates a ParserOutput object containing the relevant data from the given PageBundle object.