module Middleman::Metaman::Helpers
Public Instance Methods
Private Instance Methods
default_value(scope, key, default = nil)
click to toggle source
# File lib/middleman-metaman/helpers.rb, line 145 def default_value(scope, key, default = nil) @meta_tags[scope][key] || @meta_tags[key] || default end
full_title(title)
click to toggle source
# File lib/middleman-metaman/helpers.rb, line 64 def full_title(title) if title.is_a?(Hash) && title[:site_name].nil? title[:title] elsif title && @meta_tags[:site_name] title + " #{@meta_tags[:separator] || '|'} " + @meta_tags[:site_name] else title end end
generate_meta_array(key, value)
click to toggle source
# File lib/middleman-metaman/helpers.rb, line 93 def generate_meta_array(key, value) html = [] value.each do |av| html.push generate_meta_html(key, av) end html end
generate_meta_hash(key, value)
click to toggle source
# File lib/middleman-metaman/helpers.rb, line 85 def generate_meta_hash(key, value) html = [] value.each do |hk, hv| html.push generate_meta_html("#{key}:#{hk}", hv) end html end
generate_meta_html(key, value)
click to toggle source
# File lib/middleman-metaman/helpers.rb, line 74 def generate_meta_html(key, value) return unless key && value return generate_meta_hash(key, value) if value.is_a?(Hash) return generate_meta_array(key, value) if value.is_a?(Array) value += current_page.url if key == 'og:url' value = meta_image_url(value) if key.to_s.include?('image') [tag(:meta, "#{meta_key(key)}" => key, content: value)] end
host()
click to toggle source
# File lib/middleman-metaman/helpers.rb, line 149 def host Middleman::MetamanExtension.options.host end
meta_image_url(image)
click to toggle source
get the meta image url
# File lib/middleman-metaman/helpers.rb, line 138 def meta_image_url(image) return nil unless image return image unless URI(image).scheme.nil? "#{host}#{image_path(image)}" end
meta_key(key)
click to toggle source
determine key for meta tag based on name
# File lib/middleman-metaman/helpers.rb, line 102 def meta_key(key) key.match?(/^(og|music|video|article|book|profile):/i) ? 'property' : 'name' end
meta_open_graph()
click to toggle source
generate open graph meta
# File lib/middleman-metaman/helpers.rb, line 107 def meta_open_graph og = ActiveSupport::HashWithIndifferentAccess.new og[:url] = default_value(:og, :url) || host og[:type] = default_value(:og, :type, 'website') og[:site_name] = default_value(:og, :site_name) og[:title] = default_value(:og, :title) og[:description] = default_value(:og, :description) og[:image] = default_value(:og, :image) @meta_tags[:og].reject { |k| og.keys.include?(k) }.each do |k, v| og[k] = v end og end
meta_twitter()
click to toggle source
generate twitter meta
# File lib/middleman-metaman/helpers.rb, line 124 def meta_twitter twitter = ActiveSupport::HashWithIndifferentAccess.new twitter[:title] = default_value(:twitter, :title) twitter[:description] = default_value(:twitter, :description) twitter[:image] = default_value(:twitter, :image) @meta_tags[:twitter].reject { |k| twitter.keys.include?(k) }.each do |k, v| twitter[k] = v end twitter end