2010-12-30 13 views
14

Podczas używania Django do szablonowania html, jak utworzyć dobre formatowanie znaczników html.Tworzenie czytelnego html z szablonami django

Próbuję użyć bloków treści. Ale bloki treści pojawiają się na różnych poziomach wcięcia w różnych szablonach. Jak mogę przekonwertować bloki treści tak, aby były wcięte, jakby to było, gdyby ktoś miał napisać html.

Mam ten sam problem z nowymi liniami; Mogę rozbić wszystkie bloki razem w szablonie. W tym momencie HTML wygląda lepiej, ale szablony są nieosiągalne.

Domyślam się, jak utworzyć ładny znacznik HTML za pomocą systemu szablonów Django?

Jestem zaskoczony dotychczasowymi odpowiedziami. Uważam, że dobrze sformatowany HTML pomaga w pisaniu odpowiedniego kodu CSS i JavaScript. Oprócz tego ułatwi to dodawanie treści później.

+1

Dlaczego układ HTML ma znaczenie? –

+1

Wolę zrobić dokładnie odwrotnie, zgnieść kod HTML tak mocno, jak to tylko możliwe, tak aby miał jak najmniej znaków. –

+0

@rebus: Uzgodnione - mniejsze pliki do pobrania szybsze. Wydaje się, że czas spędzony na rozmyślaniu z HTML to strata czasu.Po pierwsze, czas zmarnowany na rozwój. Po drugie, czas zmarnował przeniesienie białych znaków. Po trzecie, czas zmarnowany na konserwację, starając się zachować wszystkie cenne (i bezsensowne) białe spacje. –

Odpowiedz

14

Christian S. Perone z Pyevolve ma exactly what you're looking for. Używa oprogramowania pośredniego do przechwytywania obiektu HTTPResponse i uruchamiania go przez BeautifulSoup.

Wyobrażam sobie jednak, że Twoja witryna ucierpi z powodu niewielkiego wyniku. Zalecam wykonanie niektórych testów porównawczych przed wdrożeniem tego oprogramowania pośredniczącego w witrynie produkcyjnej.

0

polecam uruchomić moc silnika poprzez szablon HTML porządniej, takich jak µTidylib.

1

Czytelność HTML nie ma znaczenia. W systemie takim jak Django lub Rails HTML jest formatem wyjściowym, a nie źródłowym. Kiedy ludzie edytują HTML ręcznie, mają rację, obawiając się wcięć i spacji, ponieważ jest to format źródłowy, a ktoś będzie musiał go edytować w przyszłości. Ale dane wyjściowe szablonów to tylko: wynik. Przeglądarka nie dba o wcięcie. W tym momencie jedynymi osobami, które czytają HTML, są osoby oglądające View - Source.

+0

A jedyną osobą, która to robi, jest prawdopodobnie kierownik projektu PO, który jest teraz gotów zainwestować kilka tysięcy dolarów, aby zadowolić jego oczy ;-) +1 –

+0

Zakłada to, że nigdy nie patrzy się na dane wyjściowe, aby spróbować i debugować szablony. –

0

Jeśli używasz szablonów Django zrobić string-formatowanie długich ciągów proste-ale można użyć potrójnych cudzysłowów Pythona z .format() w def funkcja:

def templated_string(context_dict): 
    return '''This is an example 
of a long string across multiple lines. 
It can be used to format {something} for 
{name}'s own purposes, even though 
it looks funny in code'''.format(**context_dict) 

Następnie templated_string({'name': 'rileymat', 'something': 'whatever you want'}) robi coś sensownego. Możesz generować nieprzetworzony HTML w ten sposób ... który ma dokładnie te spacje, o które prosisz.