Use ParserOutput::getRawText() where available

This is unlikely to be a cause of the cache corruption since this isn't
calling setText() on any wikitext ParserOutputs, but let's fix it just
in case.

Bug: T124356
Change-Id: Ic34c654af86385dede843009d89df6f442ddc915
This commit is contained in:
Brad Jorsch 2016-01-25 12:37:50 -05:00
parent 581ca1111f
commit dd0c6e7668

View file

@ -91,7 +91,7 @@ class ScribuntoContent extends TextContent {
$engine->setTitle( $title );
$status = $engine->validate( $text, $title->getPrefixedDBkey() );
if ( !$status->isOK() ) {
$output->setText( $output->getText() .
$output->setText( self::getPOText( $output ) .
Html::rawElement( 'div', array( 'class' => 'errorbox' ),
$status->getHTML( 'scribunto-error-short', 'scribunto-error-long' )
)
@ -138,14 +138,14 @@ class ScribuntoContent extends TextContent {
if ( $wgUseSiteCss ) {
$output->addModuleStyles( 'ext.geshi.local' );
}
$output->setText( $output->getText() . $code );
$output->setText( self::getPOText( $output ) . $code );
return $output;
}
}
}
// No GeSHi, or GeSHi can't parse it, use plain <pre>
$output->setText( $output->getText() .
$output->setText( self::getPOText( $output ) .
"<pre class='mw-code mw-script' dir='ltr'>\n" .
htmlspecialchars( $text ) .
"\n</pre>\n"
@ -154,6 +154,19 @@ class ScribuntoContent extends TextContent {
return $output;
}
/**
* Fetch the text from a ParserOutput
* @todo Once support for MW without ParserOutput::getRawText() is dropped,
* inline this.
* @param ParserOutput $po
* @return string
*/
private static function getPOText( ParserOutput $po ) {
return is_callable( array( $po, 'getRawText' ) )
? $po->getRawText()
: $po->getText();
}
/**
* Returns a Content object with pre-save transformations applied (or this
* object if no transformations apply).