2007-03-18

Markdown と Textile になんとなく感じたこと

Textile は最初見たとき「なんじゃこりゃ HTML の再発明じゃないか」と思ったが、実際に Markdown で Web ページを書き始めると

  • ID が指定できない
  • ブロック要素を定義できない

など、不便な点がいろいろ出てくる。細かな属性を書きたいわけではないが、div が書けて ID が指定できるくらいの機能がないとさすがに Web ページ全体(サイト全体にあらず)を記述するには力不足を感じる。日記のエントリくらいなら heading が 3つくらい使えればいいけど、ある程度の長さになると意味のある id を付与して URL としても意味を持たせたいし、意味の構造ごとに div で囲めると、デザインのコントロールなどの効果を後から足すことができて嬉しかったりする。

じゃあ Texile かというと、やっぱどーも HTML のまんまな感じがして、例えば普通の人にこれを使ってコンテンツを作ってくれとはさすがに言えない気がする。Markdown くらいならなんとかなると思うけど。バランス的には RedCloth [Textile Humane Web Text for Ruby] は結構好きかも。

======

------

で見出しを書きつつ、

| セル | セル |
| セル | セル |

でテーブルを書けるのはなかなかいい感じ。

ちなみに WYSIWYG で HTML を直接編集させた方がよいという考えもあるかもしれないけど、デザイン的な統一感を維持しつつ、コンテンツの更新コストだけを下げようと思ったときにその方法はあんまり採用したくない。各自が自由気ままに書くためには WYSIWYG の方がいいかもしれないけど、コンテンツを更新しなければいけないというルールが存在する場合は、シンプルで守りやすい制約を与えた方が結果として良い方向に働くことは多いし、コンバータを介してコンテンツを生成した方が HTML は壊れにくい。

話がそれた。

まーとにかくこれらのフォーマットに何らかの不足を感じる人はやはり居るらしく、すでに Markdown にも Textile にもあれこれ拡張バージョンが存在している。特に My Wandering Wiki: MultiMarkdown なんてのはあーやっぱりこういうの欲しくなるよね、と思ってしまった。何がってメタデータを含めることができると、生の Markdown ファイルをデータとしてそのまま利用しながら CMS としてメタデータを活用できるんで、例えば表示期間の制御とか認証関係とか作り込みやすくなるから。まぁ自分がやるなら Markdown 側からは無視される領域ってのを作ってやるだけにしておくと思うけど。そうしたらフォーマッタとメタデータを利用する CMS の部分を分離しやすくなるんで。CMS の側がヘッダを削除してから Markdown に渡す、でもいいんだけど。どっちにしろ Markdown そのものを拡張しちゃうとちょっといじりにくくなるんじゃないかなーと思ったりしている。実際にアプリ書いてないから外れてるかもしんないけど。

今のところの結論としては、自分が使うなら RedCloth、サイトやページの一部をなんにも知らない人が更新するために使うなら Markdown がいいかな。

あと面白いと思ったのは Pandoc. Haskell ってところがネックになるかもしれないけど、Markdown で書いて S5 スライドに変換できるのは便利そげ。まぁ実際にはプレゼンの機会なんて今はもう全然ないんだけど、S5 スライドがサクっと作れるとネタ作りとかにも便利そう。というか S5 いいなーと思いつつ HTML 直書きはもう勘弁と思っていたからこれいいかな、というのが本音。

なんか、「まぁ」が多いよね。まぁいっか。

About

例によって個人のなんちゃらです