Procesor šablony - Template processor

A procesor šablony (také známý jako stroj šablony nebo analyzátor šablon) je software navržen tak, aby kombinoval šablony s datový model k vytvoření výsledkových dokumentů.[1][2][3] Jazyk, ve kterém jsou šablony napsány, je známý jako jazyk šablony nebo šablonový jazyk. Pro účely tohoto článku je výsledným dokumentem jakýkoli druh formátovaného výstupu, včetně dokumenty, webové stránky nebo zdrojový kód (v generování zdrojového kódu ), buď celé, nebo ve fragmentech. Šablona je obvykle zahrnuta jako součást a systém webových šablon nebo aplikační rámec, a mohou být použity také jako a preprocesor nebo filtr.
Typické vlastnosti
Šablony obvykle obsahují funkce společné pro většinu vyšších úrovní programovací jazyky, s důrazem na funkce pro zpracování prostý text.
Mezi tyto funkce patří:
Integrované šablony
Zatímco procesory šablon jsou obvykle samostatným kusem softwaru, který se používá jako součást systému nebo rámce, ve funkcích zpracování řetězce jsou obvykle zahrnuty jednoduché šablonové jazyky. univerzální programovací jazyky, a zejména v programech pro zpracování textu textové editory nebo textové procesory. Templating languages are usually simple substitution-only languages, rozdíl od sofistikovanějších zařízení v plnohodnotných šablonových procesorech, ale mohou obsahovat určitou logiku.
Mezi jednoduché příklady patří řetězce formátu tisku, nalezený v mnoha programovacích jazycích, a úryvky, nalezený v řadě textových editorů a editory zdrojového kódu. V textových procesorech šablony jsou běžnou funkcí, zatímco automatické vyplňování šablon se často označuje jako sloučení emailů.
Ilustrativní příklad doplňkové povahy analýza a šablonování je s
(náhradní) příkaz v sed textový procesor, pocházející z vyhledávání a nahrazování v vyd textový editor. Substituční příkazy mají tvar s / regexp / nahrazení /
, kde regulární výraz
je regulární výraz, pro analýzu vstupu a výměna, nahrazení
je jednoduchá šablona pro výstup, buď doslovný text, nebo formátovací řetězec obsahující znaky &
pro „celý zápas“ nebo speciální únikové sekvence 1
přes 9
pro nth podvýraz. Například, s / (kočka | pes) s? / 1 s / g
nahradí všechny výskyty výrazu „kočka“ nebo „pes“ výrazem „kočky“ nebo „psi“, aniž by došlo k duplikování existujícího „s“: (kočka | pes)
je první (a jediný) podvýraz v regulárním výrazu a 1
ve formátu řetězec to nahradí do výstupu.
Prvky systému
Všechny systémy pro zpracování šablon se skládají alespoň z těchto primárních prvků:
- přidružený datový model;
- jeden nebo více zdrojové šablony;
- procesor nebo stroj šablony;
- generovaný výstup ve formě výsledkové dokumenty.
Datový model
Může to být relační databáze, zdrojový soubor, jako je XML, alternativní formát plochá databáze souborů, a tabulkový kalkulátor nebo jakýkoli jiný zdroj předformátovaných dat. Některé systémy zpracování šablon jsou omezeny v typech dat, která lze použít. Jiné jsou navrženy pro maximální flexibilitu a umožňují mnoho různých typů dat.
Zdrojová šablona
Zdrojové šablony jsou tradičně specifikovány:
- podle již existujícího programovacího jazyka;
- podle speciálně definovaného jazyka šablony;
- podle vlastností hostitelské softwarové aplikace; nebo
- podle hybridní kombinace některých nebo všech výše uvedených.
Šablona motoru
Nástroj šablony je zodpovědný za:
- připojení k datovému modelu;
- zpracování kódu uvedeného ve zdrojových šablonách; a
- směrování výstupu na konkrétní potrubí, textový soubor nebo proud.
Některé šablony motorů navíc umožňují další možnosti konfigurace.
Výsledkové dokumenty
Mohou se skládat z celého dokumentu nebo fragmentu dokumentu.
Použití
Zpracování šablon se používá v různých kontextech pro různé účely. Specifický účel je obvykle podmíněn softwarová aplikace nebo používaný modul šablony. Flexibilita systémů zpracování šablon však často umožňuje nekonvenční použití pro účely, které původně nezamýšleli původní návrháři.
Šablona motoru
Engine šablon je specifický druh modulu pro zpracování šablon, který vykazuje všechny hlavní rysy moderního programovací jazyk. Termín stroj šablony se vyvinulo jako zobecněný popis programovacích jazyků, jejichž primárním nebo výlučným účelem bylo zpracování šablon a dat na výstup textu. Používání tohoto výrazu se uplatňuje především vývoj webových aplikací používat systém webových šablon, a aplikuje se také na jiné kontexty.[4]
Generování dokumentů
Rámečky generování dokumentů obvykle používají zpracování šablon jako centrální model pro generování dokumentů.
Generování zdrojového kódu
Nástroje pro generování zdrojového kódu podporují generování zdrojový kód (jako výsledek dokumenty) z abstraktních datových modelů (např. UML, relačních dat, podnikových datových úložišť specifických pro doménu) pro konkrétní aplikační domény, konkrétní organizace nebo při zjednodušení výrobního procesu pro počítačoví programátoři.
Softwarová funkčnost
A web stroj šablony zpracovává webové šablony a zdrojová data (obvykle z relační databáze ) k výrobě jednoho nebo více výstupů webové stránky nebo fragmenty stránky. Obvykle je zahrnuta jako součást a systém webových šablon nebo aplikační rámec. V současné době se software pro zpracování šablon nejčastěji používá v kontextu vývoje pro web.
Srovnání
XSLT je model zpracování šablon navržený uživatelem W3C. Je určen především pro transformace na XML data (do webové dokumenty nebo jiný výstup).
Programovací jazyky jako Perl, Krajta, PHP, Rubín, C#, a Jáva podpora zpracování šablon buď nativně, nebo prostřednictvím doplňkových knihoven a modulů. Stránky JavaServeru,[5] Stránky aktivního serveru,[6] Genshi (pro Python) a eRuby jsou příklady motorů šablon navržených speciálně pro vývoj webových aplikací.
Zpracování šablon je navíc někdy zahrnuto jako dílčí vlastnost softwarových balíčků jako textové editory, IDE a systémy pro správu relačních databází.
Výhody používání šablonových motorů
- podporuje organizaci zdrojového kódu do provozně odlišných vrstev (viz např. MVC )
- zvyšuje produktivitu snížením zbytečné reprodukce úsilí
- vylepšuje týmovou práci tím, že umožňuje oddělení práce na základě souboru dovedností (např. umělecké vs. technické)
Viz také
- Automatizace dokumentů
- Modelování dokumentů
- Programovací jazyk specifický pro doménu
- Glosář pojmů operačních systémů § Šablona
- Internacionalizace a lokalizace
- Rozvržení motorů
- Makro (informatika)
Reference
- ^ Niemeyer, Patrick (2002). Učení jazyka Java. Sebastopol: O'Reilly. ISBN 0-596-00285-8.
- ^ Manolescu, Dragos (2006). Vzorové jazyky návrhu programu 5. Čtení: Addison-Wesley Professional. ISBN 0-321-32194-4.
- ^ Fowler, Martin (2003). Vzory podnikové aplikační architektury. Boston: Addison-Wesley. ISBN 0-321-12742-0.
- ^ (viz např. Velocity, TemplateToolkit, Freemarker).
- ^ JavaServer Pages je technologie uvolněná společností Sun pro použití s programovacím jazykem Java.„Technologie stránek JavaServer“. 2006-10-10. Citováno 2006-10-10.
- ^ ASP 1.0 byl původně vydán pro použití s Microsoft VBScript a JScript. Jednalo se o rozšíření Microsoft IIS.