Markdown

Markdown（マークダウン）は、文書を記述するための軽量マークアップ言語のひとつである。本来はプレーンテキスト形式で手軽に書いた文書からHTMLを生成するために開発されたものである。しかし、現在ではHTMLのほかパワーポイント形式やLaTeX形式のファイルへ変換するソフトウェア（コンバータ）も開発されている。各コンバータの開発者によって多様な拡張が施されるため、各種の方言が存在する。 「書きやすくて読みやすいプレーンテキストとして記述した文書を、妥当なXHTML（もしくはHTML）文書へと変換できるフォーマット」として、ジョン・グルーバー（英語版）により作成された。アーロン・スワーツも大きな貢献をしている。Markdownの記法の多くは、電子メールにおいてプレーンテキストを装飾する際の慣習から着想を得ている。 Markdownはグルーバーによって書かれたMarkdown.plというPerlプログラムを指すこともある。このスクリプトは、Markdownの形式でマークアップされたテキストをXHTML文書もしくはHTML文書に変換するものである。Markdown.plはスクリプト単体として利用することができると同時に、BlosxomやMovable Typeのプラグインなどからも利用できる。 Markdown.plは、その後第三者によってCPANのPerlモジュール (Text::Markdown) として再実装され、さらにPython等の他のプログラミング言語でも実装された。MarkdownはBSDライセンスの下で配布され、いくつかのコンテンツ管理システム (CMS) でもプラグインとして利用できる。 有名なMarkdown方言としてMarkdown Extra（英語版）[1]やGitHub Flavored Markdown（英語版）[2]、Marukuなどがある。その他のサービス・コンバータにおいても表やソースコードの記法などで独自の拡張が加えられていることが多い。また標準化への動きとして、IETFはIESGにdraft-ietf-appsawg-text-markdownをインターネットドラフトとして提案している。以下にMarkdownの利用例を挙げる。 Stack Overflowや他のStack Exchange Networkサイトは、Markdownを改変した方言をデフォルトのフォーマットシステムとして利用している。 PosterousはMarkdownをマークアップの選択肢として提供している。 RedditはMarkdownを利用している。 GitHubはMarkdownの方言をコメント・メッセージ・その他のフォーマットに利用している。John Gruber has described this dialect as a "superior variant" for "situations like user-submitted comments". Bitbucketは、README記述用のマークアップ言語の選択肢としてMarkdownを提供している。 Instiki（英語版）はMarkdown拡張を使ってウィキ構文を提供している。この拡張構文はMarukuと呼ばれる。 Squarespaceはブログエントリ記述用のマークアップの選択肢としてMarkdownを提供している。 TumblrはMarkdownでポストを編集できる。 MultiMarkdown（英語版） CommonMark（英語版） StackEdit[3]はオンラインMarkdownエディタの一つ。GitHub Flavored Markdownに、数式記述（MathJaxによる）とUMLシーケンス図、フローチャートを記述できる拡張が加えられている。 以下の例はMarkdownの記法の包括的なリストではないし、ひとつの効果を実現するために複数の記法が利用できる場合も多い。詳細はfull Markdown syntaxに記載されている。Markdownが書式化コマンドとして解釈する文字は、バックスラッシュを加えることによって、その文字そのものとして解釈させることができる。例えば「\*」は、テキスト強調の開始ではなくアスタリスクとして出力される。 また「生」のXHTMLのブロックレベル要素の中にあるテキストに対してMarkdownはいかなる変換も行わないので、XHTMLのブロックレベル要素のタグでテキストを囲むことによって、Markdownのソース文章の中にXHTMLのセクションを加えることもできる。 段落は1つ以上の連続したテキストであり、空行によって分けられる。通常の段落をスペースやタブでインデントしてはならない: これは段落です。2つの文があります。 これは別の段落です。ここにも2つの文があります。 テキストに挿入された改行は最終的な結果から取り除かれる。これは、画面の大きさに応じて改行を行う処理はWebブラウザが担当すべきであるという設計思想による。強制的に改行したい場合は、行末に2つのスペースを挿入すればよい。 *強調* もしくは _強調_（斜体として表現されることが多い） **強い強調** もしくは __強い強調__（太字として表現されることが多い） コード（等幅フォントで整形される）を含める場合、インラインコードは「`some code`」のようにバッククオート (U+0060) で囲むことになる。 複数行にまたがるコードは、タブもしくは4つ以上のスペースを行頭に書く。 1行目 2行目 3行目 Markdownは通常、改行や連続したスペースを削除するため、インデントやコードのレイアウトを壊す可能性があるが、この場合 Markdownは空白をすべて保持する。 * 順序無しリストのアイテム * サブアイテムはタブもしくは4つのスペースでインデントする * 順序無しリストの別のアイテム 1. 順序付きリストのアイテム 2. 順序付きリストの別のアイテム HTMLの見出しは、テキストの前にいくつかの'#'を置くことで作ることができる。'#'の数が見出しのレベルに対応する（HTMLは、見出しのレベルを6まで提供している）。 # レベル1の見出し #### レベル4の見出し 最初の2つのレベルには代替の記法が存在する: レベル1の見出し =============== レベル2の見出し --------------- > "このテキストは、HTMLのblockquote要素に囲まれます。 blockquote要素はreflowableです。テキストを好きなように 改行することができます。改行したとしても、変換後はひとつの blockquote要素として扱われます。" 上記は次のようなHTMLに変換される。 <blockquote> <p>このテキストは、HTMLのblockquote要素に囲まれます。 blockquote要素はreflowableです。テキストを好きなように 改行することができます。改行したとしても、変換後はひとつの blockquote要素として扱われます。</p> </blockquote> リンクは次のように記述できる。 [リンクのテキスト](リンクのアドレス "リンクのタイトル") 参照目的のリンクとして、脚注として段落外に含めることもできる。 [リンクのテキスト][linkref] 段落外もしくは文書の最後に次のような記述があれば、それは参照リンクとして機能する。 [linkref]: リンクのアドレス "リンクのタイトル" 1行の中に、3つ以上のハイフンやアスタリスク・アンダースコアだけを並べると水平線が作られる。ハイフンやアスタリスクのあいだには空白を入れてもよい。以下の行はすべて水平線を生成する: * * * *** ***** - - - --------------------------------------- コンピュータ言語 データ記述言語 マークアップ言語 軽量マークアップ言語 ^ “RFC 7763”. IETF. 2018年12月12日閲覧。 ^ Aaron Swartz (2004年3月19日). “Markdown”. 2018年12月12日閲覧。 ^ John Gruber (2004年12月17日). “Markdown 1.0.1”. 2018年12月12日閲覧。 ^ a b Markdown 1.0.1 readme source code“Daring Fireball - Markdown” (2004年12月17日). 2011年11月13日閲覧。 ^ “MarsEdit 2.3 ties the knot with Tumblr support - Ars Technica”. 2009年8月11日閲覧。 ^ “Review: Practical Django Projects - Ars Technica”. 2009年8月11日閲覧。 ^ “Markdown Editing Help - Stack Overflow”. 2010年4月29日閲覧。 ^ “Three Markdown Gotchas - Blog – Stack Overflow”. 2010年4月29日閲覧。 ^ “Markdown - Posterous Help”. 2013年4月27日時点のオリジナル[リンク切れ]よりアーカイブ。2010年6月26日閲覧。 ^ “Reddit's help document on Markdown”. 2010年7月20日閲覧。 ^ “Making GitHub More Open: Git-backed Wikis - GitHub”. 2010年9月1日閲覧。 ^ “GitHub Flavored Markdown - Introduction”. 2011年1月3日閲覧。 ^ “Daring Fireball Linked List: GitHub Flavored Markdown”. 2011年1月3日閲覧。 ^ “Displaying README Text on your Bitbucket Source Tab”. 2012年12月27日閲覧。 ^ “Markup Choices in Instiki”. 2010年8月24日閲覧。 ^ “Squarespace Mini-Reference”. 2010年9月30日閲覧。 ^ “Tumblr Preferences”. 2011年1月3日閲覧。 公式ウェブサイト （英語） Markdown Wiki （英語） CommonMark （英語） MarkdownSharp （英語） PHP Markdown （英語） Showdown, a JavaScript implementation of Markdown （英語） Markdownr.com, a simple website to preview markdown in real time （英語）