Template Attribute Language

The Template Attribute Language (TAL) is a templating language used to generate dynamic HTML and XML pages. Its main goal is to simplify the collaboration between programmers and designers. This is achieved by embedding TAL statements inside valid HTML (or XML) tags which can then be worked on using common design tools.

TAL was created for Zope but is used in other Python-based projects as well.

Attributes

The following attributes are used, normally prefixed by "tal:":

define
creates local variables, valid in the element bearing the attribute (including contained elements)
condition
decides whether or not to render the tag (and all contained text)
repeat
creates a loop variable and repeats the tag iterating a sequence, e.g. for creating a selection list or a table
content
replaces the content of the tag
replace
replaces the tag (and therefore is not usable together with content or attributes)
attributes
replaces the given attributes (e. g. by using tal:attributes="name name; id name" the name and id attributes of an input field could be set to the value of the variable "name")
omit-tag
allows to omit the start and end tag and only render the content if the given expression is true.
on-error
if an error occurs, this attribute works like the content tag.

If a tag has more than one TAL attributes, they are evaluated in the above (fairly logical) order.

In cases when no tag is present which lends itself to take the attributes, special TAL tags can be used, making the "tal:" prefix optional. e.g.:

<tal:if condition="context/itemlist">
...
</tal:if>

would cause the code inside the tal:if tags to be used whenever the context (whatever the application server defines the context to be, e.g. an object) contains variable "itemlist" with a true value, e.g. a list containing at least one element. The identifier following the colon is arbitrary; it simply needs to be there, and to be the same for the opening and closing tag.

METAL

The Macro Expansion Template Attribute Language (METAL) complements TAL, providing macros which allow the reuse of code across template files. Both were created for Zope but are used in other Python projects as well.

METAL complements TAL with the ability to reuse code. It allows the developer to define and use macros, which in turn may have slots; when using a macro, variational content can be specified for a slot.

When generating XML documents, the XML namespace must be specified (xmlns:metal="http://xml.zope.org/namespaces/metal").

METAL attributes

The following attributes are recognised, normally requiring a „metal:“ prefix:

define-macro
creates a macro
define-slot
creates a slot inside a macro
use-macro
uses a macro (normally given via a TALES path expression)
fill-slot
when using a macro, replaces the default content of the given slot
extend-macro
since Zope v3: extends a macro, comparable to subclassing, by redefining of slots

Normally, just one of those is used at a time.

In cases when no tag is present which lends itself to take the attributes, and in special cases when more than one METAL attribute is needed, special METAL tags can be used, making the „metal:“ prefix optional. E. g. (sketched with Roundup in mind):

 <html metal:define-macro="icing">
 ...
 <metal:myslot define-slot="optional-form">
 ...
 </html>
 
 <html metal:use-macro="templates/page/macros/icing">
 <form metal:fill-slot="optional-form" action="."
         tal:attributes="action context/designator">
 ...
 </form>
 </html>

Usage

TAL/TALES/METAL are used by the following projects:

Other implementations

Besides the original Zope implementation, there are (not exhaustive):

Python

C#

  • SharpTAL

Go (Golang)

  • tal, a native Go implementation of TAL, TALES and METAL

JavaScript

Java

  • JPT: Java Page Templates
  • JavaZPT
  • ZPT-Java

Perl

  • PETAL, the Perl Template Attribute Language
  • Template-TAL

Raku

  • Flower, a Raku implementation of TAL, with some Petal and PHPTAL extensions.

PHP

  • PHPTAL
  • Twital
  • Biscuit
  • zTAL

XSL

  • XSLTal, transforming TAL via XSLT to XSLT

Common Lisp

  • TALCL: A library that implements the TAL template language for common lisp

Similar implementations

  • ATal – Not really a TAL implementation, but inspired on TAL concepts
  • Thymeleaf - Not a TAL implementation, but a similar "natural template" language

References

Read other articles:

Lokasi Vanadzor. Vanadzor (Armenia: Վանաձոր), sebelumnya disebut sebagai Karakilisa, adalah kota yang terletak di provinsi Lori, Armenia. Pada tahun 2002, kota ini memiliki populasi sebesar 170.800 jiwa. Wali kotanya adalah Samvel Darbinyan. Kota kembar  Prancis Bagneux, Prancis  Amerika Serikat Pasadena, California, Amerika Serikat  Georgia Batumi, Georgia Pranala luar Official website More information about Vanadzor lbsKota di Armenia Abovyan · Agarak �...

 

Mal LampungLokasiBandar Lampung, LampungAlamatJln. Z.A Pagaralam, Kecamatan KedatonTanggal dibuka2012Jumlah lantai3 Mal Lampung atau Ramayana Mal Lampung adalah sebuah pusat perbelanjaan di Bandar Lampung, Indonesia. Pertokoan ini terletak di Jalan ZA Pagar Alam Rajabasa, Bandar Lampung. Mal ini mempunyai penyewa-penyewa baik dari perusahaan nasional maupun internasional. Mal Lampung ini memiliki total luas 14.158 m2[1] Referensi ^ Ramayana Lampung[pranala nonaktif permanen] P...

 

Artikel ini perlu diwikifikasi agar memenuhi standar kualitas Wikipedia. Anda dapat memberikan bantuan berupa penambahan pranala dalam, atau dengan merapikan tata letak dari artikel ini. Untuk keterangan lebih lanjut, klik [tampil] di bagian kanan. Mengganti markah HTML dengan markah wiki bila dimungkinkan. Tambahkan pranala wiki. Bila dirasa perlu, buatlah pautan ke artikel wiki lainnya dengan cara menambahkan [[ dan ]] pada kata yang bersangkutan (lihat WP:LINK untuk keterangan lebih lanjut...

Voce principale: Empoli Football Club. Empoli Football ClubStagione 2003-2004Sport calcio Squadra Empoli Allenatore Daniele Baldini (1ª-6ª giornata) Attilio Perotti (dalla 7ª giornata) Presidente Fabrizio Corsi Serie A17º posto (retrocesso in Serie B) Coppa ItaliaSecondo turno Maggiori presenzeCampionato: Di Natale, Rocchi (33)Totale: Di Natale, Rocchi (35) Miglior marcatoreCampionato: Rocchi (11)Totale: Rocchi (11) StadioCarlo Castellani Abbonati3 277 Maggior numero di spettat...

 

كاليسبيل     الإحداثيات 48°12′00″N 114°19′00″W / 48.2°N 114.31666666667°W / 48.2; -114.31666666667   [1] تقسيم إداري  البلد الولايات المتحدة[2][3]  التقسيم الأعلى مقاطعة فلاتهيد  عاصمة لـ مقاطعة فلاتهيد  خصائص جغرافية  المساحة 30.877707 كيلومتر مربع30.358276 كيلومت�...

 

ManoramaManorama di Acara Asosiasi Jurnalis SinemaLahirGopishantha26 Mei 1937Mannargudi, Kepresidenan Madras, India Britania (sekarang Tamil Nadu, India)Meninggal10 Oktober 2015(2015-10-10) (umur 78)Chennai, Tamil Nadu, IndiaNama lainAachiTahun aktif1958–2015Suami/istriS. M. Ramanathan (m.1964; div.1966)AnakBoopathyOrang tuaAyah: Kasiyappan Kilakudaiyar Ibu: Ramamirtham Gopishantha (26 Mei 1937 - 10 Oktober 2015), yang lebih dikenal dengan nama panggungnya Manorama, juga dis...

Zoo in Punjab, Pakistan Lahore ZooMain entrance of the zoo31°33′22″N 74°19′33″E / 31.55611°N 74.32583°E / 31.55611; 74.32583Date opened1872[1] 146 Years ago.LocationMall Road, Lahore,Punjab, PakistanLand area25 acres (10 ha)(0.1 km2)[2]No. of animals~1400[1]No. of species~140[1]Annual visitors3 million[3]MembershipsSouth Asian Zoo Association for Regional Cooperation[3]Major exhibitsElephant House, G...

 

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: コルク – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年4月) コルクを打ち抜いて作った瓶の栓 コルク(木栓、�...

 

Sint Odiliënberg. Basilika Santo Wiro, Plechelmus dan Otgerus Seni rupa Mosan adalah sebuah gaya seni rupa regional dari lembang Meuse di Belgia, Belanda, dan Jerman. Meskipun dalam segi perbatasan, istilah tersebut ditujukan kepada seni rupa dari wilayah tersebut sepanjang sejarah, seni tersebut biasanya merujuk kepada seni rupa Romanesque, dengan arsitektur Romanesque, ukiran batu, karya metal, enamelling dan iluminasi manuskrip mencapai puncaknya pada abad ke-11, ke-12 dan ke-13. Referens...

Computation model defining an abstract machine For other uses, see Turing machine (disambiguation). Turing machines Machine Turing machine equivalents Turing machine examples Turing machine gallery Variants Alternating Turing machine Neural Turing machine Nondeterministic Turing machine Quantum Turing machine Post–Turing machine Probabilistic Turing machine Multitape Turing machine Multi-track Turing machine Symmetric Turing machine Total Turing machine Unambiguous Turing machine Universal ...

 

هذه المقالة عن المجموعة العرقية الأتراك وليس عن من يحملون جنسية الجمهورية التركية أتراكTürkler (بالتركية) التعداد الكليالتعداد 70~83 مليون نسمةمناطق الوجود المميزةالبلد  القائمة ... تركياألمانياسورياالعراقبلغارياالولايات المتحدةفرنساالمملكة المتحدةهولنداالنمساأسترالي�...

 

Військово-музичне управління Збройних сил України Тип військове формуванняЗасновано 1992Країна  Україна Емблема управління Військово-музичне управління Збройних сил України — структурний підрозділ Генерального штабу Збройних сил України призначений для планува...

See also: Wildlife of Korea The Siberian tiger is the national animal of South Korea. Korean Peninsula and surrounding islands Once common throughout Korea, the red fox is now extremely rare. The Amur leopard was one of the most abundant large carnivores in the Korean peninsula. However, they are extremely rare in North Korea. Approximately 100 species of mammal are known to inhabit, or to have recently inhabited, the Korean Peninsula and its surrounding waters. This includes a few species t...

 

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Heksadesimal – berita · surat kabar · buku · cendekiawan · JSTOR Sistem bilangan Hindu-Arab Arab barat Arab timur Bengali Gurmukhi India Sinhala Tamil Bali Burma Dzongkha Gujarati Jawa Khmer Lao Mongolia...

 

CephalocaridaRentang fosil: 200–0 jtyl PreЄ Є O S D C P T J K Pg N Permian atau Trias sampai sekarang Hutchinsoniella macracantha, salah satu spesies dari Cephalocarida Klasifikasi ilmiah Kerajaan: Animalia Filum: Arthropoda Subfilum: Crustacea Kelas: Cephalocarida Ordo: Brachypoda Famili: HutchinsoniellidaeSanders, 1955 Genera Chiltoniella Hampsonellus Hutchinsoniella Lightiella Sandersiella Sinonim Lightiellidae Jones 1961 Cephalocarida adalah kelas dalam subfilum Crustacea[1&...

روبيه توركوين الاسم الكامل نادي روبيه توركوين الأولمبي تأسس عام 1945 انحل عام 1970 البلد  فرنسا الألقاب والأوسمة المحلية الدوري الفرنسي (1) الطقم الأساسي الطقم الاحتياطي تعديل مصدري - تعديل   نادي روبيه توركوين (بالفرنسية: CO Roubaix-Tourcoing)‏ هو نادي كرة قدم فرنسي، تأسس في سنة 1945...

 

Bangladeshi politician (1950–2021) Abdul Matin Khasruআবদুল মতিন খসরুKhasru in 2018Minister of Law and JusticeIn office14 January 1997 – 15 July 2001Prime MinisterSheikh HasinaPreceded byMirza Ghulam HafizSucceeded byMoudud AhmedMember of Parliamentfor Comilla-5In office5 March 1991 – 24 November 1995Preceded byMohammad YunusIn office14 July 1996 – 13 July 2001Preceded byMujibur RahmanIn office25 January 2009 – 14 April 20...

 

Representación gráfica de la ley de Gay-Lussac: a volumen constante V, la presión P es proporcional a la temperatura La ley de Gay-Lussac[1]​ establece que la presión de un volumen fijo de un gas, es directamente proporcional a su temperatura. Simbología Simbología Símbolo Nombre Unidad k {\displaystyle k} Constante de proporcionalidad Pa / K p {\displaystyle p} Presión Pa p 1 {\displaystyle p_{1}} Presión inicial Pa p 2 {\displaystyle p_{2}} Presión final Pa T {\displaystyle ...

Part of the American Revolutionary War Battles of SaratogaPart of the American Revolutionary War's Saratoga campaignSurrender of General Burgoyne, an 1822 portrait by John Trumbull depicting John Burgoyne, a British Army general, surrendering to General Horatio Gates, who refused to take his sword. The painting presently hangs in the United States Capitol Rotunda.DateSeptember 19 (Thursday) and October 7, 1777 (Thursday)LocationStillwater, Saratoga County, New York42°59′56″N 73°38′15�...

 

Form of democracy emphasizing socialism For other uses, see Socialist Democracy (disambiguation). Not to be confused with Democratic socialism or Social democracy. Part of a series onSocialism HistoryOutline Development Age of the Enlightenment French Revolution Revolutions of 1848 Socialist calculation debate Socialist economics Ideas Calculation in kind Collective ownership Cooperative Common ownership Critique of political economy Economic democracy Economic planning Equal liberty Equal op...