はじめに

ここの所、文章は全てMakrdownで書くようにしています。仕事でも Qiita などのサービスを利用しており身の回りで徐々に markdown を使う環境を広げているところです。 まさにこのサイトも makrdown で書かれており色々と捗ります。 先日、だいぶ長い文章を markdown で書いたのですが最終的に清書して出す必要がありその際にフォーマット変換(HTMLやPDF)に変換したくなりました。 その際には時間切れだったのですが改めて環境を作ったので書いておきます。

Pandocを導入する

最近ちょっと入れてみたいと言う時にはDockerとかVagrantで簡単に環境を作っています。なのでMacbookで書いているのですが以後の処理はUbuntuで行った場合の対応になります。色々なファイルフォーマットを変換してもらうことの出来る Pandoc を利用します。

インストール

PandcoはHaskellの上で動くのでHaskel Platformの上で導入することも出来ますが今回は簡単にパッケージマネージャーから導入することにします。

1
$ sudo apt-get install pandoc

導入の確認

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vagrant@ubuntu1404:/vagrant_data/files$ pandoc -v
pandoc 1.12.2.1
Compiled with texmath 0.6.5.2, highlighting-kate 0.5.5.1.
Syntax highlighting is supported for the following languages:
    actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog,
    clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d,
    diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang,
    fortran, fsharp, gnuassembler, go, haskell, haxe, html, ini, java, javadoc,
    javascript, json, jsp, julia, latex, lex, literatecurry, literatehaskell,
    lua, makefile, mandoc, markdown, matlab, maxima, metafont, mips, modelines,
    modula2, modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml,
    octave, pascal, perl, php, pike, postscript, prolog, python, r,
    relaxngcompact, rhtml, roff, ruby, rust, scala, scheme, sci, sed, sgml, sql,
    sqlmysql, sqlpostgresql, tcl, texinfo, verilog, vhdl, xml, xorg, xslt, xul,
    yacc, yaml
Default user data directory: /home/vagrant/.pandoc
Copyright (C) 2006-2013 John MacFarlane
Web:  http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions.  There is no
warranty, not even for merchantability or fitness for a particular purpose.

変換してみる

1
% pandoc input.markdown -s -o output.html

オプションの説明などは日本語のリファレンスもあるのでそちらを参考にします。

githubのCSSで変換してみる

実際にHTMLにした際にも見た目、Github風に慣れ親しんでいるのでCSSを指定してHTMLに変換することが出来ます。またオプションを指定することにより toc(目次)も入れること出来ます。目次はHTMLの場合にはキチンとHyperlinkになってくれるのでありがたい。

導入・設定

markdownファイルがある場所にCSSをダウンロードします。

1
$ wget https://gist.github.com/andyferra/2554919

変換する

変換には、cssファイルを指定する方法がありますがこの場合には生成されたHTMLファイルがCSSファイルを利用するようになります。 単体の一つのHTMLにしたい場合にはテンプレートをコピーしてその中にCSSを埋め込んだほうが良いです。テンプレートはubuntuの場合には、/usr/share/pandoc/data/templates に導入されています。 今回はCSSファイルを個別にしてして見ます。

1
$ pandoc --toc --toc-depth=1 -t html -c github.css input.markdown -s -o output.html

こうするとmarkdownの書式に合わせて目次を生成してくれます。 自動でこういう風になってくれるとすごく便利です。

まとめ

簡単に変換できるツールなので他にもコンバージョンを試してみたいと思います。PDFの変換も気になるところですがChromeブラウザのPDF出力もある程度代用可能なので暫くはそちらでも良いかなと思っています。それよりも SLIDES 利用したスライド作れる方が興味があります。 簡単にテキスト(markdown)で書いておいてさっと発表に使えるとなると色々捗りそうです。

参考文献