知らなかった Markdown のあれこれ
この記事は?
タイトル通り、Markdown に関して僕が「あ、そうだったんだ」「こういうのあったんだ」と思ったことを、トリビアの泉形式でただただ綴っていきます。
文法の詳しい解説とかは省略しています。各公式ページ見た方が分かりやすいと思いますし。(え?いや、サボりとかじゃないですよそんな・・・)
新たな発見があったら、追加したりしなかったりするかもしれません。
Markdown は個人開発から始まっている
オリジナルは、John Gruber (ジョン・グルーバー) という方のプロジェクト。
指定の (しかし単純な) 文法で書かれたテキストを HTML に変換してくれる Perl スクリプトを開発されました。この Perl スクリプトおよびそのプロジェクトが Markdown、そしてその文法が皆さんご存知 Markdown 文法のオリジナルなのです。
狭義の Markdown は、この個人開発によって作られた Perl スクリプトのことを指すと言えそうです。
オリジナル Markdown にテーブル (表) と打ち消し線の文法は無い
さて、上の Web ページを読んだ方は気付いたかもしれません。「あれ、テーブルの文法は?」「打ち消し線は?」
| Column 1 | Column 2 |
| --- | --- |
| Content 1-1 | Content 2-1 |
| Content 1-2 | Content 2-2 |
~~Strikethrough~~
ここで GitHub Flavored Markdown の文法を見てみましょう。
Tables と Strikethrough に (extension) の表示が。
そう、テーブルの規定は拡張仕様なんです。多くのサービスが GitHub Flavored Markdown ベースの Markdown を実装しているようで、テーブルや打ち消し線が使えるところは多いですね。
おかげでてっきり標準規定かと・・・。
Zenn/Qiita/GitHub には補足を示せる文法がある
:::message
ここで言う補足というのは、このようなテキスト枠のこと。
:::
Qiita では :::note
が同等の機能。
一度や二度は見かけたことはあったはずが、僕はそれをすっかり忘れて代わりに引用表記をよく使っていました (at Qiita)。
ちなみに引用表記はコレのこと
割と最近 (2022/05/19)、GitHub にも似たようなものが追加されました (公式 Docs では警告と呼ばれている)。
> [!NOTE]
> Any note here
Zenn/Qiita にはコード差分を示せる文法がある
```diff c
+ printf("Hello\n");
- printf("World\n");
return 0;
```
+ printf("Hello\n");
- printf("World\n");
return 0;
これを知らずに、よくコメントアウトで // 追加
とか書いてました。(でも場合によってはコメントアウトの方が便利かも?コピペ前提で貼るときとか。)
第1レベル見出しは文書先頭 1度のみの使用が推奨されている
Markdown Lint に規定が、それから Zenn の Markdown チートシートにも推奨事項として記載されています。
それから、Qiita の Markdown チートシートのページの Markdown ソースも見てみると、ここも第 2レベル以下の見出しが使われているのが分かります。
あとがき
たまに仕様書とか公式リファレンスとか読んでみると、「あ、そんな機能あったんだ」なんていう発見が割とあります。ここでは Markdown チートシートがそれにあたります。
知ってる言語やソフトも、たまには再入門してみると良いかもしれません。
Discussion