毎秒1000リクエスト を捌く超高速CMS「adiary」
2014/12/29(月)adiary Version3.0β3公開情報
Ver3.0β3更新情報
- <teatarea> でTABが入力できるようになりました。
- github/gistのソースコード貼り付けが簡単にできるようになりました。(参考)
- 記事のタグに使える文字を一部制限しました。*1
- 記事の記法マニュアルを整備すると共にバグ修正、細かな仕様変更、機能追加を行いました。
- リンク時のrel設定が HTML5 的に美しくないので、"data-*"属性設定に変更しました。
- markdown記法中にさつきタグを記述した際、その処理結果に対して更に「強調」などのMarkdown記法処理を行わないようにしました。
- tex記法の実体をmimeTeXからGoogle Chart APIに変更しました。*2
- ソースコードマークアップを SyntaxHighlighter から highlight.js に変更しました。
- adiary.jsのDOM要素に対する機能付加の方法を変更しました。
- mod_rewrite等でのアクセスURL変更時に、付加情報の再生成を促すメッセージを出すようにしました。
- バージョンアップ後(ファイル上書き更新後)のアップデートをある程度、自動処理するようにしまた。
- 【アルバム】ファイル名が変更できるようになりました。
- 【アルバム】ファイル名で一覧表示できるようになりました。
- 【plugin】メール通知プラグインでブログタイトルを入力できるようにしました。記事URLを本文に書くようにしました。
- 【plugin】検索ボックスに設定機能を追加しました。
- 【fix】プラグイン設定の個別モジュールの設定画面が表示されない。
- 【fix】Windows環境でタグ情報の保存に失敗する。原因詳細。(Thanks to 手石)
- 【fix】コンテンツリストでリーフのないノードを指定した場合に内部エラーになる。
- 【fix】関連記事がないのに、関連記事の見出しが出力される。
- 【fix】画像以外のファイルをアップロードした際、アイコンが埋め込まれない。
- 【fix】リンク文字列など、タグの区切りの末尾にマッチするワードで記事を検索すると、検索語を含む文字列が2重に表示される。
- 【fix】記事タイトルがタイトルヘッダに出力されていない。
- 【fix】markdown記法でHTMLブロックが閉じていない時、無限ループしてしまう。
- 【fix】テーブル記法で、各行の最後のカラムが空の時にHTMLに<td>が展開されない。
- 【fix】Google Mapのurl-filterが動作していなかった。(Google側の仕様変更のため)
- 【fix】アルバムで表示形式を変えた時、選択状態が維持されていなかった。
- 【fix】アルバムでディレクトリ内のファイルを取得するとき「.」で始まるファイルを無視していなかった。
- 【fix】テキストDB時に、ブログ作成時不要なエラーメッセージが表示されていた。
- 【fix】プライベートモード設定変更時に、ファイル書き込みエラーがでていた。
- 【Compiler】begin_hash/array/string中にコマンド式が書けるようになりました。
- 【Compiler】function型スケルトンで不必要なコマンド外の部分が出力されていたので除去しました。
- 他多数。
その他、マニュアルを充実させました。
アップデート
このバージョンからアップデート時の必要な処理を自動で行う機能が内蔵されました。(ファイルを置き換えるアップデード作業自体は手動です)
2014/08/21(木)adiary Version3.0β2公開情報
Ver3.0β2の変更点
β2で、ブログとして必要な機能はひと通り揃いました。
- 画像管理(アルバム機能)を追加しました。
- これにより記事に画像が貼り付けられるようになりました。
- adiary.conf.cgiで設定していた「Secret_phrase」を自動生成するよう変更しました。
- この変更でconfigをデフォルトのまま動作させても問題がなくなりました。
- 細かい修正
- 記事検索時に全角スペースを区切り文字として認識するようにしました。
- ノンブロック排他ロックの処理が間違っていたので修正しました。(Thanks to 手石)
- 年月指定や年指定した時に、カレンダーの表示がおかしくなるバグを修正しました。
- コンテンツ編集画面にて、下層のコンテンツをrootに移動できないバグを修正しました。
- 他多数
C86版(β1.4)をお持ちの方はC86SEサポート情報も参照してください。
β1以前からのアップデート
上書き(もしくはgit pull)した後に以下の作業を行ってください。
- adiary.conf.cgi をサンプルから再度作成。
- 設置してあるブログのデザイン編集を開いて保存(変更する必要はありません)。
- 「メニュー」→「基本設定」→「編集画面の設定」から、画像リンクのrelを「lightbox[%k]」と設定します。
conf以外は、いずれ自動更新されるようになる予定です(βの間は手動で)。
Ver2からの乗り換え
一部のチャレンジャー向けの内容です。アルバム画像のフォルダは以下のように移動されました。
(Ver2) public/image/<blogid>/ (Ver3) pub/<blogid>/image/
ゴミ箱の構造、サムネイルの構造などは変更していませんし、記事に貼り付けるタグで互換性は維持したはずなので、丸コピーして古い記事をインポートすれば画像もそのまま表示できるかと思います。
いずれはこの辺を自動で行うツールを作りますが、β版の使用テストにVer2のデータを使いたい!という人は参考までに。
ちなみに、mp3やm4vファイルなどを(アルバムから)貼り付けると、自動的にaudio/vidoeタグが貼られる仕組みが内蔵されています。
既知の問題
- プラグイン設定の、個別の設定画面が表示されない。
- Windows環境でタグ情報の保存に失敗する。(Thanks to 手石)
- 画像以外のファイルをアップロードした際、アイコンが埋め込まれない。
- リンク文字列など、タグの区切りの末尾にマッチするワードで記事を検索すると、検索語を含む文字列が2重に表示される。
2013/10/15(火)adiary Version3.0β1.3公開情報
Ver3.0β1.3の変更点
- 再構築時、「続きを読む」がリンク切れになる問題を修正しそこねていたので再修正しました。(Thanks to つーさ)
2013/10/05(土)adiary Version3.0β1.2公開情報
β版はテスト用に公開されています。開発やデバッグにご協力頂ける方のみご利用ください。
ご利用前にβ1に関する詳細情報を必ずご確認ください。
Ver3.0β1.2の変更点
- Cookieが無効の場合でも、基本的な閲覧動作に支障がないように変更。
- 記事再構築時、続きを読むやセクションリンクが正しくない問題を修正しました。(Thanks to つーさ)
- ログイン時に古いCookieをクリアするようにしました。(Thanks to つーさ)
- 【タグプラグイン】該当記事0件のタグは標準では表示しないようにしました。(Thanks to つーさ)
- MySQL/PostgreSQL使用時、該当件数0件の検索クエリに対してすべての記事データを返してしまうバグを修正しました。(Thanks to つーさ)
- インポート時に使用するセッションログファイルの管理方法を変更しました。
注意
プラグインは自動で更新されません。デザイン編集から一度アンインストールして、再度インストールし直してください。*1
2013/09/05(木)adiary Version3.0β1公開情報
ダウンロード
β版はテスト用に公開されています。開発やデバッグにご協力頂ける方のみご利用ください。
以下の機能は未実装です。また、テーマがひとつしかありません。
- 画像管理(ファイル管理)機能
- テーマカスタマイズ機能
- メール投稿機能
開発状況やリリーススケジュールはこちらのメモをご覧ください。
- β1.1 Perl 5.8での問題、標準デザインがうまく入らない問題を修正しました。
注意
RC版が出るまで仕様は確定ではありません。最悪、記事をexportしてから再インストール後にimportという作業が必要になります。
Ver2系→Ver3.00β1の主な変更点
Satsuki-systemの構文記述力を向上させました。
- local変数の仕様をまともにしました。(スケルトン内でクロージャが作れます)
- オブジェクト(ハッシュ)の参照記述力を向上させました。
<$a.b.c=v> <$var_b='b'> <@a.b.('c').tag_eacape("<>")> <@a.('b').('c').tag_eacape("<>")> <@a.(var_b).c.tag_eacape("<>")> <@(a.(var_b).c).tag_eacape("<>")>
- 次の記述を可能にしました。
<$x = arrayq(aaa, bbb, ccc)> array('aaa','bbb','ccc') <$x = hash(a,b,c,1)> x.(a)=b x.(c)=1 <$x = hashq(a,b,c,1)> x.a='b' x.c='1' <$a = {a=>b, c=>1}> x.a=b x.c=1 <$x = flag(a,b)> x.(a)=1 x.(b)=1
- コマンド外の「行末<@\>」により、行連結ができるようになりました(改行前後のスペースは除去されます)。
- begin_array, begin_hash の中で変数置換(<@var>)が効くようになりました。
- return文で戻り値を返す関数機能(プラグマ<@40>)を実装しました。
- テキストDB(旧名「擬似データベース」)
- 検索処理をより最適化しました。大規模データの処理がかなり速くなっていると思います。
- 検索処理におけるいくつかの細かいバグを潰しました。
- よりカラム型を尊重した処理をするように変更しました。
- トランザクションを部分的にサポートしました。
- DBの時間計測を正確にしました(以前はselect時間のみの計測でした)。
- 大量にあった skelton 等の恥ずかしいタイポを修正しました(まだ残ってる?)。
他多数。
adiary本体関連
- プラグイン機能が付きました。
- インポート処理を大幅に高速化しました。
- 【記法】
- table記法使用時、最初の1行目がすべて見出しならば<thead>?</thead>として出力するようにしました。
- table記法でcaption と summary の表記方法をより簡素化しました。
- タグプラグインを「使用時に自動ロード」するようにしました。
- tDiary互換の記法を削除しました。
- Markdown記法が増えました。
- デザイン関連。
- デザイン変更をわかりやすくしました。
- テーマ関連
- テーマファイルがJavaScriptを持てるようになりました(テーマ名.js)。*1
他多数。
β1までの実装済メモ
- Satsuki-systemまわりの大幅改修、機能強化。
- 古いスケルトン(.html)や古いadiary本体ソースコードの破棄。
- jQuery採用とスクリプト(.js)の全面書き直し。
- ログインなどのユーザー管理および新規設置→ブログ作成までの流れ。
- 全体のHTML5化
- 入力記法の整理と機能強化
- 記法パーサー出力のHTML5化。
- 記法拡張タグのプラグイン化
- ブログに記事を書いて保存・編集・削除。
- 記事のページ送り表示。
- コメント機能の実装
- ブログ一覧表示機能
- プラグインのインストール・削除・呼び出しの基礎部分。
- プラグインイベントとその設定画面の機能。
- プライベートブログ機能の完全な実装
- テーマ選択画面
- デザイン編集機能(主にサイドバー)
- インポート処理
- 対応形式:adiary、はてな、MT、JUGEM/Serene Bach、WordPress XML*2
- ブログの再構築、クリア
- RSSの配信、タグを指定して第2RSSの配信可。
- 記事一覧、コメント一覧、月別記事一覧
- タグ機能、検索機能の完全な実装。
- Markdown記法
- エクスポート処理
- 対応形式:adiary、MT、JUGEM/Serene Bach
- Twitter連携機能
- FrontPage機能*3
- コンテンツ機能、コンテンツ管理機能、コンテンツリスト(コンテンツメニューはまだ)
- 新着コメントのメール通知プラグイン
- デフォルトデザインをブログ生成時にロードする機能