毎秒1000リクエスト を捌く超高速CMS「adiary」
2007/07/12(木)2007/07/12版ToDo
マニュアルは現在執筆中です。ToDoはいくらか整理しました。
そのうち処理
あとで処理(ペンディング)
気まぐれで先に処理されることも多々あるんですが。要検討含む。
- ユーザー自身によるユーザーの登録機能
掲示板スケルトンの作成→ボツ(2007/10/25)- コメントの検索
- Googleのようなページ送り
静的生成機能(Ver1.42。ただし、いわゆる静的生成blogとは少し違う)- 複数カテゴリ
- 管理者のみ、公開設定をできる機能?(小沼さん)
グループウェア的機能? 予定表機能? グループブログ機能?*1 →ボツ(2007/10/25)- プラグイン仕様の策定
adiaryへの要望などは
メーリングリストかこの記事にコメント or トラックバックでお願いします。バグ報告は該当のリリースアナウンス、よく分からなければこの記事までお願いします。
2007/06/27(水)adiary 1.40 の新機能について
- 1wiki的拡張
- 1.1wiki的拡張
- 1.2特定の記事を常に表示させる
- 1.3メニュー項目として外部リンクを置く
- 1.4
メニュー項目のタイトルを短く表示する - 1.5いわゆるwikiとの相違点
- 2その他の機能拡張
- 2.1シングルユーザーモードの拡張
- 2.2管理者以外の日記帳の作成を禁止する
- 2.3toc記法(目次記法)
- 2.4ニコニコ動画記法
1wiki的拡張
Version 1.40 の最大の目玉はwiki的拡張です。ブログを書いているとそれがメインになってしまうのですが、ブログ以外の静的なコンテンツも置きたいと思うことは結構あります。とはいえ、一度ブログになれてしまうと静的コンテンツのためにHTMLを書くのは非常に煩雑に感じます。静的コンテンツもブラウザからささっと編集したい。
そんな要望に答えるための拡張が、wiki的拡張です。箇条書きにすると次のようになります。
- 従来までURLの後ろに付いていた記事ID(0123等)の代わりに、任意の文字列を指定することができます。
- このような(静的)コンテンツを自動的にメニュー化します。
- 静的コンテンツに階層構造を持たせることができます。
実際どんな感じになるのかと言うサンプルは adiary official page をご覧ください。オフィシャルページは adiary によって作成されています。
1.1wiki的拡張
wikiコンテンツの作成は簡単です。日記編集画面の「wikiコンテンツにする」にチェックを入れます。
親コンテンツには階層構造として親を選択します。最初はトップのままにしておきます。コンテンツkeyはURLの一部になります。優先度は数字を入れます。コンテンツの並び順を変更する際に利用してください。
1.2特定の記事を常に表示させる
コンテンツキーとして「FrontPage」や「top」などを指定すると、そのブログのトップを開いたときに最近の記事一覧ではなく、そのkeyを持つ記事を1つだけ表示させることができます。
1.3メニュー項目として外部リンクを置く
コンテンツキーに「/」や「http://」で始まるリンクをおくと、メニューの項目から外部ページをリンクさせることができます。
1.4メニュー項目のタイトルを短く表示する
コンテンツのタイトルを「[adiary]adiary official website」というふうに先頭に [~~~] と書くことで「~~~」の部分だけをメニューの項目として表示させることができます。
ボツにしました。Ver1.42移行では無効になります。
1.5いわゆるwikiとの相違点
- 編集履歴が残らない
- アカウントがないと編集出来ない
2その他の機能拡張
2.1シングルユーザーモードの拡張
従来ひとつのadiaryで複数のブログを管理する際、adiaryのトップページとして常に日記帳の一覧画面が表示されていました。スケルトンをカスタマイズすることで変更することは可能でしたが、デフォルトとして特定の日記帳を表示させることができませんでした。
Version1.40では、シングルユーザーモードは単なるデフォルトで表示するblog-IDという意味しか持ちません。
<$v.single_mode="adiary">
と書かれていても、adiary というIDのブログを標準で表示するだけで、これ以外の任意のIDでブログを作成することができます。*1
2.2管理者以外の日記帳の作成を禁止する
adiaryでは1つのブログを複数のID(人間)で管理することが可能でしたが、アカウントを持つ人間は無条件に日記帳(ブログ)を作成することが可能でした。これを禁止するためには、次の設定を adiary.conf.cgi に記述してください。
# <$v.single_mode="">の近辺 <$v.root_only_daybook_create=1>
2.3toc記法(目次記法)
ある記事内の、セクションのリストを自動で生成する記法ができました。セクションのリストを出したいところで [*toc] と記述します。
もしこの記事のように、セクションに自動的に番号を振った状態で項目リストを作りたければ次のように入力します。
[*section_number] [*toc:number]
2.4ニコニコ動画記法
URLが http://www.nicovideo.jp/thumb?v=sm214086 ならば、
[nikoniko:sm214086:47都道府県のイメージ]
2007/06/27(水)adiary Ver1.40 リリース情報
Ver1.32→Ver1.40の変更点
- wiki的拡張が実装されました。
- toc記法(目次記法)ができました。
- サイドメニューのサブカテゴリを閉じるようにしました。
- key記法とid記法を厳密に区別しました*1。
- シングルユーザーモードでも任意IDで日記帳が作成できるようにしました。このとき、<$v.single_mode> に指定したIDはあたかもデフォルトBlog-IDのように振る舞います。
- 日記帳の作成を管理者のみに制限できるようになりました。*2
- コメントを新しい順に表示できるようになりました。日記帳の設定を参照。([ml:users:89:Thanks to Vina])
- 更新通知Ping送信のとき、ホスト接続時もタイムアウトするようにしました。
- 【記法】ニコニコ動画記法ができました。
- 【サイドバーモジュール】なかのひとモジュールができました。
- 【画像アップ】Image::Magickがあるとき常にサムネイル表示タグを生成していましたが、オリジナルサイズ表示を選択できるようになりました。
- 【仕様変更】コメント欄では & の入力を常に & へエンコード(エスケープ)するようにしました。
- 【Security fix】無効なID入力時にログイン処理の一部を通過してしまうバグを修正しました。
- 【fix】擬似データベース使用時、日記帳一覧画面などでカテゴリ名などでのソートが無効であったバグを修正しました。(Thanks to ezpress)
- 【fix】- + * | : = > < #のみの行があった場合、誤って除去されてしまう記法ルーチンのバグを修正しました。(Thanks to なゆた)
- 【fix】ユーザーテキストなどで &と入力した際、次編集画面で & に置き換わってしまうバグを修正しました。(Thanks to なゆた)
- 【fix】UTF-8版を利用時、IEでadiary.js がエラーとなる問題に対応しました。(Thanks to ひまを)
- 【fix】カテゴリ一覧からのリンクURLが正しくないことがある問題を修正しました。(Thanks to sahara)
- 【fix】さつきパーサーの段落処理が正常に行われなくなっていたため修正しました。(Ver1.40β以降)
- 【fix】URL自動リンク記法で : を含むURLを認識できない問題を修正しました。([ml:users:114:Thanks to 浅野])
- 【廃止】wiki拡張とユーザーモード拡張に伴い、存在意義のなくなったマルチユーザーモードのトップ画面を指定する機能を削除しました。*3
Version1.30β以降(1.29以降)からの乗り換え
以下を実行した後、上記バージョンの乗り換えを行ってください。
- カテゴリ検索などのQueryが変更されているので任意の日記を保存するか、複数日記帳がある場合は管理者でログイン後「システム管理→付属情報の再生成」を行ってください。
- 検索も変更されているため、日記本文内で検索を利用している方(はてな式カテゴリを利用の方)は、すべての日記を再構築してください。
Version1.21~1.22からの乗り換え
以下を実行した後、上記バージョンの乗り換えを行ってください。
上書き後、管理者ユーザーでログインし「管理」→「システム管理」→「管理者メニュー」→「Version 1.22以前 → Version 1.30以降へのアップグレード」を行ってください。
- popup記法や,Amazon記法の画像popupをご利用の方は、該当の日記帳で「日記帳の再構築」を行ってください。
- これより上にある乗り換えの案内も実行してください。
Version1.20以前からの乗り換え
本リリースを上書き後、先にVersion1.21リリース情報の該当乗り換え処理を行ってください。
Special Thanks
adiary の wiki的拡張βテスト にご協力頂いた方々(順不同)
- なゆたさん
- ひとぅさん
- 浅野さん
- せりかさん
2007/06/26(火)Firebird という RDBMS があるらしい
オープンソースな RDBMS は PostgreSQL, MySQL しか知らなかったのですが、Firebird というのがあることを知りました。見つけてしまったからには対応してみようかなと思うのが人情というもの(?)なんですが、使いたい人がいるのかどうか(^^;
さて、長らくお待たせしました次期新バージョン「adiary1.40」ですが、今月中にリリース予定です。
2007/05/20(日)Version 1.32 リリース情報
Ver1.31→Ver1.32の変更点
- 一件ずつ記事を送れるようになりました(次の記事、前の記事)。(Thanks to serika)
- パスワードアタック対策をしました。デフォルトでは連続15回失敗すると、最後に失敗したときから10分間ログインできなくなります。
- ファイルモードを 0600 に設定した場合、RSSファイルが読めなくなってしまう問題に対応しました。(Thanks to なゆた)
- パス自動解析ルーチンを一部変更しました。Apache標準から改造してあるサーバでの mod_rewrite 対策です。
- 【携帯】携帯からのアクセス時、Content-Length を返すようにしました。([ml:users:69:Thanks to ひとぅ])
- 【記法】Googleトランジットタグを作成しました(例[g:tr:東京:大阪])。
- 【記法】TABLE記法で summary, caption が指定できるようになりました。(Thanks to なゆた)
- 【fix】はてなブックマーク追加アイコン"B!"のURLが正しくなかったので修正しました。([ml:users:85:Thanks to ひとぅ])
- 【fix】非公開日記のカテゴリが一覧に表示されてしまう不具合を修正。(Ver1.30~)
Version1.31からの乗り換え
- そのまま上書きしてください。
- 単一記事送りは、適当な記事を一度保存すると有効になります。
- 詳細デザインをご利用の方は日記の(単一表示)次のようにしてください。
<module name="page-send" class="calendar page-head"> <module name="day-default"> <module name="page-send" class="calendar page-foot"> <@s.text_main1>
Version1.30β以降(1.29以降)からの乗り換え
以下を実行した後、上記バージョンの乗り換えを行ってください。
- カテゴリ検索などのQueryが変更されているので任意の日記を保存するか、複数日記帳がある場合は管理者でログイン後「システム管理→付属情報の再生成」を行ってください。
- 検索も変更されているため、日記本文内で検索を利用している方(はてな式カテゴリを利用の方)は、すべての日記を再構築してください。
Version1.21~1.22からの乗り換え
以下を実行した後、上記バージョンの乗り換えを行ってください。
上書き後、管理者ユーザーでログインし「管理」→「システム管理」→「管理者メニュー」→「Version 1.22以前 → Version 1.30以降へのアップグレード」を行ってください。
- popup記法や,Amazon記法の画像popupをご利用の方は、該当の日記帳で「日記帳の再構築」を行ってください。
- これより上にある乗り換えの案内も実行してください。
Version1.20以前からの乗り換え
本リリースを上書き後、先にVersion1.21リリース情報の該当乗り換え処理を行ってください。