Rychlý start

Naučte se pracovat s Texy za pár minut. Tato stránka vás provede instalací, prvním použitím a základní konfigurací.

Instalace

Texy využívá moderních vlastností PHP a vyžaduje minimálně verzi 8.1.

Nejjednodušší způsob instalace je přes Composer:

composer require texy/texy

Composer automaticky stáhne Texy a všechny závislosti.

První použití

Základní zpracování textu

Vytvoření instance Texy a zpracování textu je extrémně jednoduché:

require __DIR__ . '/vendor/autoload.php';

$texy = new Texy\Texy;

$text = 'Toto je **tučný text** a toto //kurzíva//.';
$html = $texy->process($text);

echo $html;

Výstup:

<p>Toto je <strong>tučný text</strong> a toto <em>kurzíva</em>.</p>

Metoda process() zpracuje celý text včetně blokových elementů (odstavce, nadpisy, seznamy, tabulky…).

Jednořádkový text

Pokud zpracováváte pouze jednořádkový text bez blokových elementů (například nadpisy v databázi, krátké popisky):

$texy = new Texy\Texy;

$text = 'Odkaz na "homepage":https://example.com';
$html = $texy->processLine($text);

echo $html;

Výstup:

Odkaz na <a href="https://example.com">homepage</a>

Metoda processLine() nezabaluje výstup do odstavce <p> a zpracuje pouze inline elementy.

Základní konfigurace

Texy funguje „out of the box“, ale často budete chtít upravit základní nastavení.

Nastavení cest k obrázkům

Pokud používáte relativní cesty k obrázkům, nastavte kořenový adresář:

$texy = new Texy\Texy;

// Cesta na webu (přidá se před relativní URL)
$texy->imageModule->root = '/images/';

// Fyzická cesta na disku (pro zjištění rozměrů)
$texy->imageModule->fileRoot = __DIR__ . '/public/images/';

Teď když napíšete [* photo.jpg *], Texy vygeneruje <img src="/images/photo.jpg"> a automaticky zjistí rozměry obrázku.

Nastavení cest k odkazům

Podobně můžete nastavit kořenový adresář pro odkazy:

$texy->linkModule->root = '/articles/';

Povolení a zakázání syntaxí

Každá část Texy syntaxe lze vypnout nebo zapnout pomocí pole $allowed:

$texy = new Texy\Texy;

// Vypnout obrázky
$texy->allowed['image'] = false;

// Vypnout HTML značky ve vstupu
$texy->allowed['html/tag'] = false;

// Povolit emotikony (ve výchozím stavu vypnuté)
$texy->allowed['emoticon'] = true;

Kompletní seznam syntaxí najdete v konfiguraci.

Bezpečný režim pro uživatelský obsah

Pokud zpracováváte obsah od uživatelů (komentáře, příspěvky na fóru), použijte bezpečný režim:

$texy = new Texy\Texy;
Texy\Configurator::safeMode($texy);

$userInput = $_POST['comment'];
$html = $texy->process($userInput);

SafeMode:

  • Povolí jen bezpečné HTML značky (<strong>, <em>, <a>, …)
  • Zakáže třídy a ID
  • Zakáže inline styly
  • Zakáže obrázky
  • Přidá rel="nofollow" ke všem odkazům
  • Filtruje URL schémata (jen http:, https:, ftp:, mailto:)

Více o bezpečnosti v kapitole Konfigurace – Bezpečnost.

Kompletní příklad

require __DIR__ . '/vendor/autoload.php';

$texy = new Texy\Texy;

// Konfigurace
$texy->imageModule->root = '/images/';
$texy->linkModule->root = '/';
$texy->allowed['html/tag'] = false;

// Text k zpracování
$text = '


Nadpis článku
=============

Toto je **úvodní odstavec** s odkazem na "homepage":https://example.com.

- První položka
- Druhá položka
- Třetí položka

[* photo.jpg .(Fotografie) *]
';

// Zpracování
$html = $texy->process($text);

// Výstup
echo $html;

// Dodatečné informace
echo "Titulek stránky: " . $texy->headingModule->title;
print_r($texy->summary['links']);
print_r($texy->summary['images']);

Po zpracování máte k dispozici:

  • $texy->headingModule->title – první nadpis (vhodné pro <title>)
  • $texy->summary['links'] – pole všech použitých odkazů
  • $texy->summary['images'] – pole všech použitých obrázků

Další kroky

Teď už víte, jak Texy používat. Pokračujte: