無印吉澤(※新エントリはhatenablogに掲載中)

吉澤です。このサイトではIPv6やP2Pなどの通信技術から、SNSやナレッジマネジメントなどの理論まで、広い意味での「ネットワーク」に関する話題を扱っていたのですが、はてなブログに引っ越しました
最新の記事は http://muziyoshiz.hatenablog.com/ でご覧ください。
RSSフィードは http://muziyoshiz.hatenablog.com/feed に手動で変更するか、
Feedly or Live Dwango Reader を使っている方は以下のボタンで変更ください。
follow us in feedly Subscribe with Live Dwango Reader
«前の日記(2004/11/15) 最新 次の日記(2004/11/20)» 編集

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/,''))

(適当にやったらうまくいくなんて、一応やってみるもんだなぁ……。)

いやぁ、素晴らしい。これなら、はてなダイアリーでの日記も簡単に移植できそうです。やれやれ。

本日のTrackBacks(全1件) []
# 絵文録ことのは:「はてな」はウェブ上のシステム手帳になりえる。そして「はてな記法」の秘める可能性について。 (2005/06/13 00:21)

伊藤直也さんの「はてながこだわるWebサービス提供の本音」(1・2・3 CNET Japan)は、表現そのものは技術者向けの専門的なものになっていたが、興味深く読んだ。勝手に要約すると、これからのウェブサービスに必要なのは、自分たちの開発したシステムを外部からも活..


2004|06|07|09|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|10|11|
2009|01|02|03|04|05|07|08|10|
2010|01|03|
2015|03|
スパム対策のため、60日以上前の日記へのコメント及びトラックバックは管理者が確認後に表示します。
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。