MediaWiki рдореЗрдВ рд░рд┐рд╕реЛрд░реНрд╕рд▓реЙрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рд╕рдВрд╕реНрдХрд░рдг 1.17 рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, MediaWiki рдиреЗ рд╕реНрдЯрд╛рдЗрд▓ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рддрдВрддреНрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ - рд░рд┐рд╕реЛрд░реНрд╕рд▓реЛрдбрд░ ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ GoogleCodePrettify рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ , рдЬреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЯреИрдЧ рдХреЛ MediaWiki рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рднреА рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд addScript рдЖрджрд┐ рдХреЗ рдмрдЬрд╛рдп рдирдП рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреГрдврд╝рддрд╛ рд╕реЗ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ addScript ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
 $wgResourceModules['ext.GoogleCodePrettify'] = array( 'localBasePath' => dirname(__FILE__), 'remoteExtPath' => 'GoogleCodePrettify', 'styles' => array('google-code-prettify/prettify.css'), 'scripts' => array('google-code-prettify/prettify.js', 'init.js') ); 


рдЕрдм рд╡рд┐рдХреА рдорд╛рд░реНрдХрдЕрдк рдкрд╛рд░реНрд╕рд░ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рд╣рдо рд╕рд┐рдВрдЯреИрдХреНрд╕рд╣рд┐рдЧрд▓рд╛рдЗрдЯ рдЯреИрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗ:
 // Register parser hook $wgHooks['ParserFirstCallInit'][] = 'efGoogleCodePrettify_Setup'; /** * Register parser hook */ function efGoogleCodePrettify_Setup( &$parser ) { $parser->setHook('syntaxhighlight', array('GoogleCodePrettify', 'parserHook')); return true; } class GoogleCodePrettify { private static $prettified = false; public static function parserHook($text, $args = array(), $parser) { self::$prettified = true; return "<pre class=\"prettyprint\">$text</pre>"; } 


рдФрд░ рдЕрдВрдд рдореЗрдВ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрд╡рд╢реНрдпрдХ рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:
 // Register before display hook $wgHooks['BeforePageDisplay'][] = 'GoogleCodePrettify::beforePageDisplay'; #   public static function beforePageDisplay(&$wgOut, &$sk) { if (self::$prettified) { $wgOut->addModules('ext.GoogleCodePrettify'); } // Continue return true; } 


рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рд░рд┐рд╕реЛрд░реНрд╕рд▓реЛрдбрд░ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдбреАрдмрдЧ = 1 рд╡рд┐рдХрд▓реНрдк рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдЯрд╛рдЗрд▓ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ "рдЬреИрд╕рд╛ рд╣реИ" рджреЗрдЧрд╛ред

рд╣рд╛рдВ, рдореИрдВ рд▓рдЧрднрдЧ рднреВрд▓ рдЧрдпрд╛ рдерд╛ред рдпрд╣ init.js рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
 (function($, window) { $(window.document).ready(function() { window.prettyPrint(); }); })(window.jQuery, window); 




рдпрд╣ рднреА рджреЗрдЦреЗрдВ:

Source: https://habr.com/ru/post/In130949/


All Articles