format = $format; break; default: throw new InvalidArgumentException( 'Unsupported output format: ' . $format ); } } /** * @param StringValue $value * * @throws MismatchingDataValueTypeException * @return string */ public function format( $value ) { if ( !( $value instanceof StringValue ) ) { throw new MismatchingDataValueTypeException( 'StringValue', get_class( $value ) ); } $tex = $value->getValue(); switch ( $this->format ) { case SnakFormatter::FORMAT_PLAIN: return $tex; case SnakFormatter::FORMAT_WIKI: return "$tex"; default: $renderer = new MathMathML( $tex ); if ( $renderer->checkTex() && $renderer->render() ) { return $renderer->getHtmlOutput(); } // TeX string is not valid or rendering failed return $renderer->getLastError(); } } /** * @return string One of the SnakFormatter::FORMAT_... constants. */ public function getFormat() { return $this->format; } }