format = $format; break; default: throw new InvalidArgumentException( 'Unsupported output format: ' . $format ); } } /* * * @param StringValue $value * * @return string * @throws \ValueFormatters\Exceptions\MismatchingDataValueTypeException */ 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"; case ( SnakFormatter::FORMAT_HTML ): case ( SnakFormatter::FORMAT_HTML_WIDGET ): case ( SnakFormatter::FORMAT_HTML_DIFF ): $renderer = new MathMathML( $tex ); if ( $renderer->checkTex() ) { if ( $renderer->render() ) { return $renderer->getHtmlOutput(); } } // TeX string is not valid or rendering failed return $renderer->getLastError(); } } /** * * @return format */ public function getFormat() { return $this->format; } }