aboutsummaryrefslogtreecommitdiffstats
path: root/includes/content
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2024-07-30 16:54:51 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2024-07-30 16:54:51 +0000
commit1cbafee5ded0a0c854d91c0ffb6e04d536474700 (patch)
tree77688ea7912597c9b784d9c5b2bb92b764bf8d14 /includes/content
parent09d38b155724c7638c0d0c82caffbb328058d0ee (diff)
parent16de2c085120d82fc1203a2b28eaa7b64eb8df0e (diff)
downloadmediawikicore-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.php21
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 );