まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary

2006/05/30(火)5/30版スナップショット

更新内容

  • JUGEM形式のインポートに対応しました。
  • adiary/Movable Type/JUGEM(Serene Bach拡張含む)形式のエクスポートに対応しました。
  • 分類の表示順を自由に変更できるようにしました。
  • 【標準パーサー】指摘された、注釈本文を title="" に入れる際、タグテキストまで入ってしまう問題に対応しました。
  • 要望にあった、カテゴリの表示優先度を指定機能を付けました。カテゴリの編集から入ってください。
  • Movable Type系システムとの互換性のため(記法タグが無効な)シンプルパーサーを用意しました。
  • その他、多数のバグ修正
  • その他、細かい調整

tdiaryからのコンバーターを含めると実に多量のエクスポート形式とインポート形式に対応していることに(苦笑) なんかblogシステムとしてより、コンバーターとして普及しそうな予感(^^;; まあほかに対応してほしいものがあったら、エクスポートされたログファイル(または仕様書)と共にお申し出ください(ぉぃ

2006/05/25(木)5/25版スナップショット

  • セクションアンカー、サブセクションアンカーを任意に設定できるようにしました(日記帳の設定より)。
  • その関係で、従来から引き継ぎの場合は「日記帳の詳細設定→パーサー関連の設定→セクションアンカー」に「■」を設定してください。*1
  • tDiaryスタイル互換パーサーに amazon.rb 相当の機能を実装しました*2
  • ローカルIP/グローバルIP併用サーバでの運用対策を再々度修正。3度目の正直?(^^;
  • 内部のファイル/SELECT文キャッシュ機構において、キャッシュそのものではなくキャッシュのコピーを返すよう変更しました。*3
  • RSS 内の相対リンクを絶対リンクに書き換えるようにしました。
  • その他、色々bug-fix

*1 : 未設定のときに標準設定を読み出す仕組みがあればいいんですが、スマートな方法が浮かばす考え中

*2 : 他に欲しいもの、欠かせないもの、何かありますか? >tDiary user

*3 : 数ms遅くなりましたが、安全のために気にしない方向で

2006/05/24(水)5/24版スナップショット

tDiaryスタイルのパーサーは非常に簡単でした。1パスのパーサー、1時間ちょいで出来ました。標準パーサーもこれぐらいスリムにしたいけど……無理、絶対無理(苦笑) いやたぶん現状4パスを3パス、2パスぐらいにまではできると思いますが、ソースがスパゲティーの極みみたいになるので、処理速度よりも安全(+メンテ性)を取ります、はい(^^;

tDiaryって普及している割に、インポーターもエクスポーターもないんだよなぁ……。公式に作る気はないんだろうか……というよりも、プラグインで誰か作りましょうってことなのかもしれず。

2006/05/23(火)5/23版スナップショット

  • Movable Type形式のインポートに対応しました*1
  • 【TextParser】perlモジュールによるタグの拡張をプラグイン式として実装しました。
  • その他、細かいbug-fix

余談ですが

Movable Type形式そのもの(Movable Typeの実装)に欠陥があり、本文データにセパレータである「-----\n」や「--------\n」を含むとまともにインポートできない(Movable Type自身ですら読み出せない)Movable Type形式のデータを吐き出します。それでいいのかMovable Type(笑

まぁ、説明のタイトルからして「Movable Type形式フォーマット」ではなく「Movable Typeの読み込みフォーマット」なので、書き出しはおまけ*2なのだと思いますが(笑)

*1 : テストデータを提供して頂いたrinさんありがとうございました。

*2 : MT→他のblogシステムは考慮外ということ

2006/05/20(土)5/20版スナップショット

  • はてな/adiary形式のインポータを作成しました(Movable Type形式はまだ)。
  • シングルユーザーモードでのカテゴリ検索の不具合を修正。
  • w3m でうまく動作しない不具合に対応しました。
  • 一部のフォームが<input type="input">と意味不明なことになっていたので修正しました*1
  • 【TextParser】listブロック中やtableブロック中でコメントやエスケープ処理に問題があったのを修正しました*2。また、はてな記法との互換性を若干高めました。
  • 【TextParser】[[keyword]]はすべてはてなキーワードへのリンクにしておいたのですが、pukiwiki的記法と間違えやすいようなので、\[(\[[\w\-]+?:.+?\])\]なときは二重括弧も通常の括弧[tag]記法表記と同一に扱うようにしました。
  • 【文字コード変換】http://www.fiberbit.net/user/hobbit-t/html/jcode.html で指摘されている全角なみ線(~)等のUTF-8変換表問題(文字化け)に(かなり後ろ向きに)対応しました(汗)。
  • その他、細かいbug-fix

テキストパーサーの変更。

従来	[[tag-name:data]] → [keyword:tag-name:data]	はてなキーワード記法
改変	[[tag-name:data]] → [tag-name:data]		通常の省略記法

UTF-8変換問題について

昔から言われているUnicodeコンソーシアムの変換表問題です。詳細はこちらのサイトを参照頂くとして、この問題(バグ?)に対応しないと、通常の環境(Windows等)でまともに表示出来ない文字になってしまいます。以下は後ろ向きな対応ソース。よく使う文字以外は無視しました。

if ($EXTRA_UTF8_PATCH && $from =~ /UTF.*8/i) {
	$$str =~ s/\xEF\xBD\x9E/\xE3\x80\x9C/g;	# ~ EFBD9E E3809C
	$$str =~ s/\xEF\xBC\x8D/\xE2\x88\x92/g;	# - EFBC8D E28892
	$$str =~ s/\xE2\x88\xA5/\xE2\x80\x96/g;	# ∥ E288A5 E28096
}
(中略)
if ($EXTRA_UTF8_PATCH && $to =~ /UTF.*8/i) {
	$$str =~ s/\xE3\x80\x9C/\xEF\xBD\x9E/g;	# ~ EFBD9E E3809C
	$$str =~ s/\xE2\x88\x92/\xEF\xBC\x8D/g;	# - EFBC8D E28892
	$$str =~ s/\xE2\x80\x96/\xE2\x88\xA5/g;	# ∥ E288A5 E28096
}

なお、確認した限りにおいてはてなダイアリーではエクスポートは正しい文字コードで行われる(修正された文字コードを出力する)が、インポートでは誤った文字コードしか認識しないようです。*3

おまけ。はてなダイアリーのMovable Type形式でのエクスポートデータを他のblogシステムで読み込むと表示かおかしくなる問題について。データ全体から「CONVERT BREAKS: 1」→「CONVERT BREAKS: 0」に変更すると幸せになれます。……というかはてなダイアリー側で修正した方がいいような気も……(;;

(変更前)
	ALLOW COMMENTS: 1
	CONVERT BREAKS: 1
	ALLOW PINGS: 1
(変更後)
	ALLOW COMMENTS: 1
	CONVERT BREAKS: 0
	ALLOW PINGS: 1

*1 : w3mで表示させてはじめて発見……最近のブラウザ賢すぎです(涙)

*2 : 1パス増えて結局4パスになりました(汗

*3 : つまりはてな形式でエクスポートしてから、そのデータをそのままはてなで読む込んだ時に「~」などが文字化けすることになります。