Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Adds more functionality to Haml and Sass (part of BigBand).

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 vendor
Octocat-spinner-32 .gitmodules
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md
Octocat-spinner-32 haml-more.gemspec
README.md

Haml::More and Sass::More

Adds more functionality to Haml and Sass. Haml helpers detect if called from another context, so they are usable with Erb and friends.

BigBand

Haml::More and Sass::More are part of the BigBand stack. Check it out if you are looking for fancy Sinatra extensions.

Haml extensions

  • content_for and yield_content (like in Rails, you know?)

    // some_file.haml
    = yield_content(:foo)
    .content
      = haml :another_file
    
    // another_file.haml
    - content_for(:foo)
      %b bar
    .something
      %h1 cool, huh?
    
  • adds :coffee_script for inline CoffeeScript

    %head
      %title CoffeScript example
      :coffee_script
        if happy and knows_it
          claps_hands()
          cha_cha_cha()
    %body
      content
    

SassScript extensions

  • min and max

    .someClass
      width = max(100px, !someSize * 3)
      height = min(!a, !b, 20%)
    

Usage with Sinatra

Classic style:

require "sinatra"
require "haml/more"

Modular:

require "sinatra/base"
require "haml/more"

class Foo < Sinatra::Base
  helpers Haml::More
end

Usage without Sinatra

Using just Sass::More (if you're in Merb or Rails):

# in some initializer or something
require "sass/more"

Without anything:

require "haml/more"
scope = Object.new
scope.extend Haml::More
puts Haml::Engine.new("%p some haml code").render(scope)
Something went wrong with that request. Please try again.