2015-02-28

Markdown vs Textile vs reStructuredText

md-vs-rst-vs-txt.png

[ PR ]


以前、Markdownのチートシートを書きましたが、最近ではMarkdownも幅広い用途に使われるようになりました。

特にPandocというHaskellで書かれたツールを使うことで、マークアップ言語間の変換や、電子書籍の制作、プレゼンテーションの出力などが簡単にできるようになりました。

そこで、改めて3つの言語の細かな違いを検証してみようと思います。

凡例

  • md ・・・ Markdown
  • rst ・・・ reStructuredText
  • tx ・・・ Textile

横長い表になるため、PC版での閲覧推奨(スマホでもPC版を要求すればOK)

チートシート

見出し、段落

項目 md rst tx HTML
見出し head1
======
head2
---------
head1
======
head2
---------
なし <h1>head1</h1>
<h2>head2</h2>
見出し
(省略)
# head1
## head2
### head3
なし h1. head1
h2. head2
h3. head3
<h1>head1</h1>
<h2>head2</h2>
<h3>head3</h3>
段落 I am Tom.

You are Mary.
I am Tom.

You are Mary.
I am Tom.

You are Mary.
<p>I am Tom.</p>
<p>You are Mary.</p>
段落
(改行)
I am Tom.<br>
You are Mary.
¦ I am Tom.
¦ You are Mary.
(*1)
I am Tom.
You are Mary.
<p>I am Tom.<br>
You are Mary.</p>

引用、コード、水平線

項目 md rst tx HTML
引用 > quotation   quotation
(*2)
bq. quotation <blockquote>
<p>quotation</p>
</blockquote>
インラインコード `code` なし <code>code</code> <code>code</code>
コードブロック ```ruby
puts "hello"
```
(*3)
>>> print "hello"
(*4)
<p><code>
puts "hello"
</code></p>
<p><code>
puts "hello"
</code></p>
水平線 ---------- ---------- ---------- <hr>

文字装飾

項目 md rst tx HTML
斜体
(em)
*italic*
_italic_
*italic* _italic_ <em>italic<em>
斜体
(i)
<i>italic</i> なし __italic__ <i>italic</i>
太字
(strong)
**bold**
__bold__
**bold** *bold* <strong>bold<strong>
太字
(b)
<b>bold</b> なし **bold** <b>bold</b>

リンク、画像

項目 md rst tx HTML
リンク [ow.ly](http://ow.ly/) `ow.ly <http://ow.ly/>`_ "ow.ly":http://ow.ly <a href="http://ow.ly">ow.ly</a>
画像 ![google](logo.png) .. google:: logo.png !logo.png(google)! <img alt="google" src="logo.png"/>

単純リスト、数字付きリスト (*5)

項目 md rst tx HTML
単純リスト - apple
- banana
- apple
- banana
* apple
* banana
<ul>
<li>apple</li>
<li>banana</li>
</ul>
数字付きリスト 1. apple
1. banana
(*6)
#. apple
#. banana
(*7)
#. apple
#. banana
<ol>
<li>apple</li>
<li>banana</li>
</ol>

テーブル記法

項目 md rst tx HTML
テーブル ¦A¦B¦
¦--¦--¦
¦a¦b¦
(*8)
== ==
A B
-- --
a b
== ==
(*9)
¦_.A¦_.B¦
¦a¦b¦
<table><tr>
<th>A</th><th>B</th>
</tr><tr>
<td>a</td><td>b</td>
</tr></table>

属性の追加、インラインHTML

※1 ANYは何でも可の意味
※2 Markdownの追加属性機能は、Markdown Extendedなどでの拡張。

項目 md rst tx
追加属性 ANY {#header1}
ANY {#main .small}
.. class:: small p(#big-red). Red here
p(example1). An example
HTML埋め込み ◯(直接) ◯:例
.. raw:: html
<hr width=50 size=10>
◯(直接 or 専用記法

脚注

  • *1 実際に出力されるコードは他と異なり、divに属性が付いたものが出力される。
  • *2 下線部はインデント。pタグは出力されない
  • *3 バックスラッシュは実際は半角。この記法はGitHub Flavored Markdown などのみで使え、書式も出力コードも処理系依存
  • *4 preタグのみ出力され、コードブロックの中身も >>> から始まる。Python記法のみサポートしている模様。
  • *5 入れ子については省略
  • *6 この記法では番号を指定することは出来ない。(1), (2) などを使えば可。
  • *7 #の代わりに数字を指定すれば、番号の明示ができる
  • *8 テーブル記法は実装に依存するため、HTMLで記述するのが確実。
  • *9 複数の記法があるので、詳細は仕様を参照

コメントはTwitterアカウントにお願いします。

RECENT POSTS


[ PR ]

.