#464 genre フィルタを作り中

ジャンル別タイトル一覧を出し隊 + しかしジャンルは <p> で囲み隊の続き。

ほんでもって autoreplace フィルタを使わずに genre フィルタなるモノをでっちあげてみた次第。つっても autoreplace.txt の中身をごっそり持ってきただけなんで意味無いですね君はとか思いながら。とりあえずこんな感じなんですが。

class Filter
  H3TOPIC       = Regexp::compile(/<h3><a (.+?)>■<\/a>(.+?)<p class=\"genre\">(.+?)<\/p><\/h3>/)
  def genre(str, type)
    case type
    when :TOPIC
      str.gsub!(/\[/, '<p class="genre"><span class="brackets"> [</span> Genre: <a href="')
      str.gsub!(/\]/, '</a> <span class="brackets">]</span></p>')
      str.gsub!(/\|/, '</a> | <a href="')
      str.gsub!(/GIAC/, 'genre_01_01.html" title="ジャンル別タイトル一覧 - アニメ・漫画関連">AnimeComic')
      str.gsub!(/GIJK/, 'genre_01_02.html" title="ジャンル別タイトル一覧 - お遊び画像、下書き晒し等">Junk')
      str.gsub!(/GIVI/, 'genre_01_03.html" title="ジャンル別タイトル一覧 - その他諸々絵、映像関連">VariousImage')
      str.gsub!(/GMAT/, 'genre_02_01.html" title="ジャンル別タイトル一覧 - 音楽関連アーティスト">MusicArtist')
      str.gsub!(/GMNT/, 'genre_02_02.html" title="ジャンル別タイトル一覧 - Ninja Tune 関連">NinjaTune')
      str.gsub!(/GMOL/, 'genre_02_03.html" title="ジャンル別タイトル一覧 - オンラインラジオ・オンラインレコード店関連">On-lineMusic')
      str.gsub!(/GMVM/, 'genre_02_04.html" title="ジャンル別タイトル一覧 - その他諸々音楽関連">VariousMusic')
      str.gsub!(/GCND/, 'genre_03_01.html" title="ジャンル別タイトル一覧 - nDiary 関連">nDiary')
      str.gsub!(/GCXY/, 'genre_03_02.html" title="ジャンル別タイトル一覧 - xyzzy 関連">xyzzy')
      str.gsub!(/GC3D/, 'genre_03_03.html" title="ジャンル別タイトル一覧 - SOFTIMAGE|XSI EXP 関連">3D|XSI')
      str.gsub!(/GCMP/, 'genre_03_04.html" title="ジャンル別タイトル一覧 - MP3 関連">MP3')
      str.gsub!(/GCSW/, 'genre_03_05.html" title="ジャンル別タイトル一覧 - Web 制作関連">SiteWorks')
      str.gsub!(/GPMS/, 'genre_04_02.html" title="ジャンル別タイトル一覧 - 自サイト情報・自サイト制作記">MySite')
      str.gsub!(/GPRP/, 'genre_04_01.html" title="ジャンル別タイトル一覧 - お店、その他個人的なレポート">Report')
      str.gsub!(/GPED/, 'genre_04_03.html" title="ジャンル別タイトル一覧 - 自分の日常、独り言">Everyday')
    when :AFTER_TOPIC
      str.gsub!(H3TOPIC){
        link   = $1
        title  = $2
        gname  = $3
        t =  "<h3><a #{link}>#{title}</a></h3>\n"
        t << "<p class=\"genre\">#{gname}</p>"
      }
    end
  end
end

最後の辺で :AFTER_TOPIC で置換してるとこ、今迄やってたジャンル別設定のやり方も引き継いでみよう。と思ったんですけど。あれですよ。置換だけじゃ駄目なんですよ。

今迄やってたみたいに、トピックマーク(■)を残してそのマークだけにアンカーをつけるのとか、<p class="genre"> でも <span class="genre"> でもどっちでもいけるようにしたいんですけどね。そこら辺やるにはきっと何かしら最初の方に定義しとかなきゃいけないっぽいですね。色々な方のフィルタをパクいや参考にしてやろうと思ってごにょごにょやってんですけどね。どこをパクっていいのかさえ分からん状態でハマってるんでもう晒してみました・・。

昔のジャンル別設定の生成のされ方より、今現在のココの生成のされ方の方がいいなー。なんて奇特な方がいらっしゃいましたら下の genre.rb をコピペでどうぞ。ndiary.conf で設定しなきゃいけないとことかも書いてあります。

ほんでもって色々書き変えて自分用にして下さい。ってやっぱ意味ねーフィルタだな。何かな。

この記事は nDiary 使用時の記事をそのまま持って来たものです。

Utilities

Genre

Archives