Nebo chcete-li „Plugin could not be activated because it triggered a fatal error“. Při psaní minulého článku jsem zatajil ještě jeden problém, který instalaci WordPressu může provázet. Tenhle spot je o jedné nepříjemné hlášce, o jednom příjemném hostingu a o jednom pěkném nástroji z Google Code.
Jakmile svůj redakční systém nahodíte, začnete se poohlížet po hromadách dalších úžasných funkcí, jimiž je možné vyšperkovat nové sídlo. Začnete instalovat další a další pluginy, což je ve WordPressu opravdu jednoduché (většinou stačí nakopírovat zásuvný modul do adresáře wp-content/plugins a v menu Pluginy kliknout na odkaz Aktivovat), když tu náhle… Ouha! Plugin nemůže být aktivován, protože způsobil závažnou chybu.
Já jsem na tento zádrhel narazil při aktivaci pluginu WP-Syntax, ale může se to stát prakticky s jakýmkoliv. Důvod? Zásuvný modul neprošel validací. Proč? V zásadě je několik možností:
- Nedostatek paměti
- Chyba v pluginu (syntaktická apod.)
- Plugin není kompatibilní s Vaší verzí WordPressu
Nejpravděpodobněji se jedná a nedostatek paměti. Na Českém hostingu, kde momentálně sídlím, je paměťový limit nastaven na 8MB. Když samotný WordPress konzumuje přibližně 5.5MB, na pluginy věru mnoho místa nezbývá. Většina zvýrazňovačů syntaxe pro WordPress navíc používá knihovnu GeSHi, která také není zrovna drobek.
Pravda je, že pánové z Českého hostingu mi celkem ochotně navýšili množství sosatelné paměti, ale stalo se tak až druhý den a do té doby jsem našel moc pěkné rozšíření založené na zvýrazňovači syntaxe, který si říká dost prozaicky SyntaxHighlighter. Ten umí obarvit kódy v: C#, CSS, C++, VB & VB.NET, Delphi, Pascal, Java, JavaScript, PHP, Python, Ruby, SQL, XML, HTML, XSLT a jiné kódy na bázi XML.
Na rozdíl od většiny ostatních zvýrazňovačů je však tento kompletně napsaný v JavaScriptu. Čili odpadá zátěž serveru při zpracování větších knihoven a toto břímě je přeneseno na klienta. Nevýhodou může být nutnost stahování poměrně velký externích souborů s JavaScriptem, což lze do jisté míry potřít importováním pouze souborů s jazyky, v nichž chceme ve finále publikovat. Každopádně problémy s nedostatkem paměti pro pluginy jsou vyřešeny.
Plugin jsem si trochu přizpůsobil, takže je zde k dispozici česká verze zvýrazňovače syntaxe WP-dp.SyntaxHighlighter.
Použití se lehce liší od verze původní. Kvůli validátoru jsem vypustil identifikaci pomocí atributu name, který není u tagu pre úplně košer. Místo toho se kód, který chceme zvýraznit, identifikuje pomocí atributu lang.
<pre lang="code" class="html">
kód, který chceme zvýraznit
</pre>
Pomocí atributu class lze nadefinovat použitý jazyk uvedením jeho aliasu (viz. tabulka):
| Jazyk | Alias |
|---|---|
| C++ | cpp, c, c++ |
| C# | c#, c-sharp, csharp |
| CSS | css |
| Delphi | delphi, pascal |
| Java | java |
| Java Script | js, jscript, javascript |
| PHP | php |
| Python | py, python |
| Ruby | rb, ruby, rails, ror |
| Sql | sql |
| VB | vb, vb.net |
| XML/HTML | xml, html, xhtml, xslt |
K dispozici je ještě několik předvoleb zobrazení, jež je možné rovněž zadat prostřednictvím atributu class.
<pre lang="code" class="html:collapse:firstline[51]:showcolumns">
kód, který chceme zvýraznit
</pre>
nogutter– skryje čísla řádkůnocontrols– skryje menu v horní části (kopírovat atd.)collapse– zobrazí kód implicitně sbalený v jedné řádce, ten se musí následně rozkliknoutfirstline[číslo_řádku]– začne počítat řádky odčísla_řádkushowcolumns– v horní části zobrazí čísla sloupců
Nechte své nudné zdrojové kódy zazářit!