%title = @title \= @title %script{ "type": "text/javascript", "src": "javascripts/script_#{2 + 7}", "data": { "controller": "reporter", }, } %div{:id => [@item.type, @item.number], :class => [@item.type, @item.urgency]} %div{:id => "#{@item.type}_#{@item.number}", :class => "#{@item.type} #{@item.urgency}"} .item{:class => @item.is_empty? && "empty"} %a(title=@title href=href) Stuff %a(title=@title){:href => @link.href} Stuff %a{:href=>"/posts", :data => {:author_id => 123, :category => 7}} Posts By Author .book-info{:data => {:book => {:id => 123, :genre => 'programming'}, :category => 7}} %div#things %span#rice Chicken Fried %p.beans{ :food => 'true' } The magical fruit %h1.class.otherclass#id La La La %br/ %meta{'http-equiv' => 'Content-Type', :content => 'text/html'}/ %p[user]{:class => 'alpha bravo'} %blockquote< %div Foo! %img %img> %img %img %pre>< foo bar %img -# file: app/views/users/show.haml %p hello %div[@user, :greeting] %bar[290]/ Hello! - user = User.find(1) .foo.moo{:class => ['bar', 'alpha']}(class='baz') !!! XML %peanutbutterjelly / This is the peanutbutterjelly element I like sandwiches! / %p This doesn't render... %div %h1 Because it's commented out! %p /[if IE] %a{ :href => 'http://www.mozilla.com/en-US/firefox/' } %h1 Get Firefox %p foo -# This is a comment %p bar %p foo -# This won't be displayed Nor will this Nor will this. %p bar %p = ['hi', 'there', 'reader!'].join " " = "yo" = link_to_remote "Add to cart", :url => { :action => "add", :id => product.id }, :update => { :success => "cart", :failure => "error" } - foo = "hello" - foo << " there" - foo << " you!" %p= foo - links = {:home => "/", :docs => "/docs", :about => "/about"} - (42...47).each do |i| %p= i %p See, I can count! %p - case 2 - when 1 = "1!" - when 2 = "2?" - when 3 = "3." ~ "Foo\n<pre>Bar\nBaz</pre>" %p This is #{h quality} cake! %p Look at \\#{h word} lack of backslash: \#{foo} And yon presence thereof: \{foo} &= "I like cheese & crackers" & I like #{"cheese & crackers"} = "I feel <strong>!" != "I feel <strong>!" ! I feel #{"<strong>"}! %whoo %hoo= h( | "I think this might get " + | "pretty long so I should " + | "probably make it " + | "multiline so it doesn't " + | "look awful.") | %p This is short. !!! %html{ :xmlns => "http://www.w3.org/1999/xhtml", :lang => "en", "xml:lang" => "en"} %head %title BoBlog %meta{"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8"} %meta(http-equiv="Content-Type" content = "text/html; charset=utf-8" class=21 id='d3') %link{rel: 'stylesheet', href: 'main.css', type: 'text/css'} :css body { font-size: 16px; margin-top: 0px; margin-bottom: 0px; font-family: Arial, sans-serif; } p { margin: 0px; padding: 0px; } %body #header %a{ href: root_path, name: "home" } %h1 BoBlog %h2 Bob's Blog #content - @entries.each do |entry| .entry{ id: entry.id } %h3.title= entry.title %p.date Posted on #{entry.posted.strftime("%A, %B %d, %Y")} %p.body= entry.body = button_to "Load more", entries_path, class: "btn btn-primary", method: :get, params: { last_id: @entries.map(&:id).min }, form: { data: { turbo_stream: true } } :ruby provide(:title, user_title(@user)) provide(:og, user_opengraph(@user)) provide(:meta, user_twitter_card(@user)) parent_layout 'user/profile' #footer %p All content copyright © Bob #filterTest %p Just testing some more HAML filters :coffee window.alert "Hello from CoffeeScript #{1}" :coffeescript window.alert "Hello from CoffeeScript again, #{1 + 1}" :css #filterTest { display: none; } :erb For some reason <%= "ERB works too #{@abcdef}" %>. :plain Anything else should be treated as plain text. This also means that the following shouldn't be highlighted: %h1#superawesomeheading Heading 1 %div Filter test done