同じ結果が得られるとしても、プログラミングの組み方によってその内容は千差万別です。しかし会社でプログラミングする際などにはそのようなスキルによって書き方が大きく違うというのは厄介でしょう。 Markdownについてもそれは同じで、例えば見出しの書き方すら2種類用意されており、好みによって利用が異なっています。これでは折角統一したフォーマットの利便性が活かせないかも知れません。そこで使ってみたいのがmarkdownfmtです。

markdownfmtのインストール

markdownfmtはgofmtのMarkdown版とも言うべきソフトウェアです。インストールはgoコマンドで簡単にできます。

$ go get -u github.com/shurcooL/markdownfmt

インストールするとmarkdownfmtコマンドが使えるようになります。

$ markdownfmt --help
usage: markdownfmt [flags] [path ...]
  -d=false: display diffs instead of rewriting files
  -l=false: list files whose formatting differs from markdownfmt's
  -w=false: write result to (source) file instead of stdout

コマンドオプションです。オプションを指定しない場合、整形された結果だけが返ってきます。

例えばdオプションを付ければ差分が表示されます。

a$ markdownfmt -d /Volumes/SD/Dropbox/Documents/oss.md 
diff /Volumes/SD/Dropbox/Documents/oss.md markdownfmt//Volumes/SD/Dropbox/Documents/oss.md
--- /var/folders/vn/rnq2qddx7cj6ljnr7lnjgw4m0000gn/T/markdownfmt159014204	2014-05-12 13:30:05.000000000 +0900
+++ /var/folders/vn/rnq2qddx7cj6ljnr7lnjgw4m0000gn/T/markdownfmt477234027	2014-05-12 13:30:05.000000000 +0900
@@ -1,9 +1,7 @@
-jsfmt - JavaScriptのコードを見やすく整形
-Apache License 2.0,node.js,JavaScript,オープンソース,github,テキスト
-最近にわかに話題に挙がっているのがGoです。多数のライブラリが世界中で開発されています。そんな中、Goに含まれるツールとして注目を集めているのが文法の整形ツールgofmtです。
-プログラミングソースは各人によって形が変わるものですが、それをGoの提示するフォーマットに整形してくれるのは便利です。それを受けて生み出されたのがjsfmt、JavaScript用のフォーマット整形ツールです。
+jsfmt - JavaScriptのコードを見やすく整形 Apache License 2.0,node.js,JavaScript,オープンソース,github,テキスト 最近にわかに話題に挙がっているのがGoです。多数のライブラリが世界中で開発されています。そんな中、Goに含まれるツールとして注目を集めているのが文法の整形ツールgofmtです。 プログラミングソースは各人によって形が変わるものですが、それをGoの提示するフォーマットに整形してくれるのは便利です。それを受けて生み出されたのがjsfmt、JavaScript用のフォーマット整形ツールです。
 
-## jsfmtの使い方
+jsfmtの使い方
+-----------------
 
 最も簡単な使い方はインデントなどの整形でしょう。例えば以下のようなコードがあります

markdownfmtは見出しを下に線を引いて書く手法のようです(筆者は#を使うのが好きです)。文書フォーマットを統一しつつもなかなか癖が抜けずに別な記法を使ってしまうという方はmarkdownfmtを使ってチェックしてみると良いのかも知れませんね。

markdownfmtはGo製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

shurcooL/markdownfmt