毎秒1000リクエスト を捌く超高速CMS「adiary」
2007/12/26(水)はてなテーマ集 2007/12/26版
はてなテーマ集2007/12/26版をGPLライセンスに従い公開(再配布)しました。
2007/11/30(金)adiary開発スケジュール
2007/10/25(木)テーマ開発ドキュメント
テーマ開発ドキュメントを作成、公開しました。疑問、アドバイスなどありましたらお知らせください。
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/04/28(土)WordPress XML形式のインポート対応
adiary 1.30以降(β含まず)では、WordPress XML形式のインポートに対応しました。
注意点など
WordPressのエクスポートには(ME2.1.3現在)EUC-JP環境で文字化けする既知の問題があります。
wp-admin/export.php がエクスポートの実体で、大半はデータベースから引っ張ってきたデータをそのまま出力しているのですが、タイトルやカテゴリの出力の際だけ
<title><?php bloginfo_rss('name'); ?></title> <title><?php the_title_rss() ?></title> <?php the_category_rss() ?>
というよりにRSS出力ルーチンを呼び出しています。RSS出力ということは当然 UTF-8 です。その他のデータベースから取り出したデータは EUC-JP です。1つのファイルに複数の文字コードが混在することになり、かなり致命的です。
こういう部分をみると、元々他言語対応でないシステムを他言語対応にするのって大変なんだなって思いますね(^^;
……以前より実装されいてるSQLバックアップの方がトラブルは発生しないと思いますが、WordPress2.1.xにはその形式出力はない模様。wp-db-backup か phpMyAdmin でデータベースをダンプしてインポートください。