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

2006/07/22(土)テンプレート

Serene Bachをいじってみてる

「やっぱり普及するには、見た目(デザイン)は大切ですよ」

と言われたこともありまして、Serene Bachをいじってます。もちろんインポート/エクスポートで対応しているぐらいだから一度インストールしてるんですが。Amazonのオススメがスクリプト上から選べるのは楽でいいなぁ……とか思いながら、いざのテンプレート機能。ブラウザからアップロードできるのは楽でいいです。

Serene Bach/JUGEM系のテンプレートは、(ある意味でかたい感じのする)はてなのテーマに比べて愉快で楽しそうな感じのテンプレートが結構ありまして*1、使えるようにできたらいいなあと検討しています。

adiaryでテンプレートに相当するスケルトンは本当に何でもできるので*2、十二分にカバー可能なのですが、その一方で「なんでも出来すぎて普通に人にはいじりにくい」から「スケルトン(テンプレート)を生成するためのテンプレート機能が必要ではないか?」なんてお話を頂いたりしてました*3。たしかにそうかもしれない。

規格乱立はリソースの無駄遣いに他ならないので、その場合はやっぱりSerene Bach/JUGEM系互換を狙うのかなあとか考えております*4。すぐに対応というわけにはいきませんけど、検討は重ねておきます。意見とかありましたらどうぞ↓

*1 : ただ、GPLライセンス文化がないので配布場所が一箇所に纏まってなくてそういう意味では不便なのですが

*2 : 極端な話、第3者がSpyware的なテンプレートを配布することも可能なわけです……

*3 : adiaryはこうやってユーザーの要望に対応することで進化してきたので感謝、感謝。

*4 : 内部的にはテンプレートコンバータの作成と内蔵に他ならないのですが

2006/07/11(火)adiaryのパーサー

パーサーの単独配布?

adiaryのパーサー(入力記法システム)はかなり強烈かつ便利なわけですが*1、これをadiaryのためだけに使うには勿体ない。やってる内容的に、ちょっと書き換えれば standalone で動くモジュールになります(つまりSatsuki-systemなしで単独で使用可能になる。*2)。

はてな互換記法もそこそこ乱立してる上に、結構需要があるみたいなので。完全互換ではありませんが、非互換部を差し引いても余りある機能追加がありますので、要望があればテキストパーサー単独でLGPLライセンスぐらい緩い使用条件で配布してもいいかなとは思っています。

ただ記法の乱立(混乱)抑制が目的なので、実装済記法(機能)のいくつかをプロテクト(改変禁止)するかもだけど。

追記

本家のはてな記法CPANにあるらしいよ(なんでだれも使わないんだろう……*3

余談。

例えば「id:jkondo」と書いた時にどこにリンクすればいいんだ、

adiaryでは id:xxxxx は、はてなインポーターで[hatena:id:xxxxx]に変換され、それを書くと最終的にはxxxxx となります。[id:xxxxx]は今のところ未定義です...

*1 : ユーザー定義タグ機能が特に便利

*2 : 単なる入力変換装置なのでかなり自由に使えるし、実際問題マニュアル整備目的の機能も少し追加してある

*3 : たぶん自分と一緒で存在を知らないからだと思うに1票

2006/07/06(木)画像アップローダ

「せりかのアルバム」システムと adiary の連携はとてつもなく便利なのですが、Perlがあればどこでも動くをウリにしている adiary としては、ユーザーランドでの make が必須であるアルバムシステムがないと画像アップできないのは問題だろうということで。

今アップローダー書いてます。そのうちに、フォーム処理のセキュリティーホールを見つけました……。んんー、これだけセキュリティに気を遣って書いてるのに、まだセキュアな問題があったとはなぁ*1

というわけで adiary は数日中にもβ配布予定です。

*1 : bugではないんだけども……

2006/06/16(金)最近の開発

最近の開発

最近はもっぱらC++ですよっ。というのは画像アップロードのために某アルバム用プラグイン&adiary専用プログラム*1の作成なわけです。

受け側であるadiaryの機構もいい加減何か考えないとなぁーという感じで、そこもちょっと悩み中。というわけで客観的に見せられる成果もなく停滞気味に映ると。

もう一つ開発中

トラックバックや更新通知Ping用に簡易なHTTPエージェントモジュールがあるのですが、そいつを改造してCookieを食べられるようにしています(笑) 本格的に作り始めると巨大モジュールになるので、その辺も適度に簡易実装。

さて何を作る気なのか……は、お楽しみに。

*1 : 承認プラグインはダメだけど、メイン部は他blogシステムでは十分流用可能

2006/05/31(水)インポータ/エクスポータ

インポータ・エクスポータあれこれ

はてな形式エクスポーターを実装しました。結構苦労しましたが、これの元ソースを突っ込んでも、きちんと表示されるぐらいに変換する(でも*見出しや-のリストなどはそのまま残す)ルーチンを作りました。

結局4~5種類のインポート/エクスポートを作成しましたが、かなり気合い入れてます。どうも他のブログシステムだと入力本文によっては自分自身ですらインポートできなかったり*1、改行を<br>に置換するフラグすらまともに設定してなかったり*2、書式を拡張したせいで一部ツールと互換性なくなってたり*3とか、ものによってはファイルフォーマット(形式)だけ変えて中身そのままってそれ変換って言わないですから。

例えば、tdiary2adiaryコンバータのはてな形式変換ならば、tDiaryの入力スタイルを適切に判断して最も近い形のはてな形式に変換、はてな形式→adiaryインポータでは記法の非互換部分を変換ルーチンで吸収(の山*4)、その他インポーターでは特殊な意味をもつ本文入力をエスケープ処理。

エクスポーターでは『使用しているパーサー』と出力方式によって変換方法を切り替えてます。はてな形式への出力に至っては、adiaryなら互換性の高い部分は元の文章をのこしつつ非互換な部分は部分的にパーサーを通して整形し、tDiary形式ならばtdiary2adiaryに実装されているはてな向けコンバータと同様の処理をして、シンプルパーサーならば、はてな向けの特殊記法のエスケープ処理を噛まして……という具合です。

もっともエスケープ処理ぐらい当たり前の話なんですけど、大半のblogはそれすら……(以下略


一応全部(境界条件にて)デバッグしてますが、完全じゃないので、何かうまく行かない問題があったら遠慮なくどうぞ。あと対応して欲しい形式があったら、エクスポートしたログファイルと一緒にどうぞ。

*1 : Movable Typeの「-----」問題、はてなのUTF8問題など

*2 : はてなのMovable Type形式エクスポート

*3 : Serene BachのJUGEM XML。XMLの要素を追加するのは構わないと思いますが、既に定義されているDATEの書式を変更するのは問題かと……

*4 : はてな記法と似ていますが、adiary標準パーサーはできるだけ例外的な処理をなくすという方針のため、非互換部分が結構あります