Został udostępniony nowy język, Hypertag (http://hypertag.io), służący do generowania dokumentów i tworzenia szablonów HTML. Jego składnia wzorowana jest na języku Python i opiera się na indentacji, dzięki czemu zapewnia dużą przejrzystość i łatwość użytkowania, m.in. poprzez brak tagów zamykających. Hypertag posiada szereg oryginalnych cech:
- możliwość definiowania własnych re-używalnych tagów bezpośrednio w skrypcie,
- zaawansowane wyrażenia i wsparcie dla wszystkich operatorów Python,
- struktura modułów i instrukcje importu wzorowane na Python,
- bloki sterujące (if, for, while, try), zmienne lokalne i kontekstowe,
- przetwarzanie potokowe (pipeline syntax) i możliwość użycia dowolnej funkcji jako filtra,
- operacje na drzewie DOM dokumentu w trakcie jego generowania,
- pełna integracja z Django,
- wiele innych...
Język Hypertag jest dostępny na GitHub i PyPI. Pełna dokumentacja na stronie: http://hypertag.io
Przykłady skryptów Hypertag...
PRZYKŁAD #1:
ul
li | Cat
li | Dog
li | Rabbit & Guinea pig
Powyższy skrypt zawiera tagowane bloki tekstowe i generuje następujący kod HTML (konwersja znaków specjalnych, np. &, realizowana jest automatycznie):
<ul>
<li>Cat</li>
<li>Dog</li>
<li>Rabbit & Guinea pig</li>
</ul>
PRZYKŁAD #2:
h1 | Table of Contents
div
for k in [1,2,3]:
a href='#heading-{k}' : b : i | Heading no. $k
Powyższy skrypt zawiera blok sterujący (for), połączone łańcuchowo tagi (a, b, i) oraz atrybut (href). Wynikowy HTML to:
<h1>Table of Contents</h1>
<div>
<a href="#heading-1"><b><i>Heading no. 1</i></b></a>
<a href="#heading-2"><b><i>Heading no. 2</i></b></a>
<a href="#heading-3"><b><i>Heading no. 3</i></b></a>
</div>
Język Hypertag może być wywoływany bezpośrednio z kodu Python, lub podłączony do Django jako silnik szablonów. Skrypty Hypertag mogą korzystać ze wszystkich filtrów dostępnych w Django. Szczegóły na stronie: http://hypertag.io