System szablonów Pytigona bazuje na szablonach django:
Time: {{time_str}}
https://docs.djangoproject.com/en/2.2/ref/templates/language/
Szablon pytigona
Zamiarem autora było poprawić czytelość szablonów django nie rezygnując ze 100% kompatybilności z nimi. Najbardziej znaczącą zmianą w stosunku do Django było wprowadzenie wcięć. Zasady są następujące:
jeżeli pierwszy nie będący spacją znak w linii nie zaczyna się od litery i znaku '%', linia tekstu nie jest przetwarzana. "
jeżeli pierwszy znak w linii nie będący spacją jest '.' - znak jest pomijany, reszta nie jest przetwarzana.
".abc" => "abc"
"h1" => "
""" h1 div p """ => "
"p class=test" => "
" "p class=test,,,style=padding:10...Hello world!" => "Hello world!
"jeżeli pierwszym znakiem w linii nie będącym spacją jest '%':
"%% test" => "{% block test %}" "%% test:" => "{% block test %}{% endblock test %}"
jeżeli linia zanczyna się od sekwencji "===>" kolejne linie przekształcane są bez zmian aż skończy się fragment wyznaczony przez wcięcia:
""" style type=text/css===> .table th { background-color: #CEE; }
body {
margin: 5px;
font-size: 12px;
}
body """ => """
"""""" style type=text/css>>> .table th { background-color: #CEE; }
body { margin: 5px; font-size: 12px; }|| | body """ => """
"""