毎秒1000リクエスト を捌く超高速CMS「adiary」
2015/05/16(土)adiary Version3.0β6公開情報
Ver3.0β6の主な変更点
- スマホ表示を改善し、投稿や管理も十分行えるようにしました。
- 記事編集画面を洗練させました。
- Markdown記法をGFM準拠で拡張し、また非互換動作を改善しました。
- テーマが少し増えました。
本当はRC1の予定だったのですが、ゴールデウィークにがんばった影響か、あまりにも変更点が積み重なってきたのでひっそりβ公開しておきます。もう仕様変更することはないと思いたい……。
β6.1の変更点
「PostgreSQL/MySQL + Perl 5.20」での運用時にDBに保存される文字列がUTF8にならない(サイズが増える)という問題が見つかったため対応しました。
β6以前で該当環境で運用していてる方は、ブログのデータを一度エクスポートした上で、アップグレード後に再度インポートしなおしてください。
Ver3.0β6の更新情報
- フッターの出力位置を変更しました。
- 記事編集画面から直接画像をアップロードできるようになりました。
- 記事編集画面の入力部分にドラッグ&ドロップしてファイルをアップロードできるようになりました。
- 記事編集画面を洗練させました。
- FrontPage(固定トップページ)の時、記事タイトルをヘッダ出力しないように変更しました。
- システムモード非対応テーマを管理画面で使用しようとする時、警告を表示するようにした。
- 表示パスワード機能やメンテナンスモードでの画面に、適切なHTTPステータスコードを設定した。
- スマホ判別に、BlackBerry と Windows Phone を加えました。
- コメント表示数の設定項目がなかったので修正。
- FrontPageのタイトル設定機能を追加。
- テーマを書きやすくするため、HTMLの出力構造を微修正しました。
- タグの編集、コンテンツ一覧の編集画面を少し使いやすくしました。
- HTML全体から「&nsbp;」を除去しました。
- 検索結果画面の印刷表示ができるようになりました。(Thanks to 手石)
- 【テーマ】base.cssを import させる仕様をやめました。*1
- 【スマホ】記事編集を使いやすくしました。
- 【スマホ】画像アルバムを使いやすくしました。
- 【スマホ】システム画面の各所でスマホ用に表示を改善しました。
- 【スマホ】ドラッグ&ドロップエミュレーションを付けました(詳細)
- 【スマホ】ヘッダに選択したメニューを出力できるようにしました。
- 【スマホ】ヘッダに検索ボックスを出力するようにしました。
- 【Markdown】GitHub Flavored Markdownのテーブル記法等に対応しました。
- 【Markdown】自動リンクをonにした場合、自動リンクするように変更しました。
- 【Markdown】本家では、コードブロックの開始条件として手前が空行である必要があったので、その仕様に準拠しました。
- 【Markdown】本家では、コードブロックの途中に空行を挟んでもokだったので、その仕様に準拠しました。
- 【Markdown】【fix】HTMLブロック開始条件が間違っていた(行頭スペースを許可していた)。
- 【Markdown】【fix】HTMLブロックの後ろに余計な空行が付いてしまう。
- 【Markdown】【fix】文中に>等の記号があったときのエスケープ処理が正しくなかった。
- 【Markdown】【fix】Satsuki.pmの目次記法の内部仕様変更に追従していなかった。
- 【parser】見出し記法で、アンカーが存在しないときは<span class="sanchor">を出力しないようにしました。*2
- 【design】全体の背景画像を設定できるように変更。
- 【design】ヘッダ用の「ブログの説明」プラグインを追加。
- 【design】ブログ情報で参照するRSSアイコンを作り直しました。またRSSにリンクするよう変更しました。
- 【記法】HTML5準拠のためtable記法のsummary指定を無効にしました。
- 【fix】デフォルトブログ設定時のサイドバーなどURLが正しく書き換わってなかった。(Thanks to 手石)
- 【fix】ヘッダ部のmargin/padding設定が有効ではなかった。
- 【fix】ヘッダのタイトル文字位置がブログ表示時とデザイン編集時で異なる。
- 【fix】コンテンツリスト(ドロップダウンメニュー)で1段目の項目が1つしかない時、メニューを左に開いてしまう。
- 【fix】コンテンツリスト等の多重配置可能なモジュールがあったとき、プラグイン再インストールでエラーが起きることがある。
- 【fix】ドロップダウンメニューの項目幅を増やした直後、編集画面で項目が2行に表示されてしまう。
- 【fix】スマホからデザインモジュールの再インストールを行うとヘッダのHTMLが壊れる。
- 【fix】des_system-info のコメントの文字コードが間違っていた。
- 【fix】印刷用表示で FrontPage 機能が動作していなかった。
- 【fix】印刷用テーマ satsuki2/_print においてデザイン編集の設定を解除していなかった。
- 【fix】Version1からデータ移行時に、サムネイルディレクトリがうまく移行されない。
- 【fix】多重編集ロック機能で、編集キャンセル時にもロックしてしまう。
- 【fix】trust_modeで複数行を含むscript(タグ)の抽出ができていなかった。
- 【fix】静的HTML出力(エクスポート)が更新から取り残されて完全に腐ってたので修正。*3
- 【fix】Version2からの移行ツールでトラックバックが取り込めなかった。
- 【fix】MySQLで動作しなくなっていた。
- 【fix】【Compiler】begin_array/string等で最終行が空の時、除去するようにしました。
- テーマが少し増えました。
- 他多数
2015/05/02(土)adiary Version3.0β5公開情報
ほぼ完成と言ってもよいと思います。しばらくはバグフィック。
- Version2からの移行機能をテストしていただけると大変助かります。
- 間違えて収録した「satsuki2/ayakaテーマ」はまだ未完成です。*1
Ver3.0β5更新情報
- スマホ表示に対応しました。USER_AGENTで判別しています。*2
- 記事メイン部とコメント欄のデザイン編集機能を付けました。*3
- それに伴い基本設定→表示設定がなくなりました。
- Version2 からの移行機能が付きました。
- theme/ ディレクトリ以下にテーマやテンプレートに無関係なものが増えてきたので、それらを pub-dist/ に移動しました。
- テーマの色変更機能で「設定できる色が多すぎる」問題に対処するため、色をいくつかの基本色に連動させて動かす機能を付けました。
- 表示パスワード機能を付けました。ブログの表示にパスワードをかける機能です。
- プライベートブログ時に「秘密のパスワード」を入力することでブログを表示できる機能を追加。
- システム管理にメンテナンスモードを実装しました。
- 【記法】目次記法の機能を拡張し、出力階層を選択できるようにしました([*toc0] [*toc2]の追加)。
- 【plugin】タイトル文字の表示位置調整が非常に分かりにくかったので設定方法を見直しました。
- 【plugin】ヘッダとメイン部用の検索ボックスモジュールを用意しました。
- 【plugin】サイドバー検索ボックスのHTML形式を変更しました。(雑多なidを削除しました)
- 【plugin】module_id の仕様を変更しました(β3の時の仕様に戻しました)。
- 【fix】プライベートモードを解除したとき、公開ディレクトリが複雑な名前のままになっている。
- 【fix】「ブログとwikiコンテンツ等を分離して扱う」にチェックを入れるとコンテンツページが検索にヒットしない。(Thanks to 手石)
- 【fix】theme/以下のテンプレート読み込み機能がうまく動作していなかった。なおVer3のテンプレートディレクトリ名は _skel/ です(Thanks to 手石)
- 【fix】シンタックスハイライトがうまく動作しない。
- 【fix】【plugin】プライベートブログ切替時に、デザインモジュールで使用していた背景画像が表示できなくなる。
- 【fix】【アルバム】大文字の拡張子(.JPG等)を画像ファイルと識別できない。
- 【fix】【Compiler】<@ifcall(cond, 'file')> 等で cond が false のとき、condの値が出力されてしまう。
2015/03/05(木)adiary Version3.0β4公開情報
Ver3.0β4更新情報
- デザイン編集でサイドバー以外も編集できるようになりました。
- テーマカラーリングをカスタマイズする機能を付けました。(対応テーマのみ)
- 記法のエスケープ表記動作を整理しました。
- 記法ヘルパー機能を付けました。
- 確認ダイアログをブラウザ標準の「confirm」からオリジナルに変更しました。
- JPEGのExifを記事に貼り付けられるようになりました。
- 自動リロード画面でEnterを押すと強制リロードするようにしました。
- 同一の記事を複数の人やタブで編集した際に確認メッセージを出す機能を付けました。デフォルトでは無効になっています(システム設定にあります)。
- 記事編集画面からの画像選択画面にスクロールバーが表示されるように変更しました。
- デザイン編集画面の編集ツールの位置を変更しました。
- Twitterへの投稿通知機能をプラグイン化しました。
- faviconが設定できるようになりました。
- 【アルバム】D&Dで自動アップロードする機能をつけました。
- 【アルバム】CTRL+クリックで直接ダウンロードする機能をつけました。
- 【アルバム】Exif除去機能を付けました。*1
- 【アルバム】特殊文字「\ : * ? " ' < > | &」をファイル名等に使用できないようにしました。
- 【アルバム】ゴミ箱に入れる際、入れた日時をファイル名に付加するようにしました。
- 【アルバム】SHIFT+クリックによる範囲選択機能を付けました。
- 【アルバム】大文字の拡張子を許可するように変更しました。
- 【アルバム】【fix】ファイルを移動した際、サムネイルファイルが残り続けることがあった。
- 【アルバム】【fix】ファイル名ビューの時、画像の貼り付けで挿入されるタグが正しくない。
- 【Markdown】【fix】行頭以外にTABを入力した時の挙動が正しくない。
- 【Markdown】【fix】リスト入れ子時の動作が正しくない。余計な<p>タグが出る。
- 【Markdown】【fix】通常文章ブロックの途中から引用ブロック等を書くことができない。
- 【Markdown】【fix】引用ブロック(>)の手前にスペースを書くことができない。
- 【Markdown】リスト入れ子判別時、段差が1でも入れ子として認識するようにしました。*2
- 【fix】フィルター記法を[[&http://adiary.org]]のように[[ ]]中に書けない。
- 【fix】非表示input要素に対するリサイズ機能が正しく働いてなかったので、表示後、初めてmouseenterしたときにリサイズ加工をするように修正しました。
- 【fix】Image::Magickが存在しないとき、アルバムの動作がエラーになっていた。
- 【fix】data-target指定時にjQuery XSSの問題があった。(参考)
- 【fix】管理画面で選択テーマを使用しない設定の場合、デザインの初期化の確認画面で常に標準テーマが表示されていた。
- 【IE8】デザインモジュールの「Information/リンク集」にて、現在の状況をロードできない「IE8の不具合」に対応しました。
- 【Windows】記事のインポート処理がうまくいかないWindowsの謎の挙動に対応しました。
- 【Base/OAuth.pm】status update以外の、一般的なOAuthなGET/POST処理に対応しました。
- 【Base/HTTP.pm】【fix】SSL接続時、Cookieを1つしか受け取れなかった。
- 【Base/HTTP.pm】【fix】SSL接続でのPOST時、Content-Lengthを二重に送信していた。
- 他多数
コメント
デザイン編集機能はVer3開発当初から構想があったものですが、結構良い仕上がりになっていると思います。編集画面では、CSS動的生成(動的置換)とかかなり高度なことをやっています。使っても使わなくても一度はドロップダウンメニューで遊んでみてください! 使う人にはどうでもいいことですが実装大変だったんですよ(苦笑) 頑張った甲斐がありまして、CSS動的生成を使用してもプラグイン側の記述量は極小で済むようになっています。
そんなこんなでメイン機能はほぼ実装完了です。いくつか欲しいプラグインもありますが、その辺は後回しでもいいかな。
残す完成に向けての必須項目はスマホ対応表示でしょうか。HTML5なので普通にスマホで使えますが、いかんせん見づらいです。あとはテーマが充実してくれれば……。
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重に表示される。