diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2024-07-30 16:54:51 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2024-07-30 16:54:51 +0000 |
commit | 1cbafee5ded0a0c854d91c0ffb6e04d536474700 (patch) | |
tree | 77688ea7912597c9b784d9c5b2bb92b764bf8d14 /includes/content | |
parent | 09d38b155724c7638c0d0c82caffbb328058d0ee (diff) | |
parent | 16de2c085120d82fc1203a2b28eaa7b64eb8df0e (diff) | |
download | mediawikicore-1cbafee5ded0a0c854d91c0ffb6e04d536474700.tar.gz mediawikicore-1cbafee5ded0a0c854d91c0ffb6e04d536474700.zip |
Merge "[ParsoidParser] Remove unneeded code to set render ID"
Diffstat (limited to 'includes/content')
-rw-r--r-- | includes/content/JsonContentHandler.php | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/includes/content/JsonContentHandler.php b/includes/content/JsonContentHandler.php index d631aceabc29..dea71fe7fe9e 100644 --- a/includes/content/JsonContentHandler.php +++ b/includes/content/JsonContentHandler.php @@ -24,6 +24,7 @@ use CodeContentHandler; use Content; use MediaWiki\Content\Renderer\ContentParseParams; use MediaWiki\Content\Transform\PreSaveTransformParams; +use MediaWiki\MediaWikiServices; use MediaWiki\Parser\ParserOutput; use StatusValue; @@ -124,7 +125,25 @@ class JsonContentHandler extends CodeContentHandler { // As such, native data may be invalid (though output is discarded later in that case). if ( $cpoParams->getGenerateHtml() ) { if ( $content->isValid() ) { - $parserOutput->setRawText( $content->rootValueTable( $content->getData()->getValue() ) ); + $parserOptions = $cpoParams->getParserOptions(); + if ( $cpoParams->getParserOptions()->getUseParsoid() ) { + $title = MediaWikiServices::getInstance()->getTitleFactory() + ->newFromPageReference( $cpoParams->getPage() ); + $parser = MediaWikiServices::getInstance()->getParsoidParserFactory() + ->create(); + $parserOutput = $parser->parse( + // It is necessary to pass a Content rather than a + // string in order for Parsoid to handle the + // contentmodel correctly. + $content, $title, $parserOptions, + true, true, $cpoParams->getRevId() + ); + // Register the use of the 'parsoid' option again, since + // we have a new $parserOutput now. + $parserOptions->getUseParsoid(); + } else { + $parserOutput->setRawText( $content->rootValueTable( $content->getData()->getValue() ) ); + } } else { $error = wfMessage( 'invalid-json-data' )->parse(); $parserOutput->setRawText( $error ); |