I've been playing with my patch more. It's problematic when you nest
directories, because it doesn't base the relative path of the file off
of the current file but rather off of the location of the rake file,
which is no good. Also, it would be quite nice to pass variables in
some cases.

-Ryan

On May 27, 12:57 pm, Ryan T Mulligan <[EMAIL PROTECTED]> wrote:
> So maybe Rails is a little to big for some static project you are
> working on. If this is the case you should still use haml! Why?
> Because haml is great and saves tons of time. Here is the code I've
> written to help me out with this.
>
> Maybe someone will include something like haml_partial into the repos?
> Any thoughts?
>
> -Ryan Mulligan
>
> #RAKEFILE
> #Basically just put it in your static .haml directory then it will
> generate .html and .css files alongside these files in the same exact
> directory.
> require 'haml/engine'
> require 'sass/engine'
>
> task :default => [:web]
> task :web => [:haml,:sass]
>
> desc 'Compile haml templates to html'
> task :haml do
>   dirs =  Dir['**/*.haml']
>   dirs.each do |f|
>     File.open(f, 'r') do |fi|
>       File.open(f.gsub('haml','html'),'w') do |d|
>         d << Haml::Engine.new(fi.read).to_html
>       end
>     end
>   end
> end
>
> desc 'Compile sass templates to css'
> task :sass do
>   dirs =  Dir['**/*.sass']
>   dirs.each do |f|
>     File.open(f, 'r') do |fi|
>       File.open(f.gsub('sass','css'),'w') do |d|
>         d << Sass::Engine.new(fi.read).to_css
>       end
>     end
>   end
> end
>
> Here is a patch to the haml helpers to create haml_partial which lets
> you use other haml files as mini-partials. It doesn't support moving
> variables between them or anything. It's really just to dry up really
> static stuff.
>
> ===================================================================
> --- haml/helpers.rb     (revision 518)
> +++ haml/helpers.rb     (working copy)
> @@ -306,6 +306,20 @@
>        result.to_s
>      end
>
> +    # Takes in a path to a .haml file which is then parsed inline for
> the current
> +    # file.
> +    #
> +    #  #Both of these yield same result
> +    #  =haml_partial('footer')
> +    #  =haml_partial('footer.haml')
> +    def haml_partial(path)
> +      # if we don't have the extension assume it is .haml
> +      if File.extname(path).empty?
> +        path += '.haml'
> +      end
> +      Haml::Engine.new(File.read(path)).to_html # I doubt this is the
> most efficient way to do this.
> +    end
> +
>      # Returns whether or not the current template is a Haml template.
>      #
>      # This function, unlike other Haml::Helpers functions,


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Haml" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/haml?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to