Merge "LaTeXML: prevent automatic rerendering of SVG"

This commit is contained in:
jenkins-bot 2015-02-08 20:22:58 +00:00 committed by Gerrit Code Review
commit a24f16d79e
3 changed files with 23 additions and 11 deletions

View File

@ -178,7 +178,7 @@ class MathLaTeXML extends MathMathML {
* No cache is used.
* @return boolean
*/
public function calulateSvg() {
public function calculateSvg() {
$renderer = new MathMathML( $this->getTex() );
$renderer->setMathml( $this->getMathml() );
$renderer->setMode( MW_MATH_LATEXML );
@ -192,16 +192,22 @@ class MathLaTeXML extends MathMathML {
return $res;
}
/**
* Gets the SVG image
* Lazy evaluation: If no SVG image exists it's generated on the fly
*
* @param string $render if set to 'render' (default) and no SVG image exists, the function
* tries to generate it on the fly.
* Otherwise, if set to 'cached', and there is no SVG in the database
* cache, an empty string is returned.
*
* @return string XML-Document of the rendered SVG
*/
public function getSvg() {
if ( $this->isPurge() || $this->svg == '' ) {
$this->calulateSvg();
public function getSvg( $render = 'render' ) {
if ( $render == 'render' && ( $this->isPurge() || $this->svg == '' ) ) {
$this->calculateSvg();
}
return $this->svg;
return parent::getSvg( $render );
}
protected function getMathTableName() {

View File

@ -107,7 +107,7 @@ class MathMathML extends MathRenderer {
if ( $dbres ) {
if ( $this->isValidMathML( $this->getMathml() ) ) {
wfDebugLog( 'Math', 'Valid MathML entry found in database.' );
if ( $this->getSvg() ) {
if ( $this->getSvg( 'cached' ) ) {
wfDebugLog( 'Math', 'SVG-fallback found in database.' );
return false;
} else {
@ -214,8 +214,8 @@ class MathMathML extends MathRenderer {
// default preserve the (broken) layout as it was
$out = 'type=inline-TeX&q=' .rawurlencode( '{\\displaystyle ' . $input . '}' );
} else {
$out = 'type=tex&q=' . rawurlencode( $input );
}
$out = 'type=tex&q=' . rawurlencode( $input );
}
}
wfDebugLog( 'Math', 'Get post data: ' . $out );
return $out;

View File

@ -671,10 +671,16 @@ abstract class MathRenderer {
}
/**
* Gets the SVG image
*
* @return type
* @param string $render if set to 'render' (default) and no SVG image exists, the function
* tries to generate it on the fly.
* Otherwise, if set to 'cached', and there is no SVG in the database
* cache, an empty string is returned.
*
* @return string XML-Document of the rendered SVG
*/
public function getSvg() {
public function getSvg( $render = 'render' ) {
// Spaces will prevent the image from being displayed correctly in the browser
return trim( $this->svg );
}