Ver. 3.0 へメジャーアップデート時にマークダウンの文章が崩れるケースについて


a-blog cms Ver. 3系では、PHP8系に対応するために、マークダウンのパーサーの変更が行われています。その影響で、稀なケースではありますが Ver. 3系へメジャーアップデートをした場合に、マークダウンでデータを登録している部分の表示が崩れるといったケースを弊社で確認いたしました。

この記事では、Ver. 3系へメジャーアップデート時にマークダウンでデータを登録している部分への確認の呼びかけと、弊社で確認している表示が崩れるパターンを2パターン紹介します。

また、正しいマークダウンの形式でデータ登録ができている場合には、この記事で言及するような表示崩れが起きることはありませんので、ご安心ください。

マークダウンのパーサーを変更したことにより、Ver. 2系とVer. 3系のマークダウンパーサーでマークダウンの形式が間違っていたときにどこまでよしなに判断してくれるかというところが変わることにより、表示崩れが起きる可能性があるということです。そのため、正しいマークダウンの形式でデータ登録をしていれば問題はありません。

Ver. 3系へメジャーアップデートをする際には、マークダウンでデータを登録している部分の表示崩れがないか確認をしてください

冒頭でもお伝えしましたが、a-blog cms Ver. 3系では、PHP8系に対応するために、マークダウンのパーサーを変更しています。その影響で稀なケースではありますが Ver. 3系へメジャーアップデートをした場合に、マークダウンでデータを登録している部分の表示が崩れるといったケースを弊社で確認いたしました。

弊社で確認している限りでは、適切にマークダウンを記述している場合には表示が崩れるといったことはありませんが、Ver. 2系で使用しているマークダウンパーサーと Ver. 3系で使用しているマークダウンパーサーでは、インデントの数などが間違っている場合にマークダウンパーサーがよしなにその間違いを吸収して、HTMLを出力してくれる基準が異なるようです。

そのため、Ver. 2系のマークダウンパーサーでは多少インデントがマークダウンのルールとことなっていても問題なかった部分が、Ver. 3系のマークダウンパーサーでは、データ登録者側の意図と異なるHTMLを出力してしまい、表示崩れが発生していまうことがあります。

Ver. 3系へメジャーアップデートを行う際には、お手数ですが、テスト環境などでマークダウンでデータを登録している部分の表示崩れがないか確認することを推奨いたします。

マークダウンの表示崩れが発生する条件について

マークダウンの表示崩れが発生する条件について、弊社では2パターン確認することができたのでそちらをご紹介いたします。

リストをネストして表示している場合に、前の階層から次の階層の半角空白が6個以上存在すると、pre タグで出力される

以下は、リストのネストをマークダウンで記述する際に、1階層目から2階層目のインデントが半角空白で6個以上存在している場合の例です。

記入例

- マークダウンリスト
      - マークダウンリスト
      - マークダウンリスト

上記のようなマークダウンを登録している場合、Ver. 2系では、登録者が意図するようなネストされた ul タグが出力されていましたが、 Ver. 3系では以下のように preタグになって出力されていまいます。

出力例

<ul>
  <li>マークダウンリスト<pre><code> - マークダウンリスト
  </code></pre>
<ul>
<li>マークダウンリスト</li>
</ul>
</li>
</ul>

このように、マークダウンでネストしたリストを記述している場合には、バージョンアップ時に確認をすることを推奨いたします。

空行を挿入せずにコードブロックやテーブル、引用を記述すると、テキストとして出力される

以下の例のように、テキストに空行を空けずに続けてコードブロックを記述すると、テキストとして出力されてしまいます。

記入例

ダミーテキストダミーテキストダミーテキスト
```
console.log('a-blog cms最高!!')
```

出力例

<p>ダミーテキストダミーテキストダミーテキスト<code>console.log('a-blog cms最高!!')</code></p>

Ver. 2系で使用しているマークダウンパーサーでは空行を空けなくても、コードブロックとして出力してくれていましたが、Ver. 3系で使用しているマークダウンパーサーではテキストとコードブロックの間に、空行を空けて以下のように記述する必要があります。

ダミーテキストダミーテキストダミーテキスト

```
console.log('a-blog cms最高!!')
```

また、この現象はコードブロックだけでなく、テーブルや引用でも同様の現象が確認されました。

コードブロックや、テーブル、引用をマークダウンで記述している場合には、バージョンアップ時に確認をすることを推奨いたします。

最後に

この度はご迷惑をおかけしてしまい申し訳ございません。
Ver. 3系へバージョンアップ予定のサイトでマークダウンでデータを登録している箇所がある場合、テストサイトなどで表示崩れが起きてないかのご確認をお願いいたします。
今後とも a-blog cms をよろしくお願いいたします。

本件に関するお問い合わせ先

本件についてご不明点などありましたら以下のお問い合わせよりご連絡ください。

有限会社アップルップル
メールアドレス:info@a-blogcms.jp
お問い合わせフォーム:https://www.a-blogcms.jp/contact/

Ver. 2.11.47 リリースのお知らせ


この記事では、2022年4月13日にリリースした Ver. 2.11.47 の修正内容について紹介いたします。

現在お困りの問題に該当する項目がありましたら、お早めにバージョンアップのご検討をお願いいたします。

Ver. 2.11.47 リリースノート

  • CMS-5919 プロ版以上で承認機能有効時、読者ユーザーでもエントリ編集ボタンが表示されてしまう問題を修正
  • CMS-5925 子ブログの静的書き出しで、古いファイルが削除されない問題を修正
  • CMS-5929 Ver. 2.11.45 からユーザーの作成・更新ができない問題を修正

主なリリースノートの詳細な内容

CMS-5919 プロ版以上で承認機能有効時、読者ユーザーでもエントリ編集ボタンが表示されてしまう問題を修正

プロ版以上で読者ユーザーでログインした場合エントリー編集ボタンやバージョン管理ボタンが表示されてしまう問題が発生しておりました。
こちらの問題はボタンの表示がされているのみで、ボタンを押下した場合読者ユーザーがエントリーの編集などが行えるということはございません。
今回バージョンでボタンが表示されないよう修正をしました。

CMS-5929 Ver. 2.11.45 からユーザーの作成・更新ができない問題を修正

Ver. 2.11.45、Ver. 2.11.46においてユーザーの作成・更新ができなくなっておりました。
今回バージョンで正しく機能するよう修正しました。

最後に

この度はご迷惑をおかけしてしまい申し訳ございませんでした。該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。 また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいりますので、よろしくお願いいたします。

Ver. 2.7.20 から Ver. 2.7.22 で問題が見つかりました。

2017/12/12 10:15 分追記

Ver. 2.7.23 で別の問題が出ており、12/12 10:15 以前にパッチを当てた場合は、 お手数ですが再度パッチの適応をお願いいたします。

内容

上記のバージョンについて、画像、ファイルユニットで重大な問題が見つかりました。
画像がアップロードできなかったり、再保存時にファイルによって削除されてしまう可能性があります。

対応が必要なバージョン

  • Ver. 2.7.20
  • Ver. 2.7.21
  • Ver. 2.7.22

対応方法

  • Ver. 2.7.24 以上にアップデートを行う (ダウンロード
  • 以下パッチを適応する

ファイルを開く

パッチ

この度は、ご迷惑をおかけしてしまい大変申し訳ございませんでした。