OGPタグ用のHelperをつくる
lib/lokka/helpers.rb
に meta\_ogp メソッドを追加する。
def meta_ogp
s = yield_content :meta_ogp
s unless s.blank?
end
さらに、OGPタグを読み込む位置でこのメソッドを呼び出すために、
public/theme/theme-name/layout.erb
のmetaタグ周辺に追加した。
<%= meta_ogp %>
これでLokkaの各Viewで
content_for :meta_ogp
が使えるようになる。
各エントリの情報をOGPタグに設定して読み込む
public/theme/theme-name/entry.erb
の末尾に以下を追加する。
<% content_for :meta_ogp do %>
<meta property="og:type" content="article"/>
<meta property="og:site_name" content="<%= @site.title %>"/>
<meta property="og:url" content="<%= base_url + @entry.link %>"/>
<meta property="og:title" content="<%= @entry.title %>"/>
<meta property="og:description" content="<%= @entry.snippet_body %>"/>
<% end %>
og:description
の値に設定されている
@entry.snippet_body
は、本文の先頭200文字を返すメソッド。
コードは以下の通り。
lib/lokka/entry.rb
のEntryクラスに追加する。
def snippet_body
@snippet_body ||= Nokogiri(
"<html><head></head><body>#{self.body}</body></html>"
).text[0..200]
end
self.body
には、各MarkupでHTMLコード化された本文が入ってるので、
それをHTML文書にしてNokogiriで解析してテキスト化してる。
これで、各エントリのページにOGPが追加された。