setHook( 'pre', array( __CLASS__, 'pre' ) ); $parser->setHook( 'nowiki', array( __CLASS__, 'nowiki' ) ); $parser->setHook( 'gallery', array( __CLASS__, 'gallery' ) ); if ( $wgRawHtml ) { $parser->setHook( 'html', array( __CLASS__, 'html' ) ); } if ( $wgUseTeX ) { $parser->setHook( 'math', array( __CLASS__, 'math' ) ); } } static function pre( $text, $attribs, $parser ) { // Backwards-compatibility hack $content = StringUtils::delimiterReplace( '', '', '$1', $text, 'i' ); $attribs = Sanitizer::validateTagAttributes( $attribs, 'pre' ); return Xml::openElement( 'pre', $attribs ) . Xml::escapeTagsOnly( $content ) . ''; } static function html( $content, $attributes, $parser ) { global $wgRawHtml; if( $wgRawHtml ) { return array( $content, 'markerType' => 'nowiki' ); } else { throw new MWException( ' extension tag encountered unexpectedly' ); } } static function nowiki( $content, $attributes, $parser ) { $content = strtr( $content, array( '-{' => '-{', '}-' => '}-' ) ); return array( Xml::escapeTagsOnly( $content ), 'markerType' => 'nowiki' ); } static function math( $content, $attributes, $parser ) { global $wgContLang; return $wgContLang->armourMath( MathRenderer::renderMath( $content, $attributes, $parser->getOptions() ) ); } static function gallery( $content, $attributes, $parser ) { return $parser->renderImageGallery( $content, $attributes ); } }