毎秒1000リクエスト を捌く超高速CMS「adiary」
2015/11/28(土)adiary Version3.0 RC2公開情報
Ver3.0 RC2の主な変更点
- デザイン編集機能の強化
- UIなどの細かい動作調整
- 大量のバグ修正
- MathJaxへの対応
RCなのに機能追加という謎はともかく、RC1より更に完成度が上がっていますのでぜひお試しください(苦笑)
RC2の変更点
- デザイン編集を強化しました。
- 記事ヘッダを編集できるようにしました。
- 単一記事表示と複数記事表示のそれぞれで、記事ヘッダとフッタを編集できるようにしました。
- 複数記事表示時に、記事と記事の間に出力するモジュールを編集できるようにしました。
- MathJaxに対応しました。
- trust_mode時に使える「JavaScript入力プラグイン」を作成しました。
- 記事一覧から、複数の記事のタグを一括編集できるようになりました。
- textarea を 'display: block' に変更しました。
- Twitterへの通知送信を更新通知Pingの設定と連動するようにしました。
- [asin:XXXX:image]記法使用時、スライドショー(Lightbox2)の対象にならないようにしました。
- 付加情報リビルド時にタグ情報テーブルも再生成するようにしました。
- ツリー編集画面で項目編集中にツリー内の別の場所をクリックしたら編集を終了するようにしました。
- 記事一覧を nofollow から外しロボットに検索させるようにしました。*1
- デザイン編集で必須要素が消えないように対策しました。*2
- ボタンのデザインがブラウザによりまちまちなので、最低限CSSで指定するようにしました。
- Twitterソーシャルボタンで共有済の検索から「http://」を除くようにしました。
- 編集画面の記事番号の表示位置を変更しました。
- 編集画面の記法ヘルパーや画像貼付がHTML入力選択時も動作するようにしました。
- 記事編集画面の下書き保存ボタンの位置を変更しました。*3
- HTML直接入力のパーサーを改良し、使いやすくしました。
- CGI動作時の記事編集保存の速度を少し速くしましした。
- index.html を更新しました。
- Twitterの仕様変更に合わせツイート数の表示機能をオフにしました。(参考)
- 【さつき記法】定義済みリスト記法で項目名と項目(dt/dd)を「n:m」で記述できるようにしました。(Thanks to Kaede)
- 【さつき記法】ブロック記法とリスト記法を互いに入れ子した時の挙動を改善しました。
- 【さつき記法】table出力時の「<tr class="odd"/"even">」クラス出力をやめました。*4
- 【さつき記法】拡張リスト記法の項目の最後に空行を記述できる仕様を廃止しました。
- 【Markdown】\>のエスケープ処理が正しくなかったので修正。
- 【アルバム】フォルダロード中は「loadingアイコン」に切り替えるようにしました。
- 【アルバム】操作ボタンを整理しました。
- 【lightbox】スマホからの操作時、ズーム中やズーム動作で画像をめくらないようにしました。
- 【lightbox】画像リンクを、SHIFTと共にクリックした場合はブラウザデフォルト動作を、CTRLを押しながらクリックした場合はファイルをダウンロードするようにしました。
- 【lightbox】戻るボタンを押した時、ページ遷移をせずに単に画像ポップアップを閉じるようにしました。*5
- 【テーマ】satsuki2のマルチサイドバー表示時のサイドバーの幅を可変にしました。
- 【テーマ】sumomoテーマのスマホ/タブレット表示を改善しました。
- 【fix】nature-dark テーマを選ぶとエラーが表示される。
- 【fix】シンタックハイライトで言語「c」を指定するとセンタリングされてしまう。(Thanks to tester)
- 【fix】trust_mode設定時、スマホメニューの設定で項目が出てこない。(Thanks to tono)
- 【fix】「続きを読む」記法使用時、続きを読むよりも手前にある画像等が表示されない。(Thanks to 平山)*6
- 【fix】画像アルバムでフォルダ新規作成時に、そのフォルダを開かない。(Thanks to 平山)
- 【fix】コンテンツ一覧画面で右クリックからリンクを開いた時記事が表示されない。
- 【fix】PostgreSQL/MySQL運用時、タグ一覧からのタグ編集がうまく行かない。*7
- 【fix】サイドバーモジュールのタイトルがリンクであるとき、一部テーマで文字が読みにくい。
- 【fix】タグ名に日本語や「&」を含む時、タグ検索リンクやページ送りのURIがエンコードされていない。(Thanks to とも)
- 【fix】タグの統合時にタグ数の表示が正しくない。
- 【fix】記事数が0のタグで検索するとすべての記事が出てきてしまう。
- 【fix】iframe等が記事からはみ出ることがある。
- 【fix】記事編集画面で元々あったタグをすべて削除すると、新たに追加したタグを削除できなくなる。
- 【fix】タッチイベントの処理に不具合があり、不用意にドラッグしたことになることがある。
- 【fix】OGP/Twitterロゴ画像が設定できない。
- 【fix】info/textparser_site_tags.txt を設置しても読み込まない。
- 【fix】記事のid出力が article タグではなく h2 タグについていた(一覧表示時のみ修正)。
- 【fix】デザイン編集のボタン重なり判定が正しく動かないことがあった。
- 【fix】Twitter通知プラグインで通知に失敗する(メッセージに「:」を含むと投稿に失敗する)。
- 他多数
RC2.1の変更点
- 【fix】コンテンツタイトルに「"'<>」などの文字を使用すると、親ノード指定時などに文字化けする。
- 【fix】スマホメニュー設定でコンテンツなどが指定できない。
2015/07/22(水)adiary Version3.0 RC1公開情報
リリース候補版です。ダウンロードはこちらから。
Ver3.0 RC1の主な変更点
- テーマが12種類に増えました。
- テーマ開発マニュアルをまとめました。
- Facebook OGP/Twitter Cardsに対応しました。
- はてなブックマーク等のソーシャルボタンの表示を高速化しました。
他はバグ修正および全体的な詰め修正という感じです。だいぶ洗練されてきましたが、もっと煮詰めてからリリースということにしたいと思います。
リリース前にどんどんテストしていただけると助かります。要望もどしどしお寄せください。
RC1の変更点
- テーマが12種類に増えました。*1
- テーマ開発マニュアルをまとめました。
- Facebook OGP/Twitter Cardsに対応しました。*2
- アップグレード処理が必要な時、自動的にメンテナンスモードに変更するようにしました。
- ログイン時のIP/HOST制限機能が付きました。
- コメント欄のロボットSPAM対策を強化しました。*3
- コメント欄でタブや空白が有効になりました。&等の実体参照が無効になりました。
- コメント本文の加工処理をJavaScript側に変更しました。
- コンテンツタイプで検索できるようになりました。
- タグなし記事を検索できるようになりました。
- タグや記事タイトル中の&をエスケープするようにしました。
- 検索のデフォルトを「全文」に変更しました。
- 記事一覧とコメント一覧画面でソートできるようになりました。
- 記事一覧画面に記事種類を出力するようにしました。(Thanks to 手石)
- 最近の記事一覧と過去ログに、コンテンツを含めない設定を追加しました。(Thanks to 手石)
- 印刷用リンクを別ページで開く設定ができるようにしました。(Thanks to 手石)
- コメント欄に>等の実体参照文字列を書き込んだ時、そのまま表示されるように変更しました。(Thanks to 手石)
- respond.jsからcss3-mediaqueries.jsに変更しました。
- シンタックスハイライトのテーマを変更しました。またhighlight.jsのロード方法も変更しました。
- 記法タグでの「google」や「wikipedia」のリンク先をhttpsに変更しました。GoogleのリンクQueryも少し変更しました。
- はてなブックマーク等のソーシャルボタンの表示を高速化しました。
- 【テーマ】配色カスタマイズ画面で、色を濃くしたり明るくしたりできるようにしました。*4
- 【テーマ】オプションによる配置変更などが実現可能な機能をつけました。*5
- 【テーマ】あらゆる出力から<input type="submit">, <input type="button">を廃止しました。
- 【テーマ】satsuki2系テーマで、サイドバーサイズを固定にしました。
- 【テーマ】CSSでの #hatena-body の高さ自動設定機能に min-height が効くようになりました。
- 【テーマ】テーマの表示テスト画面を作りました。
- 【テーマ】テーマの配色可変対応をより作りやすくしました。
- 【テーマ】色々と問題の多い「JavaScriptによるBox高さの自動調整」をやめました。
- 【fix】テーマ配色のリセット後、HSVバーを動かすと色基準が「現在のテーマ設定値」になっていた。
- 【fix】adiary形式でexportするとき、入力テキストに「<」などの実体参照が正しくエスケープされていなかった。*6
- 【fix】Version2からの移行ツール使用時、コンテンツのツリー構造がうまく引き継げない。
- 【fix】pkey保存インポートをすると、コンテンツツリーを復元できない。
- 【fix】その他の設定に、謎のデザインモジュール再インストールボタンがあった。
- 【fix】行連結記法が使えない。*7
- 【fix】たまにタグ一覧やコンテンツ一覧でキャッシュされた情報を読み込んでしまう。
- 【fix】Markdown記法でインラインのソースコード記述で、<, >, &がうまくエスケープされない。(Thanks to 手石])
- 【fix】Perl 5.20でMySQL, PostgreSQL運用時、データベースに格納される文字列が通常のUTF8文字列にならない。(問題の詳細)
- 【fix】コメントが許可されていない FrontPage がある状態でデザイン編集を保存すると、コメント投稿フォームが消える。
- 【fix】コメントメール通知プラグインが動かなくなっていた。
- 【fix】ブラウザ上で「横320px」のスマートフォン(iPhone 5等)でスマホメニューの表示が崩れる。(Thanks to 阿部)
- 【fix】コメント番号が書き込み順にならないことがある。β初期からあるバグでした……。
- 【fix】プライベートモード切替時、テーマのカスタマイズが無効になっていた。
- 【fix】スマホ表示でブログ設定などのフォームがはみ出していた。
- 【fix】さつき記法で、2行以上の「th(thead)」に対応していなかった。
- 【fix】さつき記法で、Ver2形式の image タグを記述したとき、alt属性がうまく設定されていなかった。
- 【fix】タグエスケープ機能で「alt=""」や「alt=xxx」といった空の値やクオートされていない値の処理が誤っていた。
- 【fix】Twitterウィジットプラグインで幅調整ができなかった。
- 他多数
既知の不具合
- nature-darkテーマを選択時エラーが出る(使用には問題なし)。
- Twitterウィジェットで表示設定が反映されないことがある(Twitter側の仕様変更によるものでしたが、現在は治まっています)。
- trust_mode時、スマホメニューが設定できない。
- info/textparser_site_tags.txt を設置しても読み込まない。
- 11/20以降、ツイート数が取得できない(Twitter社の仕様変更です)
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なので普通にスマホで使えますが、いかんせん見づらいです。あとはテーマが充実してくれれば……。