毎秒1000リクエスト を捌く超高速CMS「adiary」
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リリース情報の該当乗り換え処理を行ってください。
2007/05/08(火)adiary Version 1.31リリース情報
本リリースは、おもに Version1.30 のバグフィクスです。テストしているので大丈夫だとは思いますが、心配な方は数日様子を見てから導入してください。
- Ver1.311 (2007/05/09)
- カレンダーが表示されなくなる不具合を修正。カテゴリのページ送りの問題を修正。
Ver1.30→Ver1.31の変更点
- 日付部のリンクを復活させ、日記モードならば日付リンクを、blogモードならば記事IDリンクを生成するようにしました。
- タイトルの無い記事の扱いを変更し、タイトルのない記事では日記表示の際にタイトル欄が表示されないようにしました。*1
- 最初の記事のフッタ(後部)のみに表示する埋め込みテキスト <@s.bodyend_1st> を作りました。(Thanks to ASANO)
- カテゴリ検索などのQuery形式を若干変更しました。
- メール投稿の pop_mode においてエラー原因をログに記録するようにしました。
- Perlink が分かりにくいので、日付をリンクしないようにしました(日記帳の設定でリンクさせることもできます)。
- 管理者ユーザーのみトラストモードに設定できるようになりました(Thanks to なゆた)。
- 【メール投稿】popモード時、書き込み時刻を DATE ヘッダから生成するようにしました。([ml:users:55:Thanks to hitoxu])
- 【fix】Microsoft-IIS + perl.exe 環境において、redirect+Cookieかうまく行かないIISのバグに対策しました(READMEを参照ください)。
- 【fix】Microsoft-IIS環境において64KB以上のファイルをインポートまたはアップロードすると、CGIが応答しなくなる問題を解消しました。
- 以下は浅野さんよりパッチ付きでバグ報告頂きました。ありがとうございます。
- 【fix】日記データをインポート時、トラックバックURLから"-"が除去されてしまう問題を修正しました。
- 【fix】Google AdSense や Amazon Associate 用モジュールタグの不具合を修正しました。
- 【fix】カレンダーで「みどりの日」「海の日」「文化の日」が正しく表示されない等の問題を修正しました。
- 【fix】「一覧(複数)表示のとき」の 「開閉(スイッチ)」の設定が反映されない問題を修正しました。
- 【fix】任意のIDで作成した日記帳にメール投稿できない不具合を修正しました。日記帳の詳細設定→携帯設定を確認ください。([ml:users:49:Thanks to hitoxu])
- 【fix(1.30-)】メール投稿時、書き込みパスワードが dummy に化けてしまうバグを修正しました。([ml:users:52:Thanks to すがぬま])
<@s.bodyend_1st> を追加した関係と日付をリンクオフにする機能の関係で _main, _main_onelog が変更されています。スケルトンを直接書き換えている方でそれらの機能を利用する場合は追従してください。
Version1.30β以降(1.29以降)からの乗り換え
そのまま上書きしてください。
- テーマは一切変更はないのでテーマなし版で十分です。
- カテゴリ検索などのQueryが変更されているので任意の日記を保存するか、複数日記帳がある場合は管理者でログイン後「システム管理→付属情報の再生成」を行ってください。
- 検索も変更されているため、日記本文内で検索を利用している方(はてな式カテゴリを利用の方)は、すべての日記を再構築してください。
Version1.21~1.22からの乗り換え
上書き後、管理者ユーザーでログインし「管理」→「システム管理」→「管理者メニュー」→「Version 1.22以前 → Version 1.30以降へのアップグレード」を行ってください。
- popup記法や,Amazon記法の画像popupをご利用の方は、該当の日記帳で「日記帳の再構築」を行ってください。
Version1.20以前からの乗り換え
本リリースを上書き後、先にVersion1.21リリース情報の該当乗り換え処理を行ってください。