Texy! je sexy!

Texy je výkonný a bezpečný markup procesor pro PHP, který převádí jednoduchý text do validního HTML. Na rozdíl od jiných markup jazyků není Texy jen další variantou Markdown – je to plně konfigurovatelný systém, který můžete přizpůsobit prakticky jakékoliv syntaxi.

Proč Texy?

Bezpečnost na prvním místě

Texy je navrženo s důrazem na bezpečnost. Automaticky chrání před XSS útoky, validuje URL adresy a filtruje nebezpečné HTML značky. Vestavěný safeMode() je ideální pro zpracování uživatelského obsahu v komentářích nebo na fórech.

Texy\Configurator::safeMode($texy);
// Nyní je Texy bezpečné pro obsah od uživatelů

Konfigurovatelnost bez kompromisů

Chcete používat Markdown syntaxi? Nebo potřebujete úplně vlastní markup? Texy to zvládne. Můžete:

  • Vypnout nebo zapnout libovolné části syntaxe
  • Změnit výchozí chování pomocí handlerů
  • Přidat zcela vlastní syntaktické prvky
  • Nakonfigurovat Texy tak, aby zpracovávalo Markdown nebo jakýkoliv jiný formát
$texy = new Texy;
$texy->allowed['image'] = false; // vypnout obrázky
$texy->allowed['phrase/strong'] = false; // vypnout tučné písmo

České typografické speciality

Texy dokonale rozumí češtině. Automaticky:

  • Vkládá pevné mezery za jednopísmenné předložky a spojky: v autě, u okna, s kamarádem
  • Rozděluje dlouhá slova podle slabik: nejneobhospodařovávatelnějšími
  • Používá správné typografické uvozovky: „dvojité" a ‚jednoduché'
  • Zaměňuje spojovník za pomlčku: 10–15 vs. česko-slovenský
  • Přidává nezalomitelné mezery u telefonních čísel: +420 776 552 046

Validní a wellformed HTML

Texy generuje vždy validní HTML5 kód. Automaticky opravuje chybně vnořené značky, uzavírá nezavřené elementy a dbá na správnou strukturu dokumentu. Výstup je nejen validní, ale i pěkně naformátovaný s odsazením.

Co je Texy?

Texy je obecný procesor markup textu. To znamená, že má sice svou výchozí syntaxi (podobnou Markdown, ale mnohem bohatší), ale můžete ji kompletně změnit nebo rozšířit.

Není to jen parser – Texy je komplexní systém s modulární architekturou, kde každý modul zpracovává konkrétní část syntaxe (nadpisy, odkazy, obrázky, tabulky…). Díky systému handlerů můžete zasáhnout do libovolného bodu zpracování a změnit výsledek podle svých potřeb.

Texy vs. Markdown

Základní syntaxe je podobná, ale Texy nabízí mnohem více:

Funkce Markdown Texy
Tučné písmo **text** **text**
Kurzíva *text* nebo _text_ *text* nebo //text//
Nadpisy # Nadpis # Nadpis nebo podtržení
Obrázky ![alt](url) [* url *]
Tabulky omezené plná podpora včetně sloučení
Modifikátory ne ano – .{color:red}[class]
Typografie ne ano – uvozovky, pomlčky, mezery
Dělení slov ne ano – podle slabik
Konfigurovatelnost omezená úplná – vlastní syntaxe
Bezpečnost závisí na impl. vestavěná (safeMode)

Příklad rozdílů:

Markdown:
![Obrázek](image.jpg)

Texy:
[* image.jpg 300x200 .(Popisek obrázku)[photo] <]

Texy umožňuje definovat rozměry, třídy, zarovnání a mnoho dalšího přímo v syntaxi.

Kdy použít Texy?

Texy je ideální pro:

CMS systémy Potřebujete bezpečně zpracovávat obsah od editorů? Texy nabízí granulární kontrolu nad tím, co mohou uživatelé použít.

Blogy a dokumentace Bohatá syntaxe pro tabulky, obrázky s popiskami, typografii a kód s syntax highlightingem.

Komentáře a diskuzní fóra SafeMode zajistí, že uživatelé nemohou vložit nebezpečný kód, ale zároveň mají k dispozici formátování textu.

Projekty s vlastními požadavky Potřebujete embed YouTube videí? Speciální syntax pro vaše makra? Vlastní markup jazyk? S Texy to vytvoříte snadno.

Historie

Texy vytvořil David Grudl před 20 lety v roce 2004 jako jeden z prvních markup procesorů pro PHP. Původně bylo vyvinuto pro PHP 4, ale během své dlouhé historie prošlo mnoha aktualizacemi a dnes plně využívá všech možností PHP 8.

Přes dvě dekády aktivního vývoje znamenají vyzkoušenou a stabilní knihovnu, které důvěřují stovky projektů. Texy je dnes mature řešení s velkou historií, ale stále aktivně udržované a moderní.