Mallattributspråk
Template Attribute Language (TAL) är ett mallspråk som används för att generera dynamiska HTML- och XML -sidor. Dess huvudsakliga mål är att förenkla samarbetet mellan programmerare och designers. Detta uppnås genom att bädda in TAL-satser i giltiga HTML (eller XML)-taggar som sedan kan arbetas med med vanliga designverktyg.
TAL skapades för Zope men används även i andra Python -baserade projekt.
Attribut
Följande attribut används, normalt med prefixet " tal:
":
- define
- skapar lokala variabler, giltigt i elementet som bär attributet (inklusive inneslutna element)
- villkoret
- avgör om taggen (och all innesluten text) ska renderas eller inte.
- repeat
- skapar en loopvariabel och upprepar taggen genom att iterera en sekvens, t.ex. för att skapa ett urval list eller en tabell
- innehåll
- ersätter innehållet i taggen
- ersätt
- ersätter taggen (och är därför inte användbar tillsammans med innehåll eller attribut)
- attribut
- ersätter de givna attributen (t.ex. genom att använda
tal:attributes="namnnamn; id-namn"
namnet och id-attribut för ett inmatningsfält skulle kunna ställas in på värdet för variabeln "name
") - omit-tag
- tillåter att utelämna start- och sluttaggen och endast rendera innehållet om det givna uttrycket är sant.
- on-error
- om ett fel uppstår, fungerar detta attribut som innehållstaggen.
Om en tagg har mer än ett TAL-attribut, utvärderas de i ovanstående (ganska logiska) ordning.
I de fall då det inte finns någon tagg som lämpar sig för att ta attributen, kan speciella TAL-taggar användas, vilket gör prefixet " tal:
" valfritt. t.ex:
<tal:if condition= "context/itemlist" > ... </tal:if>
skulle få koden inuti tal:if-
taggarna att användas närhelst kontexten (oavsett vilken applikationsservern definierar sammanhanget, t.ex. ett objekt) innehåller variabeln " itemlist
" med ett sant värde, t.ex. en lista som innehåller minst ett element. Identifieraren efter kolon är godtycklig; den behöver helt enkelt vara där och vara densamma för öppnings- och stängningsetiketten.
METALL
Macro Expansion Template Attribute Language (METAL) kompletterar TAL och tillhandahåller makron som tillåter återanvändning av kod över mallfiler. Båda skapades för Zope men används också i andra Python- projekt.
METAL kompletterar TAL med möjligheten att återanvända kod. Det tillåter utvecklaren att definiera och använda makron, som i sin tur kan ha slots ; när ett makro används kan variationsinnehåll anges för en plats.
När XML- dokument genereras måste XML-namnrymden anges ( xmlns:metal="http://xml.zope.org/namespaces/metal" )
.
METALL attribut
Följande attribut känns igen, normalt kräver ett „ metall:
“ prefix:
- define-macro
- skapar ett makro
- define-slot
- skapar en lucka inuti ett makro
- use-macro
- använder ett makro (normalt givet via ett TALES sökvägsuttryck)
- fill-slot
- när du använder ett makro, ersätter standardinnehållet i det givna luckan
- extend-makro
- eftersom Zope v3: utökar ett makro, jämförbart med underklassning , genom att omdefiniera slots
Normalt används bara en av dem åt gången.
I de fall då det inte finns någon tagg som lämpar sig för att ta attributen, och i speciella fall då mer än ett METAL-attribut behövs, kan speciella METAL-taggar användas, vilket gör prefixet "metal:" valfritt. T.ex. (skissad med Roundup i åtanke):
< html metal:define-macro = "isning" > ... < metal:myslot define-slot = "valfri-form" > ... </ html > < html metal:use-macro = "mallar/sida/makron /icing" > < form metal:fill-slot = "valfritt-form" action = "." tal:attributes = "action context/designator" > ... </ form > </ html >
Användande
TAL/TALES/METAL används av följande projekt:
- Zope (webbapplikationsserver)
- Roundup (problemspårare)
Andra implementeringar
Förutom den ursprungliga Zope- implementeringen finns det (inte uttömmande):
Pytonorm
- EnkelTAL
- OpenTAL
- ZPT, en fristående version av Zope Page Templates
- Chameleon, en snabb omimplementering av Zope-sidmallar
C#
- SharpTAL
Gå (Golang)
- tal, en infödd Go-implementering av TAL, TALES och METAL
JavaScript
- template-tal , TAL Implementering för NodeJs
- jstal
- Distalt
- DomTal
- ZPT-JS
Java
- JPT: Java sidmallar
- JavaZPT
- ZPT-Java
Perl
- PETAL, Perl Template Attribut Language
- Mall-TAL
Raku
- Flower, en Raku -implementering av TAL, med några Petal- och PHPTAL-tillägg.
PHP
- PHPTAL
- Twital
- Kex
- zTAL
XSL
Vanlig Lisp
- TALCL: Ett bibliotek som implementerar mallspråket TAL för vanlig lisp
Liknande implementeringar
- ATal – Egentligen inte en TAL-implementering, men inspirerad av TAL-koncept
- Thymeleaf - Inte en TAL-implementering, utan ett liknande "naturlig mall"-språk
externa länkar
- Zope Sidmallar Referens (Zope Book)