
遂にやりましたでございますよ! 夢が叶いましたのですよ! ここの今現在のソースを見れば分かるんですが、要するに

になってくれたのです。このふつー過ぎる当たり前の状態に、やっとでなってくれたのでございますよー。ぉぉぉ・・。神代。
で、今のところはそのまんま autoreplace フィルタを使いつつ、昨日の erewhontag フィルタを以下の genre フィルタなるモノにでっち上げ。
class Filter
H3TOPIC = Regexp::compile(/<h3><a (.+?)>■<\/a>(.+?)<p class=\"genre\">(.+?)<\/p><\/h3>/)
def genre(str, type)
case type
when :AFTER_TOPIC
str.gsub!(H3TOPIC,"<h3><a \\1>\\2</a></h3>\n<p class=\"genre\">\\3</p>")
end
end
end
\n が入ると、\1, \2 が \\1, \\2 てなふうになる。とゆう法則を発見するのに数時間(ぅぉーぃ・・・)かかりつつ、以下の change フィルタもでっち上げてとゆうかパクらせて貰って、色々自分好みの記述になるようにしてみました。
class Filter
def change(str, type)
case type
when :AFTER_ONEDAY
str.gsub!(/<h3 class="date"><a (.+?)><\/h3>\n/, '')
str.gsub!(/<div class="topic">/, '<div class="section">')
str.gsub!(/<div class="topicbody">\n<p class="date">(.+?)<\/p>/, "<p class=\"date\">\\1</p>\n<div class=\"subsection\">")
str.gsub!(/<p id="d(.+?)>/, '<p>')
end
end
end
gsub!: 日付を生成させなくする。gsub!: class の topic を section に。gsub!: class の topicbody を subsection にしつつ、日付表記の <p class="date"> を subsection の外(上)に出す。gsub!: 段落に id が付いてたら消す。4 行目の段落 id のやつは、ndiary.conf で設定して無いけど何故か出て来るので、本体の記述をコメントアウトしてたんです。そのコメントアウトを外してこっちで処理するようにしました。多分ウチが何かしら色々と変な事やってるからだと思われ・・。
結局、昨日の erewhontag フィルタが私を助けてくれました。やっぱあれは複線だったんだ・・・。あれいじってて、:AFTER_TOPIC とか :AFTER_ONEDAY とかの意味がやっとで分かったのです。:AFTER_TOPIC 使えばジャンルの記述を <p> に置換しちゃっても大丈夫だったんですな。
ほんでもって nDiary 本体の至る所にしてあったコメントアウトも、だいぶ外す事が出来ました。まだちょっと残ってるけど。
色々考えて行けば、最終的にジャンル別設定云々も autoreplace フィルタを使わずに作れるのかなあ。とか思いながらまたそこら辺を探る度に出るます。
この記事は nDiary 使用時の記事をそのまま持って来たものです。