Sha256: 34fed150922878bcd613808e345b859d7353d338efcad4022f32259a25b33c4a

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

module Middleman
  module Helpers
    def page_classes(*additional)
      path = request.path_info
      path << "index.html" if path.match(%r{/$})
      path.gsub!(%r{^/}, '')
  
      classes = []
      parts = path.split('.')[0].split('/')
      parts.each_with_index { |path, i| classes << parts.first(i+1).join('_') }

      classes << "index" if classes.empty?
      classes += additional unless additional.empty?
      classes.join(' ')
    end
    
    def link_to(title, url="#", params={})
      params.merge!(:href => url)
      params = params.map { |k,v| %Q{#{k}="#{v}"}}.join(' ')
      %Q{<a #{params}>#{title}</a>}
    end
    
    def asset_url(path)
      path.include?("://") ? path : "/#{path}"
    end

    def image_tag(path, options={})
      options[:alt] ||= ""
      params = options.merge(:src => asset_url(path))
      params = params.map { |k,v| %Q{#{k}="#{v}"}}.join(' ')
      "<img #{params} />"
    end

    def javascript_include_tag(path, options={})
      params = options.merge(:src => asset_url(path), :type => "text/javascript")
      params = params.map { |k,v| %Q{#{k}="#{v}"}}.join(' ')
      "<script #{params}></script>"
    end

    def stylesheet_link_tag(path, options={})
      options[:rel] ||= "stylesheet"
      params = options.merge(:href => asset_url(path), :type => "text/css")
      params = params.map { |k,v| %Q{#{k}="#{v}"}}.join(' ')
      "<link #{params} />"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
middleman-0.9.4 lib/middleman/helpers.rb
middleman-0.9.3 lib/middleman/helpers.rb