Na navigaci | Klávesové zkratky

Přidejte si značku {texy} do Latte

Knihovna Texy od verze 3.1.6 přidává podporu pro Latte 3 v podobě značky {texy}. Co umí a jak ji nasadit?

Značka {texy} představuje snadný způsob, jak v Latte šablonách psát přímo v syntaxi Texy:

{texy}
You Already Know the Syntax
----------

No kidding, you know Latte syntax already. **It is the same as PHP syntax.**
{/texy}

Stačí do Latte nainstalovat rozšíření a předat mu objekt Texy nakonfigurovaný podle potřeby:

$texy = new Texy\Texy;
$latte = new Latte\Engine;
$latte->addExtension(new Texy\Bridges\Latte\TexyExtension($texy));

Pokud je mezi značkami {texy}...{/texy} statický text, tak se přeloží pomocí Texy už během kompilace šablony a výsledek do ní uloží. Pokud je obsah dynamický (tj. jsou uvnitř Latte značky), zpracování pomocí Texy se provádí pokaždé při vykreslování šablony.

Pokud je žádoucí Latte značky uvnitř vypnout, dá se to udělat takto:

{texy syntax: off} ... {/texy}

Do rozšíření lze kromě objektu Texy předat také vlastní funkci a tak umožnit předávat ze šablony parametry. Kupříkladu chceme mít možnost předávat parametry locale a heading:

$processor = function (string $text, int $heading = 1, string $locale = 'cs'): string {
	$texy = new Texy\Texy;
	$texy->headingModule->top = $heading;
	$texy->typographyModule->locale = $locale;
	return $texy->process($text);
};

$latte = new Latte\Engine;
$latte->addExtension(new Texy\Bridges\Latte\TexyExtension($processor));

Parametry v šabloně předáme takto:

{texy locale: en, heading: 3}
...
{/texy}

Pokud chcete pomocí Texy formátovat text uložený v proměnné, můžete použít filtr:

{$description|texy}

Mohlo by vás zajímat

Komentáře

  1. Pepa Paprčka #1

    avatar

    Texy je fajn, ale dokumentace je trošku zanedbaná.
    V části Modifikátory se říká „více se dozvíte v jiné kapitole“, která tam není. Editor nic nedělá.

    Dotaz k modifikátorům: jak nastavit styl jen pro jedno nebo více slov, to znamená udělat tohle, ale bez vytučnění nebo kurzivy:

    Chci aby **slovo .[text-danger]** bylo červené, ale ne tučné. Chci aby //tato slova .[text-danger]// byla červená, ale ne skloněná.

    Jak texy pozná odkud kam chci modifikovat?

    před 2 lety | odpovědět
  2. David Grudl #2

    avatar

    Použij "slovo .[text-danger]"

    před 2 lety | odpovědět
  3. Vratislav #3

    avatar

    Zdravím, Davide.
    Texy na texy.info zní výborně, ale po delším čase užívání ji opustím. Považuju ji za nespolehlivou a tedy nepoužitelnou, zkrátka ztrátu času. Bohužel, toto člověk zjistí poté, co implementaci věnoval drahý čas, který nelze vrátit zpět.

    • Přestože úsilí nelze zapřít, ne všechno je vychytané a občas Texy zradí. Nejjednodušší příklad: „<i>slovo1 </i>slovo2“. (Lze odepsat, že tento příklad „nemám psát“, ale to za prvé není pravda, za druhé to jen potvrzuje porážku protiargumentujícího.)
    • Nemá ne-html notaci častých značek jako <u>, <s>, <tt> a <code> (v rámci řádku), což z ní dělá rozpolcený jazyk, který „sedí na dvou židlích“ coby markup a hypertext.
    • K některým složitým elementům, které v zápisu vyjdou na více řádků, nelze přidat třídu (atribut class).
    • K některým elementům (obrázkům, mezi mnoha) se často přidává atribut title; Texy nemá způsob, jak ho přidat.
    • Viz https://forum.texy.info/…-napr-data-x

    Texy automaticky maže všechny atributy data-* u všech prvků. Mazání je implicitní a nelze vypnout. Odkaz výše ukazuje „řešení“, které vlastně řešením není, protože všechny možné („uživatelsky definované“) atributy nelze vyjmenovat.

    • To samé platí pro atributy aria-*.
    • Obojí Texy vyhodí i uvnitř „/---html“ … „\---“, (které, nota bene, je v dokumentace uváděné jako „vypnutí Texy“)
    • Chce-li někdo něco mermomocí napsat v Texy v případech, kdy je Texy nespolehlivá, tak tím ztrácí čas, protože ani v tzv. podrobném popisu syntaxe jeho případy nenalezne, a nakonec to stejně napíše v html. Čímž (opět) Texy ztrácí smysl a jde na nervy.
    • Při spolupráci s nějakou z populárních css/js knihoven á la Angular, Bootstrap, apod., které hojně využívají notaci tříd a výše zmíněné atributy data-* a aria-*, dříve spíš než později dojde k tomu, že je jednodušší (a někdy jediné) řešení vložit rovnou html kód. Tím se ze souborů .texy stane odporný špagetový kód – směs z člověkem čitelné a současně nečitelné hatmatilky, čímž Texy ztratí svůj smysl.

    Texy je kvasi a polovičaté „řešení“ pouze na případy, kdy není zapisovaný kód příliš komplikovaný – ideálně jen tu a tam kurzívá a tučné písmo.

    před 6 měsíci | odpovědět

Napište komentář

Text komentáře
Kontakt

(kvůli gravataru)



*kurzíva* **tučné** "odkaz":http://example.com /--php phpkod(); \--

phpFashion © 2004, 2024 David Grudl | o blogu

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.