2013年3月10日日曜日

Markdown 記法を他の軽量マークアップ言語と見比べてみた

以前に書いた Markdown の良さについて考えてみた の中で

  • 整形済みテキスト (pre)、リスト (ul,ol,li)、強調表現 (em)、コード (code) などの表現に関して Markdown は少ない文字列でスッキリ書ける ようになっており、RD、Textile、Pukiwiki、Trac Wiki に比べてプレーンテキストとしては読みやすいです。

と述べましたが、せっかく調べたので各種記法の具体例を列挙し、個人的な感想をば。

目次

記法に関して参考にしたサイト

Markdown

# Title

## Subtitle

- list1
    - list2

      リスト内にパラグラフを記載する場合はこんな感じ

    - list3 (行を空けて記載可能)

番号付きリストは以下のように記載

1. numlist1
2. numlist2

*強調表現はこんな感じ* [リンクはこのように](http://moya-notes.blogspot.jp/)

    整形済みテキストは半角空白 4 つ分のインデントで記載します。
    #!/bin/perl
    print ”Hello World!!¥n”;

HTML を使いたい場合は <sup>上付き文字はこんな感じ</sup> で普通に HTML を書いてしまって OK

テーブル書きたい時も普通に HTML で

<table border=1 align="center">
  <tr>
    <th>言語</th><th>特徴</th>
  </tr>
  <tr>
    <td>Markdown</td><td>プレーンテキスト読みやすい他</td>
  </tr>
  <tr>
    <td> : </td><td> : </td>
  </tr>
</table>
  • 感想
    • 強調表現やリンクに関して 少ない文字数 (たいてい1文字) の記号で括って表現 できるようになってることもあり、プレーンテキストとしても見やすいですね。
    • ざざっとメモを書いてるとリスト内にパラグラフ書きたいことが多いのですが、Markdown はそこら辺かなり自由に書いても Syntax Error にならないので楽です。空行を入れて OK なのもプレーンテキストとしての見やすさ向上に寄与してる気がします。
    • メモを元に記事やドキュメントを書く際、フォーマットを直したりするのを結構面倒に感じてた身としては、Markdown を使うと 1) メモの段階では Markdown 記法だけで十分、 2) 記事やドキュメントにする際、必要であれば HTML をそのまま埋め込めば良い、ができるのは良いですね。オーバーヘッド的作業が減るためかなり快適です。

RD (Ruby)

=begin
= Title

== Subtitle

* list1
  * list2

    リスト内にパラグラフを記載する場合はこんな感じ

  * list3 (行を空けて記載可能)

番号付きリストは以下のように記載

(1) numlist1
(2) numlist2

((*強調表現はこんな感じ*)) ((<リンクはこのように|URL:http://moya-notes.blogspot.jp/>))

 整形済みテキストは半角空白 1 つ分のインデントで記載します。
 #!/bin/perl
 print ”Hello World!!¥n”;
=end

=begin html
<p>
HTML を書く場合は begin, end で別途括り直す必要があります。
これで括られた部分は純粋に HTML の表記法が有効になります。
</p>

<table border=1 align="center">
  <tr>
    <th>言語</th><th>特徴</th>
  </tr>
  <tr>
    <td>Markdown</td><td>プレーンテキスト読みやすい他</td>
  </tr>
  <tr>
    <td> : </td><td> : </td>
  </tr>
</table>
=end
  • 感想
    • HTML に比べればかなりシンプルには書けるのですが、強調表現にせよリンクにせよ Markdown に比べると「もさっ」とする印象です。
    • Markdown 同様、リストの項目にパラグラフを書けたり、空行を入れられたりする点は良いですね。
    • HTML を表現できなくはないのですが、 =begin, =end という大枠の部分で再度くくり直す必要があるなど、Markdown に比べるとシームレスさでは劣るかなと。

Textile (Redmine)

h1. Title

h2. Subtitle

* list1
** list2

   リスト以下にパラグラフの記載も可能

   改行も OK
** list3 (続き物のリストにするなら直前の行との間に空行は入れちゃダメ)

番号付きリストは以下のように記載

# numlist1
# numlist2

*強調表現はこんな感じ* "リンクはこのように":http://moya-notes.blogspot.jp/

<pre>
整形済みテキストは pre タグで括ります。
#!/bin/perl
print ”Hello World!!¥n”;
</pre>

HTML の直書きは不可 ("<" や ">" は自動的に "&amp;lt;", "&amp;gt;" に変換され、HTML タグとは認識されない)

テーブル書きたい時は textile 記法で記載。

|_.言語|_.特徴|
|Markdown|プレーンテキストが読みやすい他|
|:|:|
  • 感想
    • 本来は Redmine におけるプロジェクト管理のためのチケットやドキュエント書きが目的のもので、チケット・ドキュメント・Wikiへのリンクが簡単に書ける点が特徴なのですが、ここでは独立したメモやドキュメント書きに使う事を前提にします。
    • Markdown とは異なりますが、多くの表現が 少ない文字数 (たいてい1文字) の記号で括ること で実現できます。スッキリしてて良いです。
    • テーブルに関しても "|" で区切るシンプルな書き方ができます。プレーンテキストとしても見やすいですね。
    • 基本的にシンプルで良いだけに、見出しの表記が hX. だったり整形済みテキストに <pre> を使ったり (原則 HTML タグは使えないのに) という点がメモとして見た際には違和感を感じますね。
    • リスト内のパラグラフの記載時、空行を入れていい場所と悪い場所があるのは気になってます。かなりマイナーなケチですが、以前 Redmine を使ってた際に調整が結構面倒だったので…。

Pukiwiki

*Title

**Subtitle

- list1
-- list2 (リスト内にパラグラフの記載は不可)
-- list3 (続き物のリストにするなら直前の行との間に空行は入れられない)

番号付きリストは以下のように記載

+ numlist1
+ numlist2

''強調表現はこんな感じ'' [[リンクはこのように:http://moya-notes.blogspot.jp/]]

 整形済みテキストは半角空白 1 文字分インデントします。
 #!/bin/perl
 print ”Hello World!!\n”;

HTML の直書きは不可 ("<" や ">" は自動的に "&amp;lt;", "&amp;gt;" に変換され、HTML タグとは認識されない)

テーブル書きたい時は Pukiwiki 記法で記載。

|~言語|~特徴|
|Markdown|プレーンテキストが読みやすい他|
|:|:|
  • 感想
    • Wiki を利用する際のメリットでもある、Wiki Name でのシンプルなリンク記述についてはここでは割愛します。
    • もちろん HTML 書くよりは全然いいのですが、Markdown や Textile と比べると強調表現やリンクの表現で「もさっ」と感がありますかね。
    • テーブルに関しては Textile 同様いいですね。
    • リスト内にパラグラフの記載ができなかったり空行を入れられないのは個人的にはデメリット大きいです。こういうふうに書きたいこと多くて、書けないと結構なストレス…。

Trac Wiki

= Title =

== Subtitle ==

 * list1 (半角空白 1 文字以上のインデントが必要)
   * list2 (リスト内にパラグラフの記載は不可)
   * list3 (続き物のリストにするなら直前の行との間に空行は入れられない)

番号付きリストは以下のように記載

 1. numlist1 (半角空白 1 文字以上のインデントが必要)
 2. numlist2

'''強調表現はこんな感じ''' [http://moya-notes.blogspot.jp/ リンクはこのように]

{{{
整形済みテキストは {{{ と }}} で括ります。
#!/bin/perl
print ”Hello World!!\n”;
}}}

HTML の直書きは不可 ("<" や ">" は自動的に "&amp;lt;", "&amp;gt;" に変換され、HTML タグとは認識されない)

テーブル書きたい時は Trac Wiki 記法で記載。

||言語||特徴||
||Markdown||プレーンテキストが読みやすい他||
||:||:||
  • 感想
    • Trac Wiki を利用する際のメリットである、チケットやレポートへのシンプルなリンク記述などについてはここでは割愛します。
    • Markdown や Textile と比べると強調表現やリンクの表現で「もさっ」と感が強いですね。
      • テーブルに関しても、 | で良さそうなんですが || なんですね…。
    • リスト内にパラグラフの記載ができない点、空行が入れられない点は Pukiwiki 同様に個人的にはデメリット大きいです。
    • リストの記載時に半角空白 1 文字以上インデントが必要といった微妙な縛りがある点も、メモ書きに使う上では嫌かも…。

まとめ

以上 Markdown を中心に据えつつ、いくつかの軽量マークアップ言語の具体例の紹介とその感想でした。メモ書きとしてはやっぱり Markdown は見やすくて/書きやすくて良いな、が私的結論ですね。テーブルの記法ぐらいはあっていいのかもと思う反面、あっても実際に使うかどうかは微妙です(編集が手間なのでリストで書いちゃう気もします)。

なお、そもそも Textile、Pukiwiki、Trac Wiki に関しては個別的なメモをとるためのものじゃないよね、というツッコミはその通りだと思いますし、私の個人的な利用を想定した比較であることと、選抜した言語も私がこれまで触ったことがあるもののみってのは公平さに欠けてます。ですが、実際に具体例を上げて「メモ書きとしてはどの言語が良さ気よ?」って記事って意外に少ないようなので、そういう要望がある方には多少のお役に立てるのかなと書いてみました。

本記事は Markdown の記法にフォーカスを当てたものですが、他に以下の点が気になる方は以前の記事 Markdown の良さについて考えてみた を参照下さい。

  • Markdown って広く利用されてる?
  • HTML への変換ツールはどこで提供されてる?

0 件のコメント:

コメントを投稿