LoginSignup
134
101

More than 1 year has passed since last update.

Markdown 50のルール

Last updated at Posted at 2019-08-31

3行で

  • Markdown記法にもルールがある
  • 無視しても書けるけど、それに違和感がある人向け
  • Markdown記法を書いた記事ではないです

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

※知らないうちに 47→50 に増えてたため更新しました。

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

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>

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

コードブロックの中で書く場合は問題ありません。
GithubのReadmeをデコるために色をつけたりしたいんですが、HTMLでしか色づけできないので、これのルールに反してしまうのが悩ましいですね。

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な書きかた
_

MD048、049、050 - スタイルの記法は統一しなければならない

以下の例はどちらも同じスタイルを適用させることができる記法ですが、ひとつのファイル内ではどちらかの書き方に統一する必要があります(そんなことをわざわざすることはないと思いますが)。

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

~~~ruby
# コードブロックはこちらでも書けるけど、Qiitaでは言語指定が↑の書き方にのみ対応してるっぽい
~~~
*斜体にしたい*

_斜体にしたい_
**強調させたい**

__強調させたい__

まとめ

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

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

  • 以下の記事でルールが増えてるのを知りました。ありがとうございます!

134
101
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
134
101