WebMatrix:ルビを振るためのヘルパーを作ってみる
執筆日時:

とりあえずオーソドックスに App_Code フォルダ以下に Ruby.cshtml を作ってこんな感じに記述。
# ~/Ruby.cshtml@helper GetHtml(string text, string ruby){ <ruby><rb>@text</rb><rp>(</rp><rt>@ruby</rt><rp>)</rp></ruby> }
使い方はこんな感じ .cshtml の名前がそのまま静的クラスの名前になっていて、定義したヘルパー関数が呼べる。
# ~/Test.cshtml
@{
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
@Ruby.GetHtml("柳 英俊", "やなぎ ひでとし")
</body>
</html>

(※見やすいように拡大してある)
自分はルビのタグなんか覚えるの面倒だし、ましてやルビタグが解釈できない Firefox のことまで考えてコーディングするのは面倒なので、こういうヘルパーを作るのが好み。
ちょっとハッテン
# ~/App_Code/HtmlHelperExtensions.csusing System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.WebPages.Html;
public static class HtmlHelperExtenstion { public static IHtmlString Ruby(this HtmlHelper helper, string text, string ruby) { return new HtmlString(string.Format( "<ruby><rb>{0}</rb><rp>(</rp><rt>{1}</rt><rp>)</rp></ruby>", text, ruby )); } }
こうやって HtmlHelper の拡張メソッドとして定義しておけば
@Html.Ruby("柳 英俊", "やなぎ ひでとし")
で同様のことができるようになる。