%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