Markdown

enは、文書を記述するための軽量マークアップ言語のひとつである。本来はプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発されたものである。しかし、現在ではHTMLのほかパワーポイント形式や形式のファイルへ変換するソフトウェアも開発されている。各コンバータの開発者によって多様な拡張が施されるため、各種の方言が存在する。

1. オリジナルのMarkdown
-----------------

「書きやすくて読みやすいプレーンテキストとして記述した文書を、妥当なXHTML文書へと変換できるフォーマット」として、ジョン・グルーバーにより作成された。アーロン・スワーツも大きな貢献をしている。enの記法の多くは、電子メールにおいてプレーンテキストを装飾する際の慣習から着想を得ている。

enはグルーバーによって書かれたMarkdown.plというenプログラムを指すこともある。このスクリプトは、enの形式でマークアップされたテキストをXHTML文書もしくはHTML文書に変換するものである。Markdown.plはスクリプト単体として利用することができると同時に、enやenのプラグインなどからも利用できる。

Markdown.plは、その後第三者によってenのenモジュール  として再実装され、さらにen等の他のプログラミング言語でも実装された。enはBSDライセンスの下で配布され、いくつかのコンテンツ管理システム  でもプラグインとして利用できる。

2. 利用例と方言
---------

有名なMarkdown方言としてCommonMark[1]、Markdown Extra[2]やGitHub Flavored Markdown[3]、enなどがある。その他のサービス・コンバータにおいても表やソースコードの記法などで独自の拡張が加えられていることが多い。以下にMarkdownの利用例を挙げる。

enや他のenサイトは、enを改変した方言をデフォルトのフォーマットシステムとして利用している。
enはenをマークアップの選択肢として提供している。
enはenを利用している。
enはenの方言をコメント・メッセージ・その他のフォーマットに利用している。en。のちに、CommonMarkベースの仕様に更新している。
enは、en記述用のマークアップ言語の選択肢としてenを提供している。
enはen拡張を使ってウィキ構文を提供している。この拡張構文はenと呼ばれる。
enはブログエントリ記述用のマークアップの選択肢としてenを提供している。
enはenでポストを編集できる。
StackEdit[4]はオンラインMarkdownエディタの一つ。GitHub Flavored Markdownに、数式記述とUMLシーケンス図、フローチャートを記述できる拡張が加えられている。

3. 記法の例
-------

以下の例はenの記法の包括的なリストではないし、ひとつの効果を実現するために複数の記法が利用できる場合も多い。詳細は[5]に記載されている。

3.1. 段落
-------

段落は1つ以上の連続したテキストであり、空行によって分けられる。通常の段落をスペースやタブでインデントしてはならない。 これは段落です。2つの文があります。

これは別の段落です。ここにも2つの文があります。<WtXmlEndTag />

3.2. 改行
-------

テキストに挿入された改行は最終的な結果から取り除かれる。これは、画面の大きさに応じて改行を行う処理はWebブラウザが担当すべきであるという設計思想による。強制的に改行したい場合は、行末に2つのスペースを挿入すればよい。

3.3. 見出し
--------

HTMLの見出しは、テキストの前にいくつかの'#'を置くことで作ることができる。'#'の数が見出しのレベルに対応する。

レベル1の見出し
レベル2の見出し
レベル3の見出し
レベル4の見出し
レベル5の見出し
レベル6の見出し<WtXmlEndTag />

最初の2つのレベルには代替の記法が存在する。 レベル1の見出し ===============

レベル2の見出し

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<WtXmlEndTag />

3.4. 引用
-------

> "このテキストは、HTMLのblockquote要素に囲まれます。 blockquote要素はreflowableです。テキストを好きなように 改行することができます。改行したとしても、変換後はひとつの blockquote要素として扱われます。"

上記は次のようなHTMLに変換される。

このテキストは、HTMLのblockquote要素に囲まれます。 blockquote要素はreflowableです。テキストを好きなように 改行することができます。改行したとしても、変換後はひとつの blockquote要素として扱われます。<WtXmlEndTag />

3.5. リスト
--------

順序無しリストのアイテム
サブアイテムはタブもしくは4つのスペースでインデントする
順序無しリストの別のアイテム+ 順序無しリストのアイテム + サブアイテムはタブもしくは4つのスペースでインデントする + 順序無しリストの別のアイテム

- 順序無しリストのアイテム - サブアイテムはタブもしくは4つのスペースでインデントする - 順序無しリストの別のアイテム

1. 順序付きリストのアイテム 1. サブアイテムはタブもしくは4つのスペースでインデントする 2. 順序付きリストの別のアイテム<WtXmlEndTag />

3.6. コード
--------

コードを含める場合、インラインコードは「`some code`」のようにバッククオート  で囲むことになる。 これは段落です。文中に`コードテキスト`を含みます。 複数行にまたがるコードは、タブもしくは4つ以上のスペースを行頭に書くか、3つずつのバッククオートでコード全体をくくる。
開始を表すバッククオートの3つ目に続けて、任意で言語名を明記することができる。 1行目 2行目 3行目 ```javascript  => { 'use strict';

console.log; }); ```<WtXmlEndTag /> enは通常、改行や連続したスペースを削除するため、インデントやコードのレイアウトを壊す可能性があるが、この場合 enは空白をすべて保持する。

3.7. 水平線
--------

1行の中に、3つ以上のハイフンやアスタリスク・アンダースコアだけを並べると水平線が作られる。ハイフンやアスタリスクのあいだには空白を入れてもよい。以下の行はすべて水平線を生成する。

* *
- - -

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<WtXmlEndTag />

3.8. リンク
--------

リンクは次のように記述できる。 [リンクのテキスト]

参照目的のリンクとして、脚注として段落外に含めることもできる。 [リンクのテキスト][linkref]

段落外もしくは文書の最後に次のような記述があれば、それは参照リンクとして機能する。 [linkref]: リンクのアドレス "リンクのタイトル"

3.9. 強調
-------

強調* もしくは _強調_
強い強調 もしくは __強い強調__<WtXmlEndTag />

3.10. 画像
--------

画像は以下のように埋め込める。リンクの冒頭に ! が付いている形式である。

![Altのテキスト] ![Altのテキスト]

3.11. バックスラッシュによるエスケープ
----------------------

Markdownが書式化コマンドとして解釈する文字は、バックスラッシュを加えることによって、その文字そのものとして解釈させることができる。例えば \* は、テキスト強調の開始ではなくアスタリスクとして出力される。

3.12. インラインHTML
---------------

生のHTMLのブロックレベル要素の中にあるテキストに対してMarkdownはいかなる変換も行わないので、HTMLのブロックレベル要素のタグでテキストを囲むことによって、Markdownのソース文章の中にHTMLのセクションを加えることもできる。

赤

4. 脚注
-----

5. 関連項目
-------

コンピュータ言語
データ記述言語
マークアップ言語
軽量マークアップ言語

6. 外部リンク
--------

[6]
[7]
[8]
[9]