2013-09-07 21 views
14

Używam Twig i chciałbym być w stanie zminimalizować wyjście HTML. Jak mam to zrobic? Próbowałem {% spaceless %}, ale to wymaga dodania tego do wszystkich moich szablonów. Czy mogę dodać minifikację w silniku Twig?Jak zminimalizować HTML za pomocą Twig?

+1

Cóż, klucz programista gałązka wyraźnie [wskazano] (https://github.com/fabpot/Twig/issues/624) Gałązka że w ogóle, a 'spaceless' w szczególności nie jest zaprojektowany jako minifikacji narzędzie. Co powiesz na używanie Tidy lub 'mod_strip' zamiast? – raina77ow

+0

Pytanie Kinda nooba, ale jak mam to zaimplementować w silniku Twig? – daviesgeek

+1

Możesz dodać '{% spaceless%}' do swoich szablonów bazowych otaczających znaczniki ''. W ten sposób odnosi się to również do każdego szablonu podrzędnego. – adamors

Odpowiedz

-5

Zastosowanie

{% spaceless %} 
YOUR WHOLE PAGE GOES HERE HTML, TWIG, JS EVERYTHING... 
{% endspaceless %} 

może się okazać, że twoja wersja gałązka nie rozpoznaje znaczniki, wystarczy zaktualizować najnowszą wersję patyk.

To zminimalizuje wyjściowy HTML wygenerowany, a ładowanie strony pójdzie w górę, ponieważ tylko ładuje skompilowaną wersję html.

Mimo że nadal można wyświetlić kod w czytelnej sytuacji.

+16

'spaceless' NIE jest przeznaczone do tego celu. "Ten znacznik nie ma na celu" zoptymalizowania "rozmiaru generowanej treści HTML, ale jedynie uniknięcia dodatkowych odstępów między znacznikami HTML, aby w niektórych okolicznościach uniknąć wyświetlania dziwnych informacji w przeglądarce." http://twig.sensiolabs.org/doc/tags/spaceless.html – turibe

+0

Ponadto, minifing! = usuwanie białych znaków. Powinien również usunąć wszystkie komentarze, na przykład. To cecha, którą powinni dodać w Twig –

2

To może ci pomóc niewiele.

użyj html-compress-twig, możesz kompresować html, css, js w jednym package.use composer, aby zainstalować composer require nochso/html-compress-twig i musisz dodać rozszerzenie z gałązką za pomocą tego kodu.

$app->extend('twig_theme', function($twig_theme, $ojt) { 
$twig_theme->addExtension(new nochso\HtmlCompressTwig\Extension()); 
return $ojt_theme;}); 

w końcu przejdź do pliku szablonu dodaj ten kod.

{% htmlcompress %} ....your coding... {% endhtmlcompress %} 
{{ htmlcompress('<ul> <li>') }} 
{{ '<ul> <li>'|htmlcompress }} 
Powiązane problemy