Edited at

Markdown 47のルール


3行で


  • Markdown記法にもルールがある

  • 無視しても書けるけど――

  • Markdown記法を書いた記事ではないです


Markdown記法には(現在)47のルールがある

ルールを守らずに書いてもエラーを起こしたりすることはないけど、例えば「三点リーダ(…)は2つ続けて書かなければいけない」とか、「テーラードジャケットの一番下のボタンは外さなければいけない」とか、「葉巻は紙巻きたばこのように中指と人差し指で挟んで喫ってはいけない」とか、そういうたぐいのものだと思っている。守らなくても誰かが困るわけではない。でも守ることが美しい、とかそういう感じの。

ともかく『たぶんこれはやってしまう可能性がある』というものだけ抜粋して書きます。


MD001 - 見出しは1レベルずつ増加しなければならない

# 見出し1

### 見出し3

上記のように見出しレベル2 ## 見出し を抜かしてしまうのはNG。


MD012 - 連続した複数の空白行があってはいけない

ブログで見るみたいな

こういうやつです

空白行は1つまで。


MD018 - 見出しのシャープ(#)の後はスペースを1つ空けなければならない

##NG

## OK

また、2つ以上のスペースを空けてしまうと MD019 のルール違反になります。

全角スペースもNGです。


MD022 - 見出しは空白行で囲まなければならない

これは

## NG
です

これは

## OK

です

先頭、もしくは末尾にある場合はこの限りではありません。


MD023 - 見出しは行頭から書かなければならない

  ## NG

見出しをインデントしてはいけない

## OK

行頭から書き出します


MD024 - 複数の見出しで同じ文言を書いてはならない

## なまえ

ハンバーグ

## なまえ

にんじん

### なまえ

ちいさいにんじん

見出しレベルが変わっても文言はダブったらダメです。


MD025 - 見出しレベル1は複数回使ってはならない

# WHAT

# WHY

MD041で後述しますが、要約すると見出しレベル1は文の書き出しの1行目にしか書くことができません


MD026 - 見出しの末尾に句読点、もしくはピリオドを付けてはならない

## 見出しです。

これはNGです。

## header.

これもNGです。

## 見出し。です

これはOKです。

ちなみに末尾が読点(、)であれば問題ないです(一応)。


MD027 - 引用符のあとに複数のスペースを空けてはならない

>OKな引用符の使い方


> これもOK


> これはNG


MD028 - 引用符と引用符の間に空白行があってはならない

>空白行のみはNG


>下記のように

間にテキストを挟む場合はOK

>もしくは

>
>このようにする

引用元に空白行がある場合はこのルールで対応します。


MD031 - コードブロックの上下は空白行で囲まなければならない

NGな書きかた

` ``ruby
# 表示の都合上バッククオートにスペースを空けてます
`` `

以上

OKな書きかた

` ``ruby
# 表示の都合上バッククオートにスペースを空けてます
`` `

以上

末尾にある場合はこの限りではありません。


MD032 - リストは空白行で囲まなければならない

NGな書きかた

- リスト
- リスト2
以上

OKな書きかた

-
リスト
- リスト2

以上

末尾にある場合はこの限りではありません。


MD033 - HTMLを使用してはならない

<b>太字にしたくてもこれはNGです</b>

**マークダウン記法**を使ってください

コードブロックの中で書く場合は問題ありません。


MD034 - リンクしたいURLは<>で囲まなければならない

NGな書きかた

詳しくはhttps://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md#md034を参照

OKな書きかた
詳しくは<https://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md#md034>を参照

リンクに変換されないURLを書きたい場合はバッククオートで囲みます
`https://github.com/DavidAnson/markdownlint/blob/master/doc/Rules.md#md034`


MD036 - 強調を見出しとして使ってはならない

**見出し**

これはNGです

## 見出し

見出しタグを使いましょう

「複数の見出しで同じ文言を使ってはいけない」というMD024の制約があるため、目立たせたい文言には **強調** を使いたくなるところですが、これもルール違反です。うまい方法あれば教えてください。


MD040 - コードブロックには言語を指定しなければならない


` ``python
print ("MD031でもしれっと書いてましたがこんな感じです")

# 表示の都合上バッククオートにスペースを空けてます
`` `

こうなる↓

print ("MD031でもしれっと書いてましたがこんな感じです")

実際のところ言語を指定してあげた方が色もついていい感じです。

ちなみにこの記事で使っているコードブロックには markdown で指定しています。


MD041 - 最初の行は見出しレベル1でなければならない

# はじまり

## それから

### そうなった

MD025でも先述しましたが、要約すると見出しレベル1は文の書き出しの1行目にしか書くことができないということになります。


MD047 - ファイルの最後は改行しなければならない

※アンダースコアをカーソルとして見てください

NGな書きかた_

OKな書きかた
_


まとめ


  • VSCodeユーザーであれば拡張機能のMarkdownlintを入れると、ルールを犯したときに教えてくれて便利


  • 下記リンクを参考に執筆しました

    DavidAnson/markdownlint