Markdownの画像添付問題を解決するアイデア

93 views
Skip to first unread message

Hideto Ishibashi

unread,
Aug 25, 2016, 12:42:09 AM8/25/16
to markdown-ja
石橋です。

日頃からMarkdownについて地味に不満に思っていることがあり、それについて考察してみました。忌憚のないご意見をいただければ幸いです。


# Markdownの画像添付問題を解決するアイデア

Markdownはウェブページのコンテンツを書くうえでデファクトスタンダードになりつつあるフォーマットです。ただ、画像などの取り扱いが苦手です。「Markdownでテキストを書き、画像を貼り、その画像を添付し、まとめて送付する」という一見簡単なことが、わりと面倒な作業になってしまっています。これは地味ながら長年の未解決課題です。

## Markdownは画像の取り扱いが苦手

いまのMarkdownでは、実質的にHTMLの<img>タグと同じ、単にリンクするだけの仕組みしか用意されていません。

しかし、それでは「PC上でプレビューできる書き方」と「ウェブサイト上で正しく画像にリンクされる書き方」が一致しないケースなど、困る場合がでてきます。

例えば、画像のフォルダやサーバーがウェブページとは別になっているような場合ですね。個人ブログはともかく、企業運営サイトならよくある事情です。

問題は、Markdownテキストファイルと、それが参照する画像ファイルとの間の紐付けが、機械的に確実な方法でなされていないということにあるはずです。では、ここで解決策も考えてみましょう。といっても、まだ少し考えてみた程度ないのですが、第一感では2つの方法を思いつきました。

## パッケージフォルダ方式

OS Xのパッケージのような方式。Markdown文書とその添付ファイルを同じフォルダに入れておきます。アップロード時などのマシン間転送時にはZIPアーカイブとかで。

デメリットは、ディレクトリ構成を強制してしまうこと。この方式では、Markdown文書ひとつひとつが別々のフォルダになります。もしたくさんのMarkdownテキストファイルを同一フォルダで管理したい場合には、この方式ではダメです。

## 埋め込み方式

単一のMarkdownファイルに添付ファイルも埋め込む方式。アイデアの源は MIME (Multipurpose Internet Mail Extensions) です。それを現代風にアレンジしたらどうなるか。例えばスタティックサイトジェネレータ Jekyll で使われている YAML Front Matter を拡張すれば、Markdownテキストのマルチパート化ができるのでは。添付ファイルのエンコーディングはMIMEのようにBASE64とするか、あるいはData URIでもよいかもしれません。

デメリットは、本来ポータビリティの高いプレインテキストなMarkdownファイルが、ちょっと画像を貼ったくらいで巨大(数百KBから数MB)になってしまうこと。まあ慣れれば気にならなくなるかもしれませんが。

## 実用化に必要なこと

* フォーマットの標準化
* リファレンス実装(エディタやコンテンツマネジメントシステムの入出力のフィルターやプラグイン?)
* エディタやコンテンツマネジメントシステムによる採用(普及)

## おわりに

いつもMarkdownを使いながら、こんなことを考えたりしています。もし興味があればお話ししましょう。そこから具体的なフォーマットの仕様策定をしたり、リファレンス実装をしたり、といったこともできれば楽しいかなと。そのための場として日本語Markdownユーザー会のGoogle Groupがあります。

それでは。

Reply all
Reply to author
Forward
0 new messages