CurlyBracketsFilter – odstranění whitespace při production módu
- Ondřej Mirtes
- Člen | 1536
Ahoj,
už to tu někde na fóru padlo – co přidat do CBF volitelně zapnutelnou
feature, která by na ostré verzi odstraňovala přebytečné entery, mezery a
tabulátory v HTML?
Asi by nebyl problém napsat si vlastní filtr a ten poté zaregistrovat do šablony, jenže v takovém případě se nejspíše nedostanou ty jeho úpravy do cache a odstraňování whitespaces by probíhalo při každém načtení, což si nějaký výkon vezme a není to optimální. Proto to začlenění do CBF.
- redhead
- Člen | 1313
LastHunter napsal(a):
Asi by nebyl problém napsat si vlastní filtr a ten poté zaregistrovat do šablony, jenže v takovém případě se nejspíše nedostanou ty jeho úpravy do cache a odstraňování whitespaces by probíhalo při každém načtení, což si nějaký výkon vezme a není to optimální. Proto to začlenění do CBF.
Proč by se to nemělo cachovat?? Když jsem vytvářel vlastní filter tak se mi to cachovalo.
Třída Template se cachuje sama o sobě. Není potřeba žádná kontrola nad filterem.
Jinak zprasení HTML kódu do jednoho řádku nejsem zrovna zastánce :)
Editoval redhead (24. 8. 2009 16:05)
- Ondřej Mirtes
- Člen | 1536
Aha, tak to jo, v tom případě bych se o ten filtr pokusit mohl :)
HTML kód do jednoho řádku – na development serveru samozřejmě ne, tam potřebuješ přehlednost, ale na ostrém serveru bych všechno dával do jednoho řádku (HTML/CSS/JS) – znepřehledníš to tak pro případného zloděje, ulehčíš přenosové lince i parserům prohlížečů.
- Honza Kuchař
- Člen | 1662
Jinak zprasení HTML kódu do jednoho řádku nejsem zrovna zastánce :)
Když to člověk skládá po kouskách z šablon, tak to taky nevypadá zrovna nejlépe. Na druhou stranu, na produkčním serveru proč ne.
- Honza Marek
- Člen | 1664
Existuje na to helper strip
, který se dá zaregistrovat jako
filtr. Ale na použití je potřeba dávat pozor, protože to odstraňuje
odentrování i třeba v javascriptech a existenci komentářů do konce
řádky to nijak neřeší :-D
- Ondřej Mirtes
- Člen | 1536
Honza M. napsal(a):
Existuje na to helper
strip
, který se dá zaregistrovat jako filtr. Ale na použití je potřeba dávat pozor, protože to odstraňuje odentrování i třeba v javascriptech a existenci komentářů do konce řádky to nijak neřeší :-D
Zkusil jsem ho zaregistrovat:
$template->registerFilter('TemplateHelpers::strip');
A místo vykreslení layoutu jsem do prohlížeče dostal toto (jakoby se CBF vůbec nedostal ke slovu):
{block #content} {!_'content'}
…což je obsah mé Default.default.phtml
šablony.
Navíc si myslím, že tento helper by mi zlikvidoval i texty, které mám přímo v šabloně apod.
- David Grudl
- Nette Core | 8218
Filtr je nutné registrovat takto:
presenter:
public function templatePrepareFilters($template)
{
parent::templatePrepareFilters($template);
$template->registerFilter('Nette\Templates\TemplateHelpers::strip');
}
strip() jsem vám upravil, aby ignoroval značky <script>
,
<pre>
a <textarea>
, nicméně stejně
z toho neočekávejte reálnou úsporu větší než 10 %.
- Ondřej Mirtes
- Člen | 1536
Super! Funguje dle očekávání :)
Hlásím ale bug: helper strip
pokazí velké Š. Všechna
ostatní písmena projdou v pohodě, jen to velké Š ne.
V šabloně:
ÁĚÉČŘŠŽÝÍŚ
Výstup:
ÁĚÉČŘ� ŽÝÍŚ