Markdown diff – Markdownフォーマットの解析/ビジュアル化
Markdown関連のソフトウェアがとても多くなっています。軽量マークアップ言語のシェアはMarkdownが半分以上になっているのではないでしょうか。そうやってコンテンツが増えていくと、次に作成から活用の段階に入っていきます。 単純にHTMLファイルにするだけでなく、もっとMarkdownフォーマットを活用したソフトウェアが出てくることでしょう。そのベースに使えそうなのがMarkdown diffです。
Markdown diffの使い方
Markdown diffはMarkdownファイル同士の差分がとれるようなのですが、執筆時点ではそのコマンドは用意されていません。現在は構造解析ができるようです。
$ mdast README.md
{ t: 'Document',
start_line: 1,
start_column: 1,
end_line: 58,
children:
[ { t: 'SetextHeader',
start_line: 1,
start_column: 1,
end_line: 2,
inline_content: [ { t: 'Str', c: 'Markdown diff' } ],
level: 1,
children: [] },
{ t: 'Paragraph',
start_line: 4,
start_column: 1,
end_line: 6,
inline_content:
[ { t: 'Str',
c: 'Markdown diff, or mddiff, is a tool to diff two markdown files. It constructs' },
{ t: 'Softbreak' },
{ t: 'Str', c: 'an' },
{ t: 'Str', c: ' ' },
{ t: 'Link',
destination: 'http://en.wikipedia.org/wiki/Abstract_syntax_tree',
title: undefined,
label: [ { t: 'Str', c: 'AST' } ] },
{ t: 'Str', c: ' ' },
{ t: 'Str', c: 'for both files and' },
{ t: 'Softbreak' },
{ t: 'Str', c: 'then compute the diff on those trees.' } ],
children: [] },
:
このようにMarkdownファイルの構造がとれます。さらにGraphvizを使ってビジュアル化も可能です。
構造が表現できれば、それを使って差分を表示するのは難しくないでしょう。それだけでなくMarkdownから別なフォーマットへ変換したり、システムの中で活用するのも難しくなさそうです。Markdownの可能性を引き上げてくれそうなソフトウェアです。
Markdown diffはnode/JavaScript製、MIT Licenseのオープンソース・ソフトウェアです。