
2004/11/19
■[tDiary]はてな記法ジャンキー
さて週末になったことだし日記でも書こうとキーを叩いていたんですが……なんか全然書けません。どうも、はてなダイアリーの記法に慣れすぎてしまったのが原因みたいです。
----
「郷に入っては郷に従え」ということで、前回はtDiaryスタイル(tDiary標準の日記フォーマット)で日記を書いていたのですが、今日の日記を書いているときに、単一セクションの途中に<pre></pre>で囲まれた文字列を埋め込もうとすると出力がおかしくなることに気づきました。具体的に言うと、例えば以下の様に入力すると「最初が『<』で始まる段落がある場合、そのセクションは全体が整形の対象にならなくなる」というtDiaryスタイルのルールに従って、1行目や2行目の部分が<p></p>で囲まれなくなってしまいます。
サブタイトル(1) 1行目 2行目 <pre> 整形しない範囲。 しませんよ。 </pre> 3行目
<pre>だけセクションを分けるのも気持ちが悪いので、tDiaryスタイルは却下。
----
そこで次に試したのがWikiスタイル。こちらはtDiaryスタイルと違ってセクションの区切りに空白行を使っていないため、<pre>についてはうまくいきました。ただ、パラグラフの途中でむりやり改行させようと思うとHTMLで「<br>」を書くしかなく、Wikiスタイルでは以下のように書く必要があります。
{{'<br>'}}
……なんか感情的に物凄くイヤなのでWikiスタイルも却下却下。
----
僕は普段howm(一人お手軽 Wiki もどき)をrd-modeで使っているのでRDスタイルもいいかなぁと思ったのですが、RDとの違い&生HTMLの記述方法が気になって却下。
----
で、結局、なんか負けたような気分になりながらもHatenaスタイルに落ち着きました。contribから取り出してインストール(v1.9)。このスタイルはHatenaスタイル作者のmput氏の趣味で「2行の空行でパラグラフ区切り」というルールになっているので、はてなダイアリーと同じ「1行の空行でパラグラフ区切り」というルールになるように修正しておきました。
%diff hatena_style.rb.old hatena_style.rb 357c357 < break if buffer[-3..-1] == "\n\n\n" --- > break if buffer[-2..-1] == "\n\n" 624c624 < @elems = Hatena::Inline.new(str.gsub(/\n\n\n/,'')) --- > @elems = Hatena::Inline.new(str.gsub(/\n\n/,''))
(適当にやったらうまくいくなんて、一応やってみるもんだなぁ……。)
いやぁ、素晴らしい。これなら、はてなダイアリーでの日記も簡単に移植できそうです。やれやれ。
伊藤直也さんの「はてながこだわるWebサービス提供の本音」(1・2・3 CNET Japan)は、表現そのものは技術者向けの専門的なものになっていたが、興味深く読んだ。勝手に要約すると、これからのウェブサービスに必要なのは、自分たちの開発したシステムを外部からも活..
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。