Markdown再入門

どうも若松です。  

最近、過去のメモを掘り返して見ることがあるんですが、書いた時期によって書式がバラバラで、自分で書いたのにやたら見にくいことが多いです。

ならば書式を統一しようじゃないか！
いっそのことMarkdownで書いちゃえば他に転用できていいんじゃね？！  

などと思い立ち、改めてMarkdown記法を調べたのでまとめます。

# Markdown記法早見表
いきなり早見表かよ！というツッコミは受け付けておりません。
なんで早見表が一番上なのかというと、書いた本人が記法を忘れて見に来たときに一覧がほしいからです。
(ぶっちゃけこれが欲しくてこの記事を書きました)  

| 記法名 | 書式 | 機能 |
| --- | --- | --- |
| 段落 | (行間に空行) | 文章に段落をつけます。 |
| 改行 | (行末に半角スペース2つ) | 行に改行をつけます。 |
| 見出し | # 見出し | 行を見出しにします。<br>`＃`の数で見出しレベルが変わります。 |
| 引用 | > 引用文 | 引用文にします。<br>>を重ねると多重引用になります。|
| 斜体 | \*斜体* | テキストを斜体にします。 |
| 強調 | \*\*強調** | テキストを強調します。 |
| 斜体＆強調 | \*\*\*斜体＆強調*** | テキストを斜体にし、さらに強調します。 |
| 打ち消し線 | \~~打ち消し線~~ | テキストに打ち消し線をつけます。 |
| コード | \`\`\`コード``` | テキストをコード表示します。<br>空白や特殊文字もそのまま表示されます。 |
| インラインコード | \`コード` | テキストの一部をコード表示します。<br>空白や特殊文字もそのまま表示されます。 |
| リスト | - リスト1 <br>- リスト2 <br>- リスト3<br>* or + でも可 | テキストをリスト表示にします。<br>インデントにはタブを用います。 |
| 番号付きリスト | 1. リスト1 <br>1. リスト2 <br>1. リスト3 | テキストを番号付きリスト表示にします。<br>インデントにはタブを用います。 |
| 水平線 | ---<br>___ | 水平線を表示します。 |
| テーブル | &#124; 項目1 &#124; 項目2 &#124; 項目3 &#124;<br>&#124; ---- &#124; --- &#124; --- &#124;<br>&#124; 値1 &#124; 値2 &#124; 値3 &#124; | テーブルを表示します。<br>`-`は3つ以上であれば数は任意で決めることができます。<br>両端の&#124;は省略可能です。<br>`:`を用いることで値の位置を変更することができます。 |
| 自動リンク | \<URL> | URLのリンクを貼ります。<br>メールアドレスもリンク可能です。 |
| インラインリンク | \[テキスト](URL) | テキストにURLのリンクを貼ります。<br>メールアドレスもリンク可能です。 |
| 外部参照リンク | \[テキスト][参照名]<br>[参照名]:URL | テキストに参照名を介してURLのリンクを貼ります。<br>メールアドレスもリンク可能です。 |
| 画像 | \!\[alt属性](画像のパス) | 画像を表示します。
| エスケープ | \ | 特殊文字をエスケープします。 |

# Markdown記法詳解
Markdown記法を例を交えて解説します。
## 段落
行間に空行を入れることで段落になります。
#### Markdown：
```
段落1
(空行)
段落2
```
#### 表示：
段落1

段落2

## 改行
文の最後に半角スペースを2つ以上入れると改行になります。
#### Markdown：
```
文1(半角スペース2つ)
文2
```
#### 表示：
文1
文2

## 見出し
`#`と半角スペースを文頭に置くことで見出しになります。
`#`が増える毎に見出しレベルが変わります。
#### Markdown：
```
# 見出し1
## 見出し2
### 見出し3
#### 見出し4
##### 見出し5
###### 見出し6
```
#### 表示：
# 見出し1
## 見出し2
### 見出し3
#### 見出し4
##### 見出し5
###### 見出し6

## 引用
`>`と半角スペースを文頭に置くことで引用になります。
`>`を2つ以上置くと多重引用になります。
#### Markdown：
```
> 引用1
>> 引用2
>>> 引用3
```
#### 表示：
> 引用1
>> 引用2
>>> 引用3

## 装飾
記号で文(or 文の一部)を囲むことでテキストを装飾できます。
`*`の代わりに`_`を使用することも可能です。
#### Markdown：
```
これは*イタリック(斜体)*です。
これは**ボールド(強調)**です。
これは***イタリック(斜体)＆ボールド(強調)***です。
これは~~打消し線~~です。
```
#### 表示：
これは*イタリック(斜体)*です。
これは**ボールド(強調)**です。
これは***イタリック＆ボールド***です。
これは~~打消し線~~です。

## コード
\`\`\`または\~\~\~で文を囲うとコード表示になります。
コード表示内ではMarkdownは効かず、空白やタブなどもそのまま表示されます。 
#### Markdown
\`\`\`
echo "This is a code1"
echo "This is a code2"
\`\`\`
#### 表示：
```
echo "This is a code1"
echo "This is a code2"
```

## インラインコード
`` ` ``で囲うと行内の一部テキストをコード表示にできます。
#### Markdown
```
以下の`echo`を実行してください。
```
#### 表示：
以下のechoを実行してください。

## リスト(箇条書き)
`*` or `+` or `-` と半角スペースを文頭に置くことでリスト表示にできます。
ネストはタブで表現します。
#### Markdown
```
- リスト1
- リスト2
  - リスト3
    - リスト4
```
#### 表示：
- リスト1
- リスト2
  - リスト3
    - リスト4

## 番号付きリスト
数字とドット(`.`)を文頭に置くことで番号付きリスト表示にできます。
ネストはタブで表現します。
#### Markdown
```
1. リスト1
1. リスト2
  1. リスト3
    1. リスト4
```
#### 表示：
1. リスト1
1. リスト2
    1. リスト3
        1. リスト4

## 水平線(罫線)
`-` or `_`を3つ以上並べることで水平線(罫線)を表示できます。
#### Markdown
```
---
文1
______________
文2
```
#### 表示：
----
文1
______________
文2

## テーブル(表)
`-`と`｜`を組み合わせることでテーブル表示になります。
`-`は3つ以上であれば数は任意で決めることができます。
両端の`|`は省略可能です。
※テーブルは元々のMarkdownにはない仕様のため、動作しない環境もあります。
#### Markdown
```
| 項目1 | 項目2 | 項目3 |
| ---- | --- | --- |
| 値1 | 値2 | 値3 |
```
#### 表示：
| 項目1 | 項目2 | 項目3 |
| --- | --- | --- |
| 値1 | 値2 | 値3 |

また、`:`を用いると値の位置を変更することができます。
#### Markdown
```
| 左寄せ | 中央寄せ | 右寄せ |
| :---- | :---: | ---: |
| 値1 | 値2 | 値3 |
```
#### 表示：
| 左寄せ | 中央寄せ | 右寄せ |
| :---- | :---: | ---: |
| 値1 | 値2 | 値3 |

## 自動リンク
URLを`<>`で囲むことでリンクを貼ることが出来ます。
メールアドレスもリンク可能です。
#### Markdown
```
<http://google.com>
<xxxxx@gmail.com>
```
#### 表示：
<http://google.com>
<xxxxx@gmail.com>

## インラインリンク
`[]`でテキストを囲み、その後`()`でURLを囲むとテキストにURLのリンクを貼ることができます。
メールアドレスもリンク可能です。
#### Markdown
```
[Google](http://google.com)
[xxxxxへメール](xxxxx@gmail.com)
```
#### 表示：
[Google](http://google.com)
[xxxxxへメール](xxxxx@gmail.com)

## 外部参照リンク
`[]`でテキストを囲み、その後さらに`[]`でテキストを囲むと後ろのテキストを参照名(変数)として扱う事ができます。
実際のURLは`[]`で参照名テキストを囲み、その後に`:`とURLを書くと参照名にURLを紐付きます。
メールアドレスもリンク可能です。
#### Markdown
```
[Google][G]
[xxxxxへメール][xxxxx]

[G]:http://google.com
[xxxxx]:xxxxx@gmail.com
```
#### 表示：
[Google][G]
[xxxxxへメール][xxxxx]

[G]:http://google.com
[xxxxx]:xxxxx@gmail.com

## 画像
リンクの記法の頭に!を付けると画像表示になります。
`[]`内のテキストは画像のalt属性、`()`内は画像のパスです。
#### Markdown
```
![サンプル](sample.png)
```
#### 表示：
![サンプル](https://qiita-image-store.s3.amazonaws.com/0/94816/df2c1696-b4a0-5226-778c-7d24db7a7897.png)

## エスケープ
`\`を特殊文字(ここまで出てきた表示を変える文字)をエスケープ(無効化)することが出来ます。
#### Markdown
```
#### 見出し   
\#\#\#\# 見出しと書くと見出し表示になります。
```
#### 表示：
#### 見出し   
\#\#\#\# 見出しと書くと見出し表示になります。

## インラインHTML
Markdownは元々HTMLを簡単に書く目的で考案されたため、素のHTMLも扱うことが出来ます。
言い換えれば、Markdown記法で表現できない表示形式はHTMLタグで補えるということです。
例として上付き文字装飾を上げます。
#### Markdown
```
この文に上付き文字をつけます。<sup>上付き文字</sup>
```
#### 表示：
この文に上付き文字をつけます。<sup>上付き文字</sup>

# まとめ
全部書いたら結構長くなってしまいました。
本記事の内容はあくまで私が今回調べた成果ですので、抜け等はあると思います。
ですので、これ足りてないよーとかこれ間違ってんじゃん！というのがありましたら、教えていただけるとありがたいです。  

Markdown記法はご覧のとおり、簡単に記述することができます。
各種ブログやBacklog,GitHubなど幅広く使えますので、これを気にMarkdownを使ってみてはいかがでしょうか。
(各々のToolには方言・拡張機能が存在しますが、本記事では割愛します)

##参考
[Markdown原文](http://daringfireball.net/projects/markdown/syntax.php)
[はしくれエンジニアもどきのメモ](http://cartman0.hatenablog.com/entry/2015/03/31/034758)
[Markdown記法 チートシート](http://qiita.com/Qiita/items/c686397e4a0f4f11683d)