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

2007/05/03(木)adiary wiki?

adiaryの記法に慣れすぎて、HTML書くのが面倒になってきたのでwiki的なものを作ろうかと検討してます。

とりあえず、PukiWikiYukiWikiを軽く触ってみたんですが、なんとまーシンプルな実装で(褒め言葉)。Wikiはもっと凝った作りだと勝手に思い込んでいたのですが、基本的には ?wikiname に対応するファイル(文字列のHEX展開.txt)が置かれているだけです。1データ1ファイル対応。*1

それとフロントページやインデックス、最近の更新なんかを別ファイルとして管理してるだけで……まあたしかに考えてみればそれで済むのか。

*1 : DB対応wikiだとまた違うでしょうが、今回はお手軽に

データ構造に悩み中

9. 賢いデータ構造と間抜けなコードのほうが、その逆よりずっとまし。

伽藍とバザール

とあるとおりデータ構造に非常に悩んでおります。

2007/04/30(月)adiary Version 1.30リリース情報

ダウンロードはこちらから

一応テストもしていますしβ公開して数日、大丈夫だと思いますが、Ver1.22が長らく安定であったため、安定を最重視する方はしばらく様子を見てからにしましょう。

Ver1.22→Ver1.30の変更点

  • プライベート日記モード(強制非公開モード)を強化し、日記帳一覧などにも表示されないようにしました。
  • 画像リンク、http記法リンクに rel 属性を設定できるようになりました(日記帳の詳細設定から行ってください)。
  • マルチユーザーモード時に、blog名を表示できるようにしました。
  • はてな新テーマのために若干の修正を行いました。
  • 非公開日記のカテゴリも扱えるように仕様変更しました。
  • 多重ログインができるようになりました*1
  • 記事ID(0123などの記事番号)を変えずにインポートする機能が付きました。
  • はてなライクな見出しカテゴリに対応しました。
  • WordPress XML形式のインポートに対応しました
  • MT/JUGEM形式でエクスポート時に投稿日時を日付設定から生成するよう指定できるようになりました。(Thanks to ひとぅ)
  • サイドバーに月別記事数リストを表示出来るようになりました。日記帳の設定から行ってください。(Thanks to ひとぅ)*2
  • 【記法】uncタグができました。
  • 【仕様変更】a target=_blank といった、裸の属性値がキャンセルされる仕様を変更しました。*3
  • 【仕様変更】</p > のような余計に空白を含む閉じタグを許可するようにしました。
  • 【内部処理】utf8 から他のエンコードへの変換が3倍ぐらい速くなりました
  • 【内部処理】日記の書き込み処理を高速化しました。*4
  • 【fix】Windows環境(IIS/AN HTTPD, Apache除く)において動作しないバグを修正しました。(Thanks to ひとぅ)
  • 【fix】画像の下部に1pxの空間ができる CSS の問題を修正しました。
  • 【fix】popupがIEでうまく動作しないバグを修正しました。*5
  • 【fix】URL自動リンクが ~ に対して無効だったので修正しました。
  • 【fix】空白を含むカテゴリ名を編集できないバグを修正しました。
  • 【fix】インポート画面で、はてな形式の取り込みオプションが表示されない不具合を修正しました。*6
  • その他細々とした修正。

変更点について

ユーザー承認関係を変更した関係で、アップグレード用にファイルを差し替えると、ログイン中のセッションがすべて無効になります。ご了承ください。(ログインしなおしてください)

マルチユーザーモードのtopにblog名を表示出来るようになりました。blog名を一覧するタイプのトップページを表示するには、adiary.conf.cgi の次の箇所を修正してください(表示確認は移行処理を行ってからお願いします)。

<$v.multiuser_top_skelton = "_multiuser_top">
↓
<$v.multiuser_top_skelton = "_multiuser_top2">

他にもマルチユーザモード関連の設定項目が増えておりますので、必要ならば新しいサンプルを参照ください。

はてなライクな見出しカテゴリに対応しました。

*[test][カテゴリ]見出し

システム上カテゴリとしては認識してないのですが*7、検索への自動リンクを張りますので実用上はあまり問題ないと思います。

月別リストをサイドバーに表示する際、詳細デザインを利用している方は、

<module name="month_list">

を表示したい位置に追加の上で、日記帳の詳細設定→サイドバー設定から「月別記事数リスト」をチェックしてください。

*1 : 標準ではオフです。セキュリティの観点からあまりおすすめはしません。

*2 : この関係で _sidebar.html が一部加筆されています。スケルトンを直接カスタマイズしている方は必要に応じてマージしてください。

*3 : HTMLの仕様としてはよろしくないのですが……。

*4 : 安全重視処理のため、5回ぐらいデータベースや設定ファイルに更新(update/write)をかけていたのを、まとめて1回にしました。

*5 : popup用ブロック <div id="_popup"> のID が HTML4.0違反だったことが原因

*6 : アップデートしてもでなかったらスーパーリロードしてください。

*7 : あくまでカテゴリは記事1つに対して付くので

Version1.30β(1.29表記)からの乗り換え

そのまま上書きしてください。

Version1.21~1.22以降からの乗り換え

上書き後、管理者ユーザーでログインし「管理」→「システム管理」→「管理者メニュー」→「Version 1.22以前 → Version 1.30以降へのアップグレード」を行ってください。

  • popup記法や,Amazon記法の画像popupをご利用の方は、該当の日記帳で「日記帳の再構築」を行ってください。

Version1.20以前からの乗り換え

本リリースを上書き後、先にVersion1.21リリース情報の該当乗り換え処理を行ってください。

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 でデータベースをダンプしてインポートください。

2007/04/26(木)adiary Version 1.30β公開情報

ダウンロードはこちらからadiary-1.29 で始まるファイルを探してください。

このバージョンはβ版です。テストにご協力頂ける方(多少トラブルが起きても構わない方)のみダウンロードしてください。

Ver1.22→Ver1.30βの変更点

  • プライベート日記モード(強制非公開モード)を強化し、日記帳一覧などにも表示されないようにしました。
  • 画像リンク、http記法リンクに rel 属性を設定できるようになりました(日記帳の詳細設定から行ってください)。
  • マルチユーザーモード時に、blog名を表示できるようにしました。
  • はてな新テーマのために若干の修正を行いました。
  • 非公開日記のカテゴリも扱えるように仕様変更しました。
  • 多重ログインができるようになりました*1
  • 記事ID(0123などの記事番号)を変えずにインポートする機能が付きました。
  • はてなライクな見出しカテゴリに対応しました。
  • 【記法】uncタグができました。
  • 【内部処理】utf8 から他のエンコードへの変換が3倍ぐらい速くなりました
  • 【fix】Windows環境(IIS/AN HTTPD, Apache除く)において動作しないバグを修正しました。(Thanks to ひとぅ)
  • 【fix】画像の下部に1pxの空間ができる CSS の問題を修正しました。
  • 【fix】popup用がIEでうまく動作しないバグを修正しました(popup用ブロック <div id="_popup"> のID が HTML4.0違反だったことが原因)。
  • 【fix】URL自動リンクが ~ に対して無効だったので修正しました。
  • 【fix】空白を含むカテゴリ名を編集できないバグを修正しました。
  • 【fix】インポート画面で、はてな形式の取り込みオプションが表示されない不具合を修正しました。*2
  • その他細々とした修正。

変更点について

ユーザー承認関係を変更した関係で、アップグレード用にファイルを差し替えると、ログイン中のセッションがすべて無効になります。ご了承ください(ログインしなおしてください)。

マルチユーザーモードのtopにblog名を表示出来るようになりました。blog名を一覧するタイプのトップページを表示するには、adiary.conf.cgi の次の箇所を修正してください(表示確認は移行処理を行ってからお願いします)。

<$v.multiuser_top_skelton = "_multiuser_top">
↓
<$v.multiuser_top_skelton = "_multiuser_top2">

他にもマルチユーザモード関連の設定項目が増えておりますので、必要ならば新しいサンプルを参照ください。

はてなライクな見出しカテゴリに対応しました。

*[test][カテゴリ]見出し

システム上カテゴリとしては認識してないのですが*3、検索への自動リンクを張りますので実用上はあまり問題ないと思います。

*1 : 標準ではオフです。セキュリティの観点からあまりおすすめはしません。

*2 : アップデートしてもでなかったらスーパーリロードしてください。

*3 : あくまでカテゴリは記事1つに対して付くので

Version1.21以降からの乗り換え

上書き後、管理者ユーザーでログインし「管理」→「システム管理」→「管理者メニュー」→「Version 1.22以前 → Version 1.30以降へのアップグレード」を行ってください。

  • popup記法や,Amazon記法の画像popupをご利用の方は、該当の日記帳で「日記帳の再構築」を行ってください。

Version1.20以前からの乗り換え

本リリースを上書き後、先にVersion1.21リリース情報の該当乗り換え処理を行ってください。