うさぎともふもふしたりうさぎともっふもっふしたり。プログラミングしたり。
2012-06-04
Haskell製のMarkdownをHTMLやLaTeXに変換できるPandocのインストールとサンプル
Haskell製のドキュメントコンバータ。markdownをhtmlにしたりLaTeXにしたりっていうことができるやつ。変換できる形式が多い。便利だ。
いろいろできてすごいんだけどオプションも多め。さすがに全部はめんどくさいけど調べてみた。
インストール
詳しいことはここに書かれている。
だいたいのOSに対応しているみたいなんで誰でも試せる。
MacのHomebrewでインストールする
Homebrewでインストールした。といっても、Pandocはformulaが用意されていない(npmでも用意されていないのと同じ理由らしい)ので、いま話題のhaskell-platformを通して、それからcabalを使ってインストール。
% brew install haskell-platform % cabal update % cabal install pandoc
少し時間かかるかも。インストールできたら.zshrcから$HOME/.cabal/binにパスを通す。zshの場合。
PATH=${HOME}/.cabal/bin:$PATH
記述して保存したらターミナルを再起動して、
% pandoc -v
とすると、
% pandoc 1.9.4 Compiled with citeproc-hs 0.3.4, texmath 0.6.0.6, highlighting-kate 0.5.1. Syntax highlighting is supported for the following languages: Actionscript, Ada, Alert, Alert_indent, Apache, Asn1, Asp, Awk, Bash, Bibtex, Boo, C, Changelog, Clojure, Cmake, Coffeescript, Coldfusion, Commonlisp, Cpp, Cs, Css, D, Diff, Djangotemplate, Doxygen, Dtd, Eiffel, Email, Erlang, Fortran, Fsharp, Gnuassembler, Go, Haskell, Haxe, Html, Ini, Java, Javadoc, Javascript, Json, Jsp, Latex, Lex, LiterateHaskell, Lua, Makefile, Mandoc, Matlab, Maxima, Metafont, Mips, Modula2, Modula3, Monobasic, Nasm, Noweb, Objectivec, Objectivecpp, Ocaml, Octave, Pascal, Perl, Php, Pike, Postscript, Prolog, Python, R, Relaxngcompact, Rhtml, Ruby, Scala, Scheme, Sci, Sed, Sgml, Sql, SqlMysql, SqlPostgresql, Tcl, Texinfo, Verilog, Vhdl, Xml, Xorg, Xslt, Xul, Yacc, Yaml Copyright (C) 2006-2012 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.
うまくいった。
% pandoc -h pandoc [OPTIONS] [FILES] Input formats: native, json, markdown, markdown+lhs, rst, rst+lhs, docbook, textile, html, latex, latex+lhs Output formats: native, json, html, html5, html+lhs, html5+lhs, s5, slidy, dzslides, docbook, opendocument, latex, latex+lhs, beamer, beamer+lhs, context, texinfo, man, markdown, markdown+lhs, plain, rst, rst+lhs, mediawiki, textile, rtf, org, asciidoc, odt, docx, epub Options: -f FORMAT, -r FORMAT --from=FORMAT, --read=FORMAT -t FORMAT, -w FORMAT --to=FORMAT, --write=FORMAT -o FILENAME --output=FILENAME --data-dir=DIRECTORY --strict -R --parse-raw -S --smart --old-dashes --base-header-level=NUMBER --indented-code-classes=STRING --normalize -p --preserve-tabs --tab-stop=NUMBER -s --standalone --template=FILENAME -V KEY[:VALUE] --variable=KEY[:VALUE] -D FORMAT --print-default-template=FORMAT --no-wrap --columns=NUMBER --toc, --table-of-contents --no-highlight --highlight-style=STYLE -H FILENAME --include-in-header=FILENAME -B FILENAME --include-before-body=FILENAME -A FILENAME --include-after-body=FILENAME --self-contained --offline -5 --html5 --ascii --reference-links --atx-headers --chapters -N --number-sections --no-tex-ligatures . . .
な、なるほど。調べるのしんどいな。オプションは下記のURLで調べられる。
デモ
オンラインで試せるやつもあった。
けど、オンラインじゃなくてとりあえずREADMEだけダウンロードして変換してみる。
% pandoc -s README | less <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="generator" content="pandoc" /> <meta name="author" content="John MacFarlane" /> <meta name="date" content="2012-01-27" /> <title>Pandoc User's Guide</title> </head> . . .
といった感じ。ファイルで出力するなら、
% pandoc -s README -o readme.html
それぞれファイルのフォーマットを指定するなら、
% pandoc -s -f markdown -t html README -o readme.html
こうする。
自前で用意したMarkdownファイルを変換してみる
EvernoteとMarkdownでごちゃごちゃやってるのでちょっとそのとき使う簡単なテストファイルを通して精度を確かめる。
% pandoc -s -f markdown -t html test.md -o test.html
tableがうまく変換されなかった。
First Header | Second Header
------------- | -------------
Row1 Cell1 | Row1 Cell2
Row2 Cell1 | Row2 Cell2
First Header Second Header Third Header
------------ ------------- ------------
Content Cell Content Cell Content Cell
Content Cell Content Cell Content Cell
First Header | Second Header | Third Header
- ----------- |
- -----------: | -----------:
Left | Center | Right
Left | Center | Right
どれもだめらしい。
ドキュメントを確かめてみると、
とのこと。Markdownの正しいテーブルの書き方って結局何なんだ…...。とりあえずこっちに差し替えてやってみるとうまく表が作られた。
-------------------------------------------------------------
Centered Default Right Left
Header Aligned Aligned Aligned
----------- ------- --------------- -------------------------
First row 12.0 Example of a row that
spans multiple lines.
Second row 5.0 Here's another one. Note
the blank line between
rows.
-------------------------------------------------------------
今までみたテーブルよりかきやすいといえば書きやすいけど。そもそもmarkdownの表はどれも扱いにくい。
その他オプションを試したんだけど目的のものがすぐ見つかってしまったのでやめた。Markdownに関して言えば、若干公式?の記法と異なる部分が見受けられる。そこにオプション混ぜると公式通りだったりそうじゃなかったり...。テーブルだけじゃなかったよ。精密さを求めるなら気軽にデータ投げられない。
- 465 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CGIQFjAA&url=http://d.hatena.ne.jp/sandai/20120604/p1&ei=DsDMT8WBD-3LmAWJxcmJDw&usg=AFQjCNEOkDJ91PcTTOGFYafRujd72yso5w&sig2=hGYpsqbKoY8edgq9DE2kJg
- 212 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CG4QFjAB&url=http://d.hatena.ne.jp/sandai/20110824/p1&ei=ccnMT_-wLa7nmAXg3PXfDg&usg=AFQjCNFEpqjA5qsxPZx2hbLfkXzgDy-GkA&sig2=Yn58aFNaeFKcd483CrVbyA
- 137 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&sqi=2&ved=0CGwQFjAC&url=http://d.hatena.ne.jp/sandai/20110930/p1&ei=9szMT8H7MKvSmAWy8cSADw&usg=AFQjCNE8CNECqfSqmy4WVi4eaVwPCme4MA&sig2=jUDpcHbh7P9YIIKxMVEtTA
- 118 http://www.google.co.jp/url?sa=t&rct=j&q=javascript function&source=web&cd=1&sqi=2&ved=0CGsQFjAA&url=http://d.hatena.ne.jp/sandai/20110824/p1&ei=fcHMT9_AK8_KmQWPrICUDw&usg=AFQjCNFEpqjA5qsxPZx2hbLfkXzgDy-GkA
- 98 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CGUQFjAD&url=http://d.hatena.ne.jp/sandai/20100714/p1&ei=qyXNT4X6GeL2mAWU5K2jAQ&usg=AFQjCNHALyMPNjR9rbJOVVe8NdKrSFAtVg
- 71 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=3&ved=0CGoQFjAC&url=http://d.hatena.ne.jp/sandai/20110930/p1&ei=pdrMT4HpC4_qmAX_t-n2Dg&usg=AFQjCNE8CNECqfSqmy4WVi4eaVwPCme4MA
- 59 http://www.google.co.jp/url?sa=t&rct=j&q=javascript+function&source=web&cd=1&ved=0CG4QFjAA&url=http://d.hatena.ne.jp/sandai/20110824/p1&ei=91bNT6TrM8bzmAXHm-jOAw&usg=AFQjCNFEpqjA5qsxPZx2hbLfkXzgDy-GkA
- 44 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CGUQFjAE&url=http://d.hatena.ne.jp/sandai/20100404/p1&ei=ZczMT_2KG-mgmQX558iPDw&usg=AFQjCNE12baZ162w9xg640vDWLp36Zhqxg
- 36 http://www.google.co.jp/url?sa=t&rct=j&q=setinterval&source=web&cd=3&ved=0CHAQFjAC&url=http://d.hatena.ne.jp/sandai/20100513/p1&ei=Nr_MT4jmHOmhmQXbq9zoDg&usg=AFQjCNFhBZh_JIWNXg4mbLKNe0CDOa3NkA
- 28 http://www.google.co.jp/url?sa=t&rct=j&q=サクラエディタ php&source=web&cd=2&ved=0CGkQFjAB&url=http://d.hatena.ne.jp/sandai/20090824/p1&ei=80fNT_yqGJD4mAX6vNWgAw&usg=AFQjCNFgfrqEw2XudyA-w
