Skip to content

Latest commit

 

History

History
145 lines (92 loc) · 6.04 KB

markdown-notes.md

File metadata and controls

145 lines (92 loc) · 6.04 KB
title emoji type topics published published_at
知らなかった Markdown のあれこれ
📝
idea
markdown
true
2023-10-28 15:06

この記事は?

タイトル通り、Markdown に関して僕が「あ、そうだったんだ」「こういうのあったんだ」と思ったことを、トリビアの泉形式でただただ綴っていきます。

文法の詳しい解説とかは省略しています。各公式ページ見た方が分かりやすいと思いますし。(え?いや、サボりとかじゃないですよそんな・・・)

新たな発見があったら、追加したりしなかったりするかもしれません。

Markdown は個人開発から始まっている

オリジナルは、John Gruber (ジョン・グルーバー) という方のプロジェクト。

@card

指定の (しかし単純な) 文法で書かれたテキストを HTML に変換してくれる Perl スクリプトを開発されました。この Perl スクリプトおよびそのプロジェクトが Markdown、そしてその文法が皆さんご存知 Markdown 文法のオリジナルなのです。

狭義の Markdown は、この個人開発によって作られた Perl スクリプトのことを指すと言えそうです。

:::message 補足トリビア

このオリジナルの Markdown の文法は、規定がとても曖昧です。それ故、各所で Markdown パーサが実装されるにあたり、細かな動作の違いが多々発生することになりました。(そもそもこんな広く使われるのは想定していなかったんでしょう・・・。)

そんな状況を改善すべく、John Gruber とは別の方により、CommonMark という厳密な Markdown 規格が作られました。

@card :::

オリジナル Markdown にテーブル (表) と打ち消し線の文法は無い

さて、上の Web ページを読んだ方は気付いたかもしれません。「あれ、テーブルの文法は?」「打ち消し線は?」

| Column 1 | Column 2 |
| --- | --- |
| Content 1-1 | Content 2-1 |
| Content 1-2 | Content 2-2 |
~~Strikethrough~~

ここで GitHub Flavored Markdown の文法を見てみましょう。

@card

Tables と Strikethrough に (extension) の表示が。

そう、テーブルの規定は拡張仕様なんです。多くのサービスが GitHub Flavored Markdown ベースの Markdown を実装しているようで、テーブルや打ち消し線が使えるところは多いですね。

おかげでてっきり標準規定かと・・・。

Zenn/Qiita/GitHub には補足を示せる文法がある

:::message
ここで言う補足というのは、このようなテキスト枠のこと。
:::

:::message ここで言う補足というのは、このようなテキスト枠のこと。 :::

Qiita では :::note が同等の機能。

一度や二度は見かけたことはあったはずが、僕はそれをすっかり忘れて代わりに引用表記をよく使っていました (at Qiita)。

ちなみに引用表記はコレのこと

@card

@card

割と最近 (2022/05/19)、GitHub にも似たようなものが追加されました (公式 Docs では警告と呼ばれている)。

> [!NOTE]
> Any note here

@card

@card

:::message 補足トリビア

VSCode 拡張の Markdown Preview Enhanced にも同様の機能があります。こちらはより充実していて、Note だけでなく Question とか Bug とか色々あります。

@card

Material for MkDocs という Markdown 静的サイトジェネレータの機能を利用しているようです。 :::

Zenn/Qiita にはコード差分を示せる文法がある

```diff c
+   printf("Hello\n");
-   printf("World\n");
    return 0;
```
+   printf("Hello\n");
-   printf("World\n");
    return 0;

これを知らずに、よくコメントアウトで // 追加 とか書いてました。(でも場合によってはコメントアウトの方が便利かも?コピペ前提で貼るときとか。)

@card

@card

第1レベル見出しは文書先頭 1度のみの使用が推奨されている

Markdown Lint に規定が、それから Zenn の Markdown チートシートにも推奨事項として記載されています。

@card

@card

それから、Qiita の Markdown チートシートのページの Markdown ソースも見てみると、ここも第 2レベル以下の見出しが使われているのが分かります。

@card

あとがき

たまに仕様書とか公式リファレンスとか読んでみると、「あ、そんな機能あったんだ」なんていう発見が割とあります。ここでは Markdown チートシートがそれにあたります。

知ってる言語やソフトも、たまには再入門してみると良いかもしれません。