Jednoduché zvýraznění komentářů autora

Funkčnost pluginu Simple Author Highlighter – tedy barevné zvýraznění komentáře autora webu – je závislá na použitém způsobu výpisu komentářů. Proto nemusí nutně fungovat ve všech šablonách vzhledu.

Nicméně v defaultních šablonách WordPressu, jak Kubrick, tak i nové šabloně TwentyTen plugin Simple Author Highlighter funkční je. V nastavení určujete barvy pozadí komentáře a písma. Jde […]

Zvýraznění aktuálního měsíce v celkovém výpisu archivu

Nedávno se objevil dotaz na možnost zvýrazňování aktuálního měsíce v přehledném výpisu archivu, takže jsme se zkusili poohlédnout po nějakém jednoduchém řešení, aniž bychom museli modifikovat zdrojové kódy WordPressu či použít nějaký plugin. A nakonec je to jednodušší než to původně vypadalo a funguje to jak v archivu zobrazovaném v šabloně pomocí funkce wp_get_archives(), tak i ve widgetu Archiv. A jak […]

Zvýraznění ukázky kódu v příspěvku

**CodeHighlighter**
„http://wordpress.org/extend/plugins/code-highlighter/“:http://wordpress.org/extend/plugins/code-highlighter/
„http://ideathinking.com/wiki/index.php/WordPress:CodeHighlighterPlugin/“:http://ideathinking.com/wiki/index.php/WordPress:CodeHighlighterPlugin

This plugin is a syntax highlighter for source code. It uses GeSHi as fontifier engine.
Put the code snippet to pre tag.
Add the lang attribute to the pre tag like the following. **< pre lang="php" >**
Add the lineno attribute to the pre tag after the lang tag like the following if you want to display line numbers. The number in the lineno tag becomes a start line number. There is no default value for the start line number. So you must supply the value to the lineno tag. **< pre lang="php" lineno="1" >**

If you want to have border, add the style like the following to your .css file: **pre { border: 1px dotted #ccc; padding: 0.2em 0.5em; }**

You can use many languages in lang. For example: css, html4strict, javascript, mysql, php, python, text,xml and much more.

Pozor, nefunguje s Texy, tam je zapotřebí použít „speciální syntaxi“:http://texy.info/cs/syntax-podrobne (značky /—code):
/—code php

\—

*Alternativy*

**SyntaxHighlighter Evolved**
„http://wordpress.org/extend/plugins/syntaxhighlighter/“:http://wordpress.org/extend/plugins/syntaxhighlighter/

SyntaxHighlighter Evolved allows you to easily post syntax-highlighted code to your site without losing it’s formatting or making any manual changes. It uses the SyntaxHighlighter JavaScript package by Alex Gorbatchev.

**Crayon Syntax Highlighter**
https://wordpress.org/plugins/crayon-syntax-highlighter/

Syntax Highlighter supporting multiple languages, themes, fonts, highlighting from a URL, or post text.

**Code-prettify**
„https://github.com/kasparsd/code-prettify“:https://github.com/kasparsd/code-prettify

WordPress plugin for automatic code highlighting using the Prettify library. No shortcodes, no bullshit.

**Enlighter – Customizable Syntax Highlighter**

Enlighter – Customizable Syntax Highlighter

Easy-to-use, syntax highlighting tool for WordPress. It’s build in PHP and uses the MooTools(Javascript) based EnlighterJS to provide a beautiful code-appearance. Using it can be as simple as selecting an editor style or adding shortcode around your scripts which you want to highlight and Enlighter takes care of the rest.

Rozdělení textu do dvou sloupců

Potřebujete-li někde uplatnit rozdělení textu do dvou sloupců, respektive nerozdělené hlavičky a dvou sloupců, pak oceníte plugin WP Columns.

Administrace pluginu se přidá poněkud netradičně do bočního menu přímo pod hlavičku Pluginy (a ne pod Nastavení), kde si určíte, jakou podobu bude mít „rozdělovač“, defaultně je to: /—/. Zde si také můžete nastavit CSS třídu, […]

Zalomení/tvrdá mezera: plugin do WordPressu pro předložky k, s, v, z

Začnu citací z webových stránek Ústavu pro jazyk český, Akademie věd České Republiky:

Upravujeme-li písemný dokument, radí nám Pravidla českého pravopisu nepsat neslabičné předložky v, s, z, k na konec řádku, ale psát je na stejný řádek se slovem, které nese přízvuk (např. ve spojení k mostu, s bratrem, v Plzni, z nádraží). Typografické normy jsou ještě přísnější: podle některých je nepatřičné ponechat na konci řádku jakékoli jednopísmenné slovo, tedy také předložky a spojky a, i, o, u;. Někteří pisatelé dokonce nechtějí z estetických důvodů ponechávat na konci řádků jakékoli jednoslabičné výrazy (např. ve, ke, ku, že, na, do, od, pod).

Takže jednoduše, předložky k, s, vz by neměly zůstat trčet osamocené na konci řádku jako poslední slovo, ale měly by být dohromady na jednom řádku se slovem, kterému předcházejí, tedy měly by se přesunout na další řádek. Velice dobře si vzpomínám, jak jsme se toto pravidlo učili ve škole v češtině a jak byla tato chyba při diktátech a slohových prací zakroužkována červenou propiskou a známka byla hned horší. Ale ono to má svůj smysl, aby tomu tak bylo, text je totiž lépe čitelný.

Tato záležitost samozřejmě nedělá problém jen školákům, ale také (nebo spíš především) počítačovým programům. Pamatuji se, jaká sláva to byla, když MS Word začal toto reflektovat a za uvedené předložky začal automaticky vkládat tvrdou mezeru. Jedná se ovšem o výjimku a většina systémů toto neumí. Samozřejmě je vhodné, aby toto uměl právě počítačový program a neřešil to uživatel. Je skutečně zapotřebí dát tvrdou mezeru za každou tuto předložku, nejen za ty, které zůstaly trčet na koncích řádků (důvodem je, že dopsáním další věty doprostřed odstavce nebo změnou šířky sloupce se celý text přeformátuje a muselo by se to dělat znova). A to po uživateli nelze chtít.

Řekněme si na rovinu, že z typografického hlediska není tvrdá mezera vůbec vhodným řešením. Tvrdá mezera je totiž definována jako nedělitelná mezera o šířce písmene ‘n’. Proto pokud si ve Wordu nastavíte zarovnání odstavce k oběma okrajům, můžete si všimnout, jak se běžné mezery mezi jednotlivými slovy natáhly, ale pozor, tvrdé mezery po neslabičných předložkách zůstaly stále stejně široké jako písmena. Vypadá to hloupě, ale bohužel Word jiné řešení neumí. Skutečné sazečské programy umožňují označit kus textu a nastavit, že ten nesmí být rozdělen řádkováním, a potom se mezera roztáhne na správnou šířku, ale text není rozdělen do dvou řádků. Takové je ideální řešení, ale u běžných programů na něj musíme bohužel zapomenout.

Příklad

No a protože WordPress je v tomto směru pole neorané, byl zde prostor pro to, abych vytvořil svůj druhý plugin do tohoto publikačního systému. A tak je zde a Vy si jej můžete stáhnout. Stačí ho nahrát do Vašeho WordPressu, aktivovat a voilà! Mezera za dotyčnými předložkami bude nahrazena tvrdou mezerou a nestane se, že by předložka zůstala trčet na konci řádku. Tedy texty můžete úplně normálně psát a používat klávesu mezera a plugin zajistí, že při zobrazení WordPressem bude ošetřeno případné zalomení v nežádoucím místě.

Plugin má i jednoduchou konfiguraci, kde si můžete zaškrtnout tři skupiny slov (předložky, spojky a zkratky), pro které má dojít k uvedenému zásahu a případně i specifikovat, o jaké konkrétní předložky, spojky a zkratky se jedná.

Realizace je provedena doplněním této funkcionality do již stávající funkce wp_posterize(). Proto je nahrazování prováděno jen na textech, které WordPress zpracovává touto funkcí – např. články. Texty, které nejsou touto funkcí zpracovány (např. texty ve widgetech) zůstanou tak jak jsou.

Konfigurace pluginu Zalomení

Konfigurace pluginu Zalomení

Vím, že v této chvíli plugin řeší pouze 3 z mnoha případů, kdy by bylo zapotřebí slova nerozdělit. Objemově se ovšem jedná o 99% potřebných případů — ostatní případy již nejsou tak časté. Proto nebudu slibovat, jestli některé další případy do pluginu postupně doplněním. Vyloučené to není, ale nespoléhejte na to. (Pokud by se chtěl nějaký programátor připojit a ty další případy do pluginu doplnit, ať se mi ozve mailem).

Poznámka: Soubor ke stažení byl vložen do příspěvku, pokud jej chcete stáhnout, musíte příspěvek otevřít.

Plug-in Zalomení zabrání rozdělení formátovaných čísel

Po nějaké době používání svého plug-inu Zalomení pro publikační systém WordPress jsem objevil několik slabých míst a také nějakou další funkcionalitu, kterou bych tam chtěl mít. A tak logicky vznikla nová verze 1.1, která toto řeší. Konkrétně se jedná o následující změny:

  • Plug-in nyní umí nahrazovat mezery za pevné, pokud se mezera nachází mezi dvěma číslicemi. Mezera mezi číslicemi se totiž používá při formátování čísel — oddělování tisíců, milionů apod., případně při zápise telefonních čísel. V takovém případě mohlo dojít k rozdělení čísla zlomem řádku, což není žádoucí. Můžete si tedy zapnout (resp. ve výchozím stavu je zapnuto), že tyto mezery jsou nahrazeny za pevné a k rozdělení nedojde. Např. telefonní číslo 800 123 456.
  • Plug-in neuměl nahradit obyčejnou mezeru za pevnou, pokud se předložka (nebo jiné slovo) nacházelo jako první za nějakou html značkou — např. <em>v Olomouci</em>, tedy v Olomouci. Nyní to již umí.
  • Plug-in neuměl nahradit obyčejnou mezeru za pevnou, pokud se předložka (nebo jiné slovo) nacházelo jako první za otevírací závorkou — např. (v Olomouci). Nyní to již umí.
  • Rozšířil jsem seznam výchozích zkratek (ze čtyř na dvacet čtyři), za něž se má vkládat pevná mezera.
  • No a poslední věc, která už není tolik zajímavá z uživatelského hlediska, ale nedá mi to, abych ji nezmínil. První verze pluginu využívala pro svou funkčnost již stávající filtr wp_posterize(), který se nachází ve WordPressu již ve výchozí instalaci. Abych mohl zrealizovat první dvě z výše uvedených změn, nebylo již možné tento stávající filtr jednoduše využít, takže jsem si napsal vlastní. Tedy uvnitř pod kapotou mého pluginu je změn o něco více.

Takže tradičně, pokud již máte nainstalovanou první verzi mého plug-inu, tak tato nová se Vám nabídne sama pomocí příjemného „one-click upgrade“, které WordPress umí. No a pokud jste ještě tento plug-in nevyzkoušeli a Váš web běží právě na WordPressu, tak si ho stáhněte a dejte mu šanci.

Poznámka: Soubor ke stažení byl vložen do příspěvku, pokud jej chcete stáhnout, musíte příspěvek otevřít.

Jak na české formátování čísel ve WordPressu

WordPress je výborný publikační systém, a to nemám na mysli jen systém samotný, ale i češtinu, která je pro WordPress k dispozici. Bohužel zde máme jednu maličkost, která k dokonalosti chybí. A tou je formátování čísel, které i při použití češtiny odpovídá anglickým konvencím, tedy desetinná místa odděluje tečka a tisíce odděluje čárka. V češtině to ale má být jinak, desetinným oddělovačem má být čárka, kdežto oddělovačem tisíců má být mezera. (pro hnidopichy, moc dobře vím, že oddělovačem tisíců by neměla být normální, ale tenká mezera, to se ovšem na webu realizuje ještě hůře než normální mezera)

Ono se to snadno napíše, krásná teorie, pokud si ale myslíte, že jen tak vlezete do zdrojáků češtiny pro WordPress a položky si opravíte, okamžitě se vystavíte problému. Totiž webové stránky (stejně jako drtivá většina aplikací pracujících s textem) odstavce zalamují do jednotlivých řádků podle mezer. Což je v pořádku právě do té doby, než Vám mezery začnou oddělovat tisíce v číslech. Protože řádek uprostřed čísla zalomit nechcete. Číslo potřebujete držet pohromadě. Řešení se nazývá tvrdá mezera a tím se řítíme do největších hlubin trapné chyby, se kterou se musíme poprat. (doplnění informace o tenké mezeře z předchozího odstavce: tenká mezera reperezentovaná entitou &thinsp; je totiž v HTML zlomitelná přes řádek, tak proto ji nemůžeme použít pro formátování čísel)

Ne, chyba se nenachází v češtině pro WordPress. Nenachází se ani ve WordPressu samotném. Je skryta ještě níže, přímo v samotném PHP. Totiž, WordPress naprosto správně pro formátování čísel používá nativní funkci PHP, která se jmenuje number_format(). Potíž je v tom, že tato funkce neumí pracovat s tvrdými mezerami, a to ani s řetězcem &nbsp; ani s pevnou mezerou zapsanou jako ASCII znak o hodnotě 160. Pokud ji předhodíte, že má použít pro oddělení tisíců tvrdou mezeru, ve výsledku místo ní dostanete čtvereček. To je naprosto nepoužitelné.

A naprosto trapné na celé situaci je, že problém s touto funkcí je reportovaný do PHP již mnoho let (viz velmi dlouhý log u popisu této funkce), netrápí jenom Čechy, ale i mnohé početnější národy používající stejné formátování, jmenujem třeba Francii nebo Rusko. A nikdo s tím nic nedělá.

Rozhodl jsem se, že se se situací nesmířím. Na svém webu chci mít čísla naformátovaná správně česky. Asi bych uměl najít zmíněnou funkci ve zdrojácích PHP a zkompilovat si vlastní modifikaci, bohužel PHP u svého web-hostera nevyměním, takže situaci musím vyřešit o úroveň výše, ve WordPressu. Nejedná se však o situaci, kterou by šlo vyřešit plug-inem, ale musel jsem sáhnout napřímo do střev samotného WordPressu. To ve výsledku znamená, že s každým upgradem WordPressu, byť tím nejmenším, to musím udělat znova.

Vlevo u seznamu souborů ke stažení vidíte, že to vše funguje správně. Velikost souborů má desetinnou část oddělenou čárkou a u počtu stažení je vždy oddělovačem tisíců nedělitelná mezera, takže se nestane, že by se číslo rozdělilo na více řádků. Tak to má být.

Pokud chcete, aby i na Vašem webu byla čísla správně česky naformátována, můžete si stáhnout následující archiv. V něm najdete tři soubory, které nahrajte (do příslušných adresářů) Vaší instalace WordPressu přes ty původní. Pozor: soubory v tomto archivu jsou v této chvíli pro WordPress verze 2.9.2 a pokud máte jinou verzi WordPressu, tak to nedělejte, WordPress by mohl přestat fungovat. Modifikace je určena jen pro verzi 2.9.2, pro žádnou jinou.

Poznámka: Soubor ke stažení byl vložen do příspěvku, pokud jej chcete stáhnout, musíte příspěvek otevřít.

Dobrá zpráva na závěr: tento problém jsem již před časem nahlásil vývojovému týmu WordPressu a lze předpokládat, že nějakým způsobem se s ní popasují a v budoucnu bude možné, aby oficiální čeština měla korektní formátování čísel tak, jak má být. Zatím se řeší, jakým způsobem toto zařídit, jestli tak, jak jsem to udělal já, nebo nějakým filtrem, ale to je méně podstatné; nyní je milestone nastavený na verzi 3.0, tzn. vývojový tým by to chtěl mít v této verzi již vyřešené (ale na druhé straně si můžete v logu všimnout, že už se oprava plánovala pro verzi 2.9 a pak se to zrušilo). Tak držme palce, že řešení popsané a nabídnuté ke stažení v tomto článku je pouze dočasným workaroundem.

Pokročilé úpravy zobrazování náhledových obrázků v šabloně

Náhledové obrázky, které se nově objevily ve WordPressu 2.9, toho sice na první pohled moc neumí, ale s pomocí několika drobných zásahů je možné jejich zobrazení v šabloně libovolně upravovat. Nejčastějším způsobem těchto úprav je obvykle zápis dodatečné funkce do souboru functions.php ve vaší šabloně, ale v tomto případě to ani není nutné a vystačíme si s úpravou […]

Zvýrazněná citace

**Simple Pull Quote**
„http://wordpress.org/extend/plugins/simple-pull-quote/“:http://wordpress.org/extend/plugins/simple-pull-quote/
„http://www.themightymo.com/simple-pull-quote/“:http://www.themightymo.com/simple-pull-quote/

Simple Pull Quote WordPress Plugin provides an easy way for you to insert pull quotes into your posts and pages. It adds an easy-to-use „Pullquote“ button to both the HTML and TinyMCE editors.