
Markdown(マークダウン)とはHTMLに変換可能な読みやすいテキスト文書を書くための軽量マークアップ言語です。
GitHubやQiitaなどプログラマーなら使う機会は多いのではないでしょうか。
改行と段落
Markdown初心者がよく混乱するのが「改行」です。
Markdownで改行するのは行末に2つ以上の半角スペースを加えるという理解し難い仕様になっなっています。
以下の「行1」 の後ろには半角スペースが2ついてますが、そもそも通常のエディタでは行末の半角スペースなど視認出来ません。
行1 行2
Markdownはこれを
行1<br>行2
と変換するというわけです。
このような仕様になっているのは英文の「段落」の途中で強制的に改行させるためではないでしょうか。
長い英文は画面の横幅に収まりきれなくなると英単語の切れ目であるスペースで自動的に改行されます(一部の長い単語はハイフンで分割されて改行されます)。
そして画面の横幅に収まらなくても強制的に改行させたい場合に「行末のスペース2個以上」という仕様は英文であればしっくりきます。
しかし、日本語文章では、前述のように通常のエディタで行末の半角スペースが視認出来ないため混乱するだけです。
MarkdownではHTMLタグも使えますので日本語文章で改行を挿入したければ直接<br>タグを記述した方が便利です(<br>は閉じタグもありませんので簡単に記述できます)。
必要なのは改行でなく段落では?
そもそもHTMLではあまり改行(<br>)は使われません。
HTMLではほとんどの文章は段落(<p>)として記述されます。
Markdownでは行の後ろに空行を入れることで段落となります。
以下の「行1」と「行2」の後ろには空行があります。
行1 行2
これがMarkdownでは
<p>行1</p><p>行2</p>
と変換されます。
ブラウザ上では行1と行2の間は改行が入っているように見えます。
Markdownの改行(<br>)で混乱している人が本当に必要としているのはこの段落(<p>)ではないでしょうか。
表(テーブル)
テーブルは|(縦棒)を使って以下のよう記述します。
| 左寄せ1 | 中央寄せ1 | 右寄せ1| |-----------|:------------:|-----------| | 左寄せ3 | 中央寄せ3 | 右寄せ3 | | 左寄せ4 | 中央寄せ4 | 右寄せ4 |
以下のように変換されます。
<table> <tr> <th align="left">左寄せ1</th> <th align="center">中央寄せ1</th> <th align="right">右寄せ1</th> </tr> <tr> <td align="left">左寄せ3</td> <td align="center">中央寄せ3</td> <td align="right">右寄せ3</td> </tr> <tr> <td align="left">左寄せ4</td> <td align="center">中央寄せ4</td> <td align="right">右寄せ4</td> </tr> </table>
2行目の「-」と「:」の組み合わせは列のalign指定です。
2行目の指定 | 列のalign |
---|---|
−−− :−−− | 左寄せ |
:−−−: | 中央寄せ |
:−−−: | 右寄せ |
画像

上記のMarkdownは以下のようにimgタグに変換されます。
<img alt="画像名" src="http://foo.png">
これなら直接、imgタグを記述(前述のようにMarkdownではHTMLタグも記述できます)したほうがわかりやすいような・・・。
しかもどこかに画像ファイルを置かねばならず、テキストファイルでシンプルに管理できるというMarkdownの良さが半減してしまいます。
リンク(link)
[アンカーテキスト](http://foo.html)
上記のMarkdownは以下のようにaタグに変換されます。
<a href="http://foo.html">アンカーテキスト</a>
画像と同様、直接aタグを記述したほうがわかりやすいような気がします。
まあ、Markdownのファイル(拡張子.md)にHTMLを一切書きたくない、という人はどうぞ。
箇条書き
以下のように行頭に「-」、「+」、「*」のいずれかと半角スペースを記述すると、
* リスト1 * リスト2 * リスト3
箇条書き(<ul>)に変換されます。
<ul> <li>リスト1</li> <li>リスト2</li> <li>リスト3</li> </ul>
全角スペースや全角記号が混入しないようにする
Markdownで日本語文章を記述する場合、全角スペースや全角記号が混入して意図したHTMLに変換されない場合があります。
そうした混入を防ぐにはIMEの設定を日本語でプログラムを書く場合と同様にします。
コメント