Haml - Haml
tento článek obsahuje obsah, který je napsán jako reklama.Července 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Paradigma | Šablona motoru |
---|---|
Navrhl | Hampton Catlin |
Vývojáři | Natalie Weizenbaum (minulost), Norman Clarke, Matt Wildig, Akira Matsuda, Tee Parham[1] |
Stabilní uvolnění | 5.1.2 / 6. srpna 2019[2] |
Jazyk implementace | Rubín |
OS | Cross-platform |
Licence | Licence MIT a Interaktivní prostor[1] |
Přípony názvu souboru | .haml |
webová stránka | haml |
Haml (HTML Abstraction Markup Language) je šablonový systém, který je navržen tak, aby se zabránilo psaní vloženého kódu do webového dokumentu a aby byl HTML čistší. Haml dává flexibilitu mít nějaký dynamický obsah v HTML. Podobně jako ostatní web jazyky jako PHP, ASP, JSP a systémy šablon jako eRuby Haml také vloží nějaký kód, který se provede za běhu, a vygeneruje kód HTML, aby poskytl nějaký dynamický obsah. Aby bylo možné spustit Hamlův kód, musí soubory mít a .haml rozšíření. Tyto soubory jsou podobné souborům .erb nebo eRuby, které také pomáhají vkládat Rubín kód při vývoji a webová aplikace.
Při analýze kódovacích komentářů používá Haml stejná pravidla jako Ruby 1.9 nebo novější. Haml rozumí pouze ASCII kompatibilní kódování jako UTF-8 ale ne UTF-16 nebo UTF-32 protože nejsou kompatibilní s ASCII.[3][4]
Haml lze použít v příkazový řádek, jako samostatný modul Ruby, nebo v Ruby on Rails díky tomu je Haml vhodný pro širokou škálu aplikací.
Dějiny
Haml byl původně představen Hampton Catlin s jeho počátečním vydáním v roce 2006 a jeho práce se ujalo několik dalších lidí.[5] Jeho motivem bylo dělat HTML jednodušší, čistší a snadněji použitelný. Od roku 2006 byla několikrát revidována a byly vydány novější verze. Do roku 2012 byla Natalie Weizenbaum primárním správcem Haml, následovaná Normanem Clarkem až do roku 2015. [5] Natalie pracovala na tom, aby byl Haml použitelný Rubín aplikací, zatímco branding a design vytvořil Nick Walsh.[5] Dalšími členy týmu údržby jsou Matt Wildig, Akira Matsuda, Tee Parham a Takashi Kokubun.[1]
Historie verzí
Verze 2.2.0 byla vydána v červenci 2009 s podporou Ruby 1.9 a Kolejnice 2,0 nebo vyšší.[2] Verze 3.0.0 byla vydána v květnu 2010 a přidává podporu pro Rails 3 a některá vylepšení výkonu. Čtvrtá hlavní verze porušila kompatibilitu s předchozími verzemi, podporovala pouze Rails 3 a Ruby 1.8.7 nebo vyšší a označila přechod na sémantické vytváření verzí. V řadě Haml 4 bylo provedeno několik změn, jako je zvýšení výkonu, oprava několika varování, kompatibilita s nejnovějšími verzemi Rails, opravy v dokumentaci a mnoho dalších.[2] Verze 5.0.0 byla vydána v dubnu 2017. Podporuje Ruby 2.0.0 nebo vyšší a klesá kompatibilita s Rails 3.[2] A 'stopa '[6] byla přidána možnost, která pomáhá uživatelům provádět trasování na šabloně Haml.
Funkce
Při vývoji Hamla byly zahrnuty čtyři principy.[5]
Uživatelsky přívětivé označení
Značkovací jazyk je uživatelsky přívětivý, pokud dodržuje následující funkce:
- Snadno srozumitelný jazyk
- Snadné použití (implementace)
SUCHÝ
Značkovací jazyk by se měl řídit zásadou Neopakujte se (SUCHÝ ) zásada. Mělo by:
- Vyvarujte se zbytečných opakování
- Zaměřte se na čistý kód
Dobře odsazené
Značkovací jazyk s dobrým odsazení zlepšuje vzhled, usnadňuje čtení pro čtenáře a také určuje, kde daný prvek začíná a končí.
Jasná struktura
Značkovací jazyk s jasnou strukturou pomůže při údržbě kódu a logickém porozumění konečnému výsledku. Není jasné, zda Haml nabízí v tomto ohledu nějakou diferenciální výhodu.
Příklady
Haml markup je podobný CSS v syntaxi. Například Haml má stejnou tečku .
reprezentace pro třídy, jak to dělá CSS, což vývojářům usnadňuje používání tohoto označení.
"Ahoj světe!"
Haml jako a nástroj příkazového řádku
Následující jsou ekvivalentní, jak HAML rozpoznává Selektory CSS:
% str{:třída => "vzorek", : id => "Vítejte"} Ahoj světe!
% str.vzorek#Vítejte Ahoj světe!
Vykreslí se na následující HTML kód:
<str třída="vzorek" id="Vítejte">Ahoj světe!</str>
Haml jako doplněk pro Ruby on Rails
Chcete-li použít Haml s Rubín, Ruby Gemfile
by měl obsahovat tento řádek:
klenot 'haml'
Podobný eRuby, Haml také může přistupovat k lokálním proměnným (deklarovaným ve stejném souboru v Ruby kódu). Tento příklad používá ukázkový soubor řadiče Ruby.[7]
- soubor:
app / controllers / messages_controller.rb
třída MessagesController < ApplicationController def index @zpráva = "Ahoj světe!" koneckonec
- soubor:
aplikace / zobrazení / zprávy / index.html.haml
#Vítejte % str= @zpráva
Tím se vykreslí:
<div id="Vítejte"> <str>Ahoj světe!</str></div>
Haml jako modul Ruby
Chcete-li použít Haml nezávisle na Kolejnice a ActionView, Nainstalujte haml
klenot, zahrnout do Gemfile
a jednoduše importovat [Použití: vyžadovat 'haml']
v Ruby skriptu nebo vyvolat Ruby tlumočník s -rubygems
vlajka.
Vítejte = Haml::Motor.Nový("% p Dobrý den, svět!")Vítejte.poskytnout
Výstup:
<str>Ahoj světe!</str>
Haml :: Motor je třída Haml.
Základní příklad
Haml používá pro vnoření značek a rozsah prázdné znaky (dvě mezery). Funguje to jako náhrada za páry otevřených značek, což je dělá SUCHÝ a čistší. Následující příklad porovnává syntaxe Haml a eRuby (Embedded Ruby), vedle výstupu HTML.
Haml | ERB | HTML |
---|---|---|
% div.kategorie % div.recepty % h1= recept.název % h3= recept.kategorie % div % h4= recept.popis | <div třída="kategorie"> <div třída="recepty"> <h1><%= recept.název %></h1> <h3><%= recept.kategorie %></h3> </div> <div> <h4><%= recept.popis %></h4> </div></div> | <div třída="kategorie"> <div třída="recepty"> <h1>Cookie</h1> <h3>Dezerty</h3> </div> <div> <h4>Vyrobeno z těsta a cukru. Obvykle má kruhový tvar a má asi 400 kalorií.</h4> </div></div> |
'Klíčové rozdíly jsou:
- Haml nemá u každého prvku začátek ani konec eRuby
- Syntaxe eRuby vypadá hodně podobně HTML a tím se více podobá HTML, zatímco Haml je více CSS -jako.
- Haml používá odsazení k vnoření prvků značky, zatímco eRuby používá stejnou reprezentaci HTML
- V Haml vlastnosti jako
třída
,id
může být reprezentován.
,#
respektive místo běžnýchtřída
aid
klíčová slova. Haml také používá%
k označení prvku HTML místo<>
jako v eRuby.
Příklad s vloženým Ruby kódem
Poznámka: Toto je jednoduchý příklad náhledu a nemusí odrážet aktuální verzi jazyka.
!!!% html{ : xmlns => „http://www.w3.org/1999/xhtml“, : lang => „cs“, „xml: lang“ => „cs“} %hlava %titul BoBlog % meta{„http-ekv.“ => "Typ obsahu", :obsah => „text / html; charset = utf-8“} %odkaz{"rel" => "styly", "href" => "main.css", "typ" => „text / css“} %tělo # hlavička % h1 BoBlog % h2 Bobův blog #obsah - @ vstupy.každý dělat |vstup| .vstup % h3.titul= vstup.titul % str.datum= vstup.vyslán.strftime(„% A,% B% d,% Y“) % str.tělo= vstup.tělo #zápatí % str Autorská práva na veškerý obsah © Bob
To by vyrobil výše uvedený Haml XHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html jazyk='en' xml: lang='en' xmlns=„http://www.w3.org/1999/xhtml“> <hlava> <titul>BoBlog</titul> <meta obsah='text / html; charset = utf-8 ' http-ekv='Typ obsahu' /> <odkaz href=„/stylesheets/main.css“ média="obrazovka" rel="Šablona stylů" typ=„text / css“ /> </hlava> <tělo> <div id='záhlaví'> <h1>BoBlog</h1> <h2>Bobův blog</h2> </div> <div id='obsah'> <div třída='vstup'> <h3 třída='titul'>předvečer Všech svatých</h3> <str třída='datum'>Úterý 31. října 2006</str> <str třída='tělo'> Veselý Halloween, slavní čtenáři! Dnes večer jdu na večírek ... jsem velmi nadšený. </str> </div> <div třída='vstup'> <h3 třída='titul'>Nový Rails Templating Engine</h3> <str třída='datum'>Pátek 11. srpna 2006</str> <str třída='tělo'> Pro Ruby on Rails je připraven nový skvělý Templating Engine. Jmenuje se Haml. </str> </div> </div> <div id='zápatí'> <str> Autorská práva na veškerý obsah © Bob </str> </div> </tělo></html>
Implementace
Oficiální implementace Haml byla postavena pro Rubín s doplňky pro Ruby on Rails a Merb, ale implementace Ruby funguje také samostatně. Haml lze snadno použít spolu s dalšími jazyky. Níže je uveden seznam jazyků, ve kterých má Haml implementace:
- Rubín: Hamlit
- PHP: Fammel, pHAML, phamlp, phpHaml (PHP 5), HAML-TO-PHP (PHP 5), Multi cíl HAML (PHP 5,3)
- Javascript: haml-js
- Krajta: HamlPy
- ASP.NET: MonoRail NHaml
- Společný Lisp: cl-haml
- Šipka: Jelen
- Jáva: JHaml
- Lua: LuaHaml
- .SÍŤ: NHaml
- Perl: Text :: Haml
- Scala: Škálovat
Viz také
- BBCode
- eRuby
- Markaby
- Rubín
- Ruby on Rails
- YAML
- Sass - podobný systém pro Windows CSS, také navrhl Catlin.
- Jazyk webových stránek Meta - další jazyk šablony s podobnými funkcemi
- Webová šablona - obecný koncept šablony do HTML expanze
Reference
- ^ A b C „GitHub“. Citováno 28. dubna 2018.
- ^ A b C d "Seznam změn". Citováno 28. dubna 2018.
- ^ "Kódování". Citováno 29. ledna 2016.
- ^ „Kódování UTF“. Citováno 7. února 2016.
- ^ A b C d "O". Citováno 28. dubna 2018.
- ^ "Možnost trasování v Haml". Citováno 16. února 2016.
- ^ „Používání Haml“. Citováno 7. února 2016.
externí odkazy
- Oficiální webové stránky
- Learn Haml (základní)
- Haml na GitHub
- phpHaml, Implementace Haml pro PHP
- Haml Google Group
- Haml 1.0, oznámení na oficiálním blogu Ruby on Rails