Markdown
Markdown は、文書を記述するための軽量マークアップ言語のひとつである。「書きやすくて読みやすいプレーンテキストとして記述した文書を、妥当なXHTML(もしくはHTML)文書へと変換できるフォーマット」として、ジョン・グル―バー(John Gruber)により作成された。アーロン・スワーツ(Aaron Swartz)も大きな貢献をしている。[1] Markdownの記法の多くは、電子メールにおいてプレーンテキストを装飾する際の慣習から着想を得ている。
MarkdownはGruberによって書かれた"Markdown.pl"というPerlスクリプトを指すこともある。このスクリプトは、Markdown形式でマークアップされたテキストをXHTML文書もしくはHTML文書に変換するものである。Markdown.plはスクリプト単体として利用することができると同時に、BlosxomやMovable Typeのプラグインなどからも利用できる。[1]
Markdown.plは、その後第三者によってCPANのPerlモジュール(Text::Markdown)として再実装され、さらにPython等の他のプログラミング言語でも実装された。MarkdownはBSDライセンスの下で配布され、いくつかのCMSでもプラグインとして利用できる。[2][3]
目次 |
記法の例 [編集]
以下の例はMarkdownの記法の包括的なリストではないし、1つの効果を実現するために複数の記法が利用できる場合も多い。詳細はfull Markdown syntaxを参照せよ。Markdownが書式化コマンドとして解釈する文字は、バックスラッシュを加えることによって、その文字そのものとして解釈させることができる。例えば '\*' は、テキスト強調の開始ではなくアスタリスクとして出力される。 また「生」のXHTMLのブロックレベル要素の中にあるテキストに対してMarkdownはいかなる変換も行わないので、XHTMLのブロックレベル要素のタグでテキストを囲むことによって、Markdownのソース文章の中にXHTMLのセクションを加えることもできる。
段落 [編集]
段落は1つ以上の連続したテキストであり、空行によって分けられる。通常の段落をスペースやタブでインデントしてはならない:
これは段落です。2つの文があります。 これは別の段落です。ここにも2つの文があります。
改行 [編集]
テキストに挿入された改行は最終的な結果から取り除かれる。これは、画面の大きさに応じて改行を行う処理はWebブラウザが担当すべきであるという設計思想による。強制的に改行したい場合は、行末に2つのスペースを挿入すればよい。
テキストの強調 [編集]
*強調* もしくは _強調_(斜体として表現されることが多い)
**強い強調** もしくは __強い強調__(太字として表現されることが多い)
コード [編集]
コード(等幅フォントで整形される)を含める場合、インラインコードは `some code` のようにグレイヴ・アクセント(`)で囲むことになる。
複数行にまたがるコードは、4つ以上のスペースを行頭に書く。
1行目
2行目
3行目
Markdownは通常、改行や連続したスペースを削除するため、インデントやコードのレイアウトを壊す可能性があるが、この場合Markdownは空白をすべて保持する。
リスト [編集]
* 順序無しリストのアイテム * サブアイテムは4つのスペースでインデントする * 順序無しリストの別のアイテム <!-- dummy comment line for breaking list --> 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つ以上のハイフンやアスタリスク・アンダースコアだけを並べると水平線が作られる。ハイフンやアスタリスクのあいだには空白を入れてもよい。以下の行はすべて水平線を生成する:
* * * *** ***** - - - ---------------------------------------
利用例 [編集]
- Stack Overflowや他のStack Exchange Networkサイトは、Markdownを改変した方言をデフォルトのフォーマットシステムとして利用している。[4][5]
- Posterous はMarkdownをマークアップの選択肢として提供している。[6]
- Reddit はMarkdownを利用している。[7]
- GitHub はMarkdownの方言をコメント・メッセージ・その他のフォーマットに利用している。[8][9] John Gruber has described this dialect as a "superior variant" for "situations like user-submitted comments".[10]
- Bitbucket は、README記述用のマークアップ言語の選択肢としてMarkdownを提供している。[11]
- Instiki はMarkdown拡張を使ってWiki構文を提供している。この拡張構文はMarukuと呼ばれる。[12]
- Squarespace はブログエントリ記述用のマークアップの選択肢としてMarkdownを提供している。[13]
- Tumblr はMarkdownでポストを編集できる[14]
関連項目 [編集]
脚注 [編集]
- ^ 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”. 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日閲覧。