41 lines
No EOL
1 KiB
Ruby
41 lines
No EOL
1 KiB
Ruby
module OpenGraphHelper
|
|
def og_title(post)
|
|
meta_tag_with_property('og:title', post_page_title(post, :length => 140))
|
|
end
|
|
|
|
def og_type(post)
|
|
meta_tag_with_property('og:type', 'article')
|
|
end
|
|
|
|
def og_url(post)
|
|
meta_tag_with_property('og:url', post_url(post))
|
|
end
|
|
|
|
def og_image(post)
|
|
tags = post.photos.map{|x| meta_tag_with_property('og:image', x.url(:thumb_large))} || []
|
|
tags.join(' ')
|
|
end
|
|
|
|
def og_site_name
|
|
meta_tag_with_property('og:site_name', 'Diaspora*')
|
|
end
|
|
|
|
def og_description(post)
|
|
meta_tag_with_property('og:description', post_page_title(post, :length => 1000))
|
|
end
|
|
|
|
def og_type
|
|
# the diaspora og namespace was already taken :(
|
|
meta_tag_with_property('og:type', 'joindiaspora:post')
|
|
end
|
|
|
|
def og_page_specific_tags(post)
|
|
[og_title(post), og_type,
|
|
og_url(post), og_image(post),
|
|
og_description(post)].join(' ').html_safe
|
|
end
|
|
|
|
def meta_tag_with_property(name, content)
|
|
content_tag(:meta, '', :property => name, :content => content)
|
|
end
|
|
end |