Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
HAML plugin for jekyll
# _plugins/haml_converter.rb
module Jekyll
class HamlConverter < Converter
safe true
def setup
return if @setup
require 'haml'
@setup = true
rescue
STDERR.puts 'do `gem install haml`'
raise FatalException.new("Missing dependency: haml")
end
def matches(ext)
ext =~ /haml/i
end
def output_ext(ext)
".html"
end
def convert(content)
setup
engine = Haml::Engine.new(content)
engine.render
end
end
end
---
---
<!-- _layouts/home.haml -->
%html
%head
%title= page.title
%body
#container
#header HEADER
#content
= content
#footer FOOTER
---
layout: home
title: Home Page
---
%h1 Hello World?
@georgedrummond

will this work with github pages?

@dtjm
Owner

I don't think so. There is an open ticket here: jekyll/jekyll#53

For now, you'll have to pre-process your Haml before sending it to Github pages. This is not too bad if you can set up your development environment to automatically compile the HAML whenever you save.

@bcardarella

How are you pre-processing the HAML?

@georgedrummond

see line 24 onwards

@dtjm
Owner

@bcardarella Since haml doesn't have a --watch option like SASS, you could use also try using the unix watch command. Maybe something like this: watch haml *.haml (Sorry I haven't tried it and I don't have any of my code in front of me right now)

@joshuairl

Does home.haml actually work? I can't seem to get my layout to generate correctly with haml?

@topher6345

This plguin isn't converting my haml layouts to html

But it works for the content pages, any ideas?

@jalcine

@topher6345 what's the suffix of your layout files? Might wanna make them .html to make the plugin pick them up.

@2xG

I have an error with new version of haml gem.
http://blog.haml.info/post/42998475354/haml-4-0-has-been-released says that markup filters have been moved to separate gem 'haml-contrib'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.