Pandoc は多種多様なフォーマットに対応した
ドキュメント変換ソフトウェアです。
→{2014-10-07 Tue}続報!もっと正しく快適にorg文書に変換しよう
現在主流の軽量マークアップ言語 Markdown をはじめとして、
Emacsユーザにとって嬉しい org-mode にも対応しています。
orgフォーマットの入出力ができるとはいえ
できたてほやほやなので、まだ完璧ではありません。
$ pandoc --help Input formats: docbook, haddock, html, json, latex, markdown, markdown_github, markdown_mmd, markdown_phpextra, markdown_strict, mediawiki, native, opml, org, rst, textile Output formats: asciidoc, beamer, context, docbook, docx, dzslides, epub, epub3, fb2, html, html5, icml, json, latex, man, markdown, markdown_github, markdown_mmd, markdown_phpextra, markdown_strict, mediawiki, native, odt, opendocument, opml, org, pdf*, plain, revealjs, rst, rtf, s5, slideous, slidy, texinfo, textile [*for pdf output, use latex or beamer and -o FILENAME.pdf] Options: -f FORMAT, -r FORMAT --from=FORMAT, --read=FORMAT -t FORMAT, -w FORMAT --to=FORMAT, --write=FORMAT -o FILENAME --output=FILENAME 略
標準入出力も使えるので、前処理・後処理も自由自在です。
たとえば、サイトを orgフォーマット に変換するにはこのようにします。
$ curl -s URL | pandoc -f html -t org 標準出力に変換結果 $ curl -s URL | pandoc -f html -o output.org output.orgに出力
とりあえず、URLをorgに変換するEmacsコマンドを書いてみました。
(defun toorg (url) (interactive "sConvert site to org (URL): ") (switch-to-buffer (format "*toorg: %s" url)) (buffer-disable-undo) (erase-buffer) (shell-command (format "curl -s %s | pandoc -f html -t org" (shell-quote-argument url)) (current-buffer)) (save-excursion (while (re-search-forward "\\\\\\\\$" nil t) (replace-match ""))) (org-mode) (view-mode 1))
M-x toorg の後にURLを指定すれば、org変換結果をバッファに出力します。
とりあえず興味があれば、
HTML - 多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう - Qiita
がまとまってて詳しいです。
また、マニュアルが日本に全訳されていて、現時点で新しいです。
Pandoc ユーザーズガイド 日本語版
PandocはHaskellで書かれています。
Haskellはいつか始めてみようと思ったまま
きっかけが見付からず何年も過ぎてしまいました。
ドキュメント変換は昔から興味があるテーマなので
これをきっかけにHaskellにも手を出してみたいです。
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。