Nyligen fick jag lära mig om HAML för att stötta min Rails Application och jag fick reda på några mycket intressanta fakta som jag ville dela med er. Inlärningsupplevelsen var utmärkt och nu vill jag se till att delningsupplevelsen också är utmärkt. Hoppas du kommer att fånga det lätt! Okej, så här går vi och några mycket grundläggande saker om HAML skulle vara, HAML står för HTML Abstraction Markup Language. Det är en ny mallmotor för Ruby on Rails. Det är en ersättning för RHTML-mallarna som vi är så vana vid i rails-applikationer.
Principerna för HAML är att uppmärkningen ska vara skön, bör markeringen vara TORR (Upprepa inte dig själv) och uppmärkning bör vara det indragen. Hoppas detta inte är raketvetenskap.
Räls "embedded Ruby" som standard, dvs.erb filer beskriver HTML-utdata med en del nödvändig Ruby-kod för att generera de dynamiska delarna av en sida. HAML gör samma sak men det tar ett minimalistiskt tillvägagångssätt när det kommer till syntaxen. Reglerna för vitt utrymme i HAML är mycket strikta. Häckning hanteras genom indragning. I HAML börjar taggarna med % och det finns ingen anledning att stänga dem. De är självstängda genom indragning. id=”abc” kommer bara att vara #abc och class=”abc” kommer att vara .abc div är standardtaggen och för alla andra måste vi använda %tag <%= Någon ruby-kod%> kommer bara att vara =någon ruby-kod i HAML . För loopar <% kommer en del code%> att bli -någon kod i HAML. Syntax : !!! – doctype specificator: t.ex. !!! Strict Infogar en HTML DOCTYPE- eller XML-deklaration. Standard är XHTML 1.0 % – elementspecifikator, t.ex. %h1: Radbryter allt som följer på samma rad *eller* kapslat i följande indragna rader med öppna/stänga 'element'-taggar. # – id-specifikator: t.ex. #main eller %div#main Anger ett 'id'-attribut på ett element. Om %element inte anges skapas ett underförstått 'div'-element. . – klassspecifikator: t.ex. .error eller %li.error Anger ett 'class'-attribut på ett element. Om %element inte anges skapas ett underförstått 'div'-element. Klasser kan kedjas med flera perioder. {} – attribut: t.ex. %input{:name => “title”, :length => “30”} Ställer in attribut på ett element, med antingen Ruby-hashnyckel/värdepar eller en eller flera Ruby-metoder som returnerar en hash. / (i slutet av taggdefinitionen) – självstängande tagg: t.ex. %br/Anger en självstängande tagg. (Vissa taggar är självstängda som standard.) / (vid början av raden) – kommentar: t.ex. / Här finns tigrar. Skapar en HTML-kommentar från innehållet på samma rad eller den som är kapslad under. – flyktkaraktär: t.ex. (för att återge en punkt i början av en rad) Tillåter att "speciella" tecken från denna lista renderas som vanlig text. = – Ruby-uttryck: t.ex. %h1= @content.title eller = @content.title Fungerar precis som Erb =-markören: Ruby-uttrycket efter det utvärderas och dess resultat infogas i dokumentet. Kan följa en tagg eller stå i en rad för sig. – – Ruby kod utan utskrift: t.ex. – för innehåll i @contents do Fungerar precis som Erb – markören: Ruby-uttrycket utvärderas men ingen utdata går in i dokumentet. Används främst för flödeskontroll och den udda Rails form_for syntax. == – Ruby interpolerad sträng: t.ex. %h1== Redigerar nu #{@content.title} Fungerar precis som = följt av en sträng med dubbla citattecken. Innehållet behandlas som bokstavligt med Ruby-variabelsubstitutioner. -# – Tyst kommentar, t.ex. -# Användarna är alla idioter. Innehåll matas aldrig ut. I HAML, det finns ingen anledning att skriva DOCTYPE, vi kan inkludera den med hjälp av !!! och !!!XML-taggar.
Enkelheten är att RHTML versionen har cirka 261 tokens jämfört med HAML-versionen som har bara cirka 117 tokens. Till exempel motsvarigheten till följande html-kod <h1>HAML är en mallmotor, Mona</h1> i ERB kommer att vara <h1>HAML är en mallmotor,<%= @name%></h1>
Kan skrivas som följande i HAML %h1 = "HAML är en mallmotor,#{@name}" Installationen är ganska enkel, du kan antingen installera den genom att ladda ner plugin eller genom att installera pärla. $ sudo gem install haml #haml -skenor Jag tog precis en fil från ett befintligt projekt, dvs.erb fil och döpte om den till en .haml förlängning. Det här är min gamla .erb-fil : <center> <table cellspacing="”5″" cellpadding="”5″"> <tbody> <tr> <td> <ul> <li> <%= link_to @story.name, @story.link %></li> </ul> </td> </tr> </tbody> </table> <%= link_to “Add New story”, :action =>'ny' %> </center> och här är min nya .haml-fil: %center %table{:cellpadding=>5,:cellspacing=>5} %tr %td %ul %li= link_to @story.name, @story.link = link_to “Add New story”, :action =>’new’
Har du märkt något?
14 rader reducerades till 7 rader och det ser vackert ut också
Så, låt oss göra några mycket vackert kodade rälsapplikationer.
Kontakta oss.