classes_from_keywords

 現在のページのキーワードをまとめて、class属性用に並べます。

使い方

{{classes_from_keywords}}

 とするだけでそのページのキーワードを連結してくれます。

 例えば、キーワードが「replay」「a_girl_of_elm」の二つであれば「replay a_girl_of_elm」という文字を返してくれます。

 が、実際にはテンプレートで使うと思うので、@pluginオブジェクトのインスタンスメソッドとして呼び出す必要があるでしょう。次のように。

template/view.html

<body>

 を

<body class="<%= @plugin.classes_from_keywords %>">

 とします。

 こうしておけば、homeキーワードを持つページ(body.home ... { ... })だけのスタイル、replayキーワードを持つページ(.replay ... { ... })だけのスタイル、といった限定的なスタイルシートの適用ができます。ページごとに<link rel="stylesheet" type="text/css" href="...">を増やすようなハックをしなくて済むんで楽だと思います(少なくともHikiでは)。もちろん、その部分のCSSが不要なページでも読み込むコストが掛かりますけど。

ソース

misc/plugin/classes_from_keywords

def classes_from_keywords
  h(@db.info(@page)[:keyword].join(' ')).gsub("'", "&apos;")
end