Markdown のエンジンを CommonMarkに変更しました

今回のリリース内容

MarkdownのエンジンをRedcarpetからCommonMarkへ変更しました。

とは言っても、ほぼ今まで通りご利用いただけます。

今まで作成した記事は、以前のMarkdownエンジンでの解釈のまま保存されているのでそのままであれば変化はありません。

新たな記事以前の記事を更新するタイミングで新しいMarkdownエンジンでの解釈となります。新たに更新するタイミングで以下のようなメッセージが出ますので、もしプレビューで気になる点がございましたら、後述します「細かな違い」をご参考になるか、お問い合わせ下さい :tipping_hand_woman:

image.png (295.3 kB)

目的

  • CommonMarkは標準化を目指したMarkdownエンジンです。標準化を目指すエンジンを採用することにより、他サービス・ツール間でのMarkdownのポータビリティを一層確保できると感じております
  • また、CommonMarkを採用しているOSSも多いため、今後のエディタの機能改善もより進めやすくなります :rocket:

細かな違い

細かな違いは沢山あるのですが、普段記事を書いていて気付きやすいであろう違いをピックアップして紹介します。以前と違うな?と思った時にうまくやっていくコツは、スペースやうまくいかない行の前に改行を入れてみることです :laughing:

見出し

# の後ろに必ず1つ以上のスペースが必要となります。

headings
## 有効な見出し

##無効な見出し

HTML内のMarkdown記述

HTMLの開始タグや終了タグ1に続けて空行を挟むことでHTML内でMarkdown記法が使えるようになります。

HTML & Markdown
<details><summary>詳細はこちら</summary>

- リスト1
- リスト2
</details>

以下のような記述での**strong**

<div>
</div>
<font color="red">**strong**</font>
<div>
</div>

<font color="red">**strong**</font>

とすることで、解釈されます。

また、以下のような記述での**strong**

<div><font color="red">**strong**</font></div>
<div><font color="red">

**strong**</font></div>

とすることで、解釈されます。

タブ文字がリストのネストに利用できる

今までは、必ずスペースでのネストが必要だったため、labs機能から、Replace Tabs to Spacesを有効にしていただく必要がありましたが、不要となりました。

一部のMarkdownアプリケーションでは、リストのネストでタブ文字を利用していた関係上、そのままesaに貼り付けることができませんでした。今回の改修で前述のlabs機能を使わずに、コピーアンドペーストが可能となっております。

もっと詳しく知りたい場合

具体的には、commonmarkerを利用しておりますので、GitHub の CommonMark 拡張記法GFMに対応してます。

GitHub Flavored Markdown Specを参照いただけるととても詳しい仕様が掲載されているので、ご理解の助けになるかと思います。また色々試してみると発見があって面白いかもしれません :bulb:

GitHub Flavored Markdown Specの内容を読んで、仕様の解釈が難しい場合、ご質問いただければ可能な限りお答えします。

所感

社内のチームを先行で CommonMark 化することで、どれくらい違いがあるだろうとお試し期間を設けたのですが思った以上に違和感を感じないということで、特に移行期間を設けずのリリースという判断となりました :ship:

もしお気付きの点などございましたら、フィードバックフォームよりお気軽にお問い合わせください :pray:

Enjoy "(\( ⁰⊖⁰)/)"
https://esa.io

END

  • Close