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

2019/06/30(日)adiary Version3.30 リリース情報

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

Ver3.30の主な変更点

アップデートしたadiaryでreStructuredTextを使用する場合、adiary.conf.cgi に設定を追加する必要があります。RST(reST)に直接対応した初のCMSだといいな。

Ver3.30のその他の変更点

  • index.htmlをレスポンシブ対応にしました。
  • 静的HTML出力の設定を変更しました。
  • 【さつき記法】
    • リストやタイトル記法で文字の手前スペースを除去するようにしました。
    • relやtargetやdataなどの設定を止めました。
    • 日時付き見出し記法(*t*記法)を削除しました。*1
    • 見出し記法をトップレベル以外では使用できなくしました。
    • 実装を色々と見直しました。
  • 記事編集画面
    • 同時編集ロック機能をリファクタリングしました。
    • 記法ヘルパーのコードを刷新しました。*2
    • 編集中の記事タイトルをタイトルに表示するようにしました。
  • スマホ表示時のボタンヘルプを無効にしました。
  • 非公開記事数をカウントしておくよう変更しました。
  • jQuery UIの ui-tabs, accordion の使用をやめました。*3
  • 【Plubin/AMP】大きい画像がはみ出さないように layout="intrinsic" を追加しました。
  • 【Fix】PostgreSQL/MySQL運用時、外部画像取り込みが動作しない。
  • 【Fix】画像取り込み時のエラーメッセージがちゃんと表示されない。
  • 【Fix】システムチェック画面でCryptXの確認が正しくなかった。
  • 【Fix】index.html内のscriptが動いてなかった。
  • 【Fix】js や css の強制再読込に失敗する。(Thanks to 1484
  • 【Fix】スイッチ表示時のタグ一覧等や「すべてのコメントを読む」のリンクをクリックしても反応がない。
  • 【Fix/httpd】PATH_INFOに全角文字などを指定できない。*4
  • 【Fix/記法】QRコード記法が正しく動作しない。(Thanks to jimba)
  • 【Fix/記法】画像サムネイルでリンク記法のサイズを変更。https対応。
  • 【Fix/印刷テーマ】_sagiri でフロートオブジェクトがはみ出す。
  • 【Fix/Windows】静的HTML出力時、日本語ファイル名が化ける。
  • 【Security/DoS】第3者レンタル時、目次記法を使い、見出しに「<toc></toc>」と書くことで無限ループさせることができる。

追加修正

  • 【Ver3.30a/Fix】Ver3.24以降でwebpushの通知に失敗する。

*1 : この処理のためにだけに、入力テキストを前処理していました。

*2 : いくつかあったバグも直っていると思います

*3 : 大して重要ではない割に、CSSの記述を複雑にしていたので除去しました。

*4 : コンテンツkeyに全角文字等を指定すると、記事が開けなくなる。

reStructuredTextについて

Sphinxというツールで使われているドキュメント記述言語で、Markdownよりも古いものです。以下の特徴があります。

  • HTML以外にも、ePub(電子書籍)や LaTeX など、様々な形式に変換できる。
  • 仕様が厳格で、Markdownよりも記述能力が高い。*5
  • Pythonで動作する。

特にePub(出版用途)へのニーズが高いようですので、対応しました。これにより、下書きをadiaryで行い、清書をSphinxでといった使い方ができます。しかも、連携機能があるのでadiaryから直接Sphinxを呼び出すことも可能です。

ちなみに対応と言っても、フルスクラッチで互換パーサーを記述しています。仕様が厳格なので、Markdownと異なり実装仕様の決定で迷うことは少なかったのですが、仕様そのものが(プログラムで処理するには)厄介なものも多く苦労しました。その分完成度は高くなっていると思いますが、もしバグ等ありましたらコメントでお寄せください。

*5 : Markdownは原実装に曖昧な仕様が多々あり、使われてるツールごとに独自拡張も多いので、互換性に混乱がある。

既知のバグ

  • 月別記事リストのリンクが正しくない。
  • デバッグコンソールに無駄な出力が出てしまう。*6

*6 : デバッグコードを除去し忘れました……