プログラマーという仕事をしているとプログラミング言語だけでなく自然言語を書くことも多いです。最近自分はドキュメントにしろちょっとしたメモにしろMarkdownで書くのが好みです。
Markdownで書くことのメリット
低コスト
自分がキャリアをスタートさせたときはA4で印刷されることを前提に作られたExcel方眼紙を利用してドキュメントを書いたり丁寧に手書きの履歴書を書いたりという環境でした。Pagesのようなちょっとおしゃれなビジネスマンが使うようなツールでもスタイルを気にする必要があります。
単に文章を書きたいだけなのに使うソフトウェアの操作やデザインに頭を使わなければいけないのはコストが高いと感じています。MarkdownならviやWindowsのメモ帳でも書くことができて、レイアウトは後回しにすることができます。
変換可能性
この文章はQiitaに投稿していますので当然Markdownで書かれていて、それをHTMLに変換されたものが表示されているはずです。Markdownは各種ライブラリを使えば簡単にHTMLやreStructuredTextにできます。必要であればremarkなどを使ってスライドにすることもできます。メールで資料を渡す際に Google Chrome でpdfに変換して渡すというのもよくやります。
セマンティクス
フリーレイアウトで文章を書く時には適切に段落を組んだり意味のまとまりで余白を入れたりとデザイン的な要素でセマンティクスの表現をしますが、文章を書くことに集中するときにはデザインのことは後回しにしたいです。Markdownでは段落にタイトルをつけたりリストを作成したりと、HTMLタグほど細かい表現力はありませんがある程度セマンティクスを表現することができます。
Markdownを書くためのツール
Markdownを書くために自分が使っているツールの一部を列挙します。Vimを使うことが多いのでVimのプラグインがほとんどです。ここに書かれているもの以外にも各種エディタやIDEにも便利なツールがたくさんあると思います。
memo
最近お気に入りのツールはGolang製のmemoです。memo
コマンドを叩けばエディタが起動してMarkdownでメモを作成できます。軽くドキュメントの下書きをする時やちょっと思いついたことをメモするときなど、思い立ったときにmemo
コマンドを実行しています。外出先と仕事と家とでは別の端末を利用しているためファイルはDropboxの指定した場所に保存してどの端末でも共有できるようにしています。
previm (Vimプラグイン)
MarkdownをブラウザでプレビューするためのVimプラグイン。自分は Google Chrome で開くようにしています。
let g:previm_open_cmd = 'open -a "Google Chrome"'
vim-markdown (Vimプラグイン)
シンタックスなどをうまいことやってくれるVimプラグイン。vim-polyglotにも同等のことが内包されています。このプラグインでは[title](http://example.com)
のようなリンクが折りたたまれて表示されてしまうため、自分は以下のように設定してその機能を使わないほうが好みです。
let g:vim_markdown_conceal = 0
vim-table-mode (Vimプラグイン)
Vimでテーブルをうまく作ってくれるプラグイン。Markdownのテーブル表現ができるようにカスタマイズできます。
let g:table_mode_corner = '|'