ワンソースマルチユースの強力なツールPandocを紹介します。前項からの続きですので、簡易フォーマッターとしての側面を取り上げますが、Pandocの機能はそれにとどまらず、種々のフォーマットの相互変換ツールとして使うことができます。

Pandocとは

Pandocはファイルコンバーターです。Markdown、Textile、reStructuredText、HTML、LaTeX、MediaWiki markup、Haddock markup、OPML、DocBookなどの形式のファイルを読み込んで、プレーンテキスト、Markdown、reStructuredText、XHTML、HTML5、LaTeX、ConTeXt、RTF、OPML、DocBook、OpenDocument、ODT、Word docx、GNU Texinfo、MediaWiki markup、EPUB2、EPUB3、FictionBook2、Textile、groff man pages、Emacs Org-Mode、AsciiDoc、Slidy、Slideous、DZSlides、reveal.js、S5 HTMLスライドショー、PDFなどに変換したファイルを出力します。

対応ファイル形式のリストをながめるだけで目がくらみそうですが、以下ではマークダウン(Markdown)という記法で印付けしたテキストからHTMLとEPUBを生成した例をご覧いただきます。

HTML出力

今お読みいただいているこのHTMLページは、実際にマークダウンで記述したテキストをPandocで処理して生成しています。本記事のソースは次のようなテキストファイルです(冒頭のみ)。

% HTML第2ステージ [6] 簡易フォーマッターPandoc
ワンソースマルチユースの強力なツールPandocを紹介します。[前項](review.html)からの続きですので、簡易フォーマッターとしての側面を取り上げますが、Pandocの機能はそれにとどまらず、種々のフォーマットの相互変換ツールとして使うことができます。
### Pandocとは
Pandocはファイルコンバーターです。Markdown、Textile、reStructuredText、HTML、LaTeX...

このように%や#などで印を付けただけのソースですが、これをPandocで処理すると次のような2種類のHTMLに変換することができます。
最初のものは、HTMLページに必要な要素をすべて備えたスタンドアロンのHTMLです。このままWebにアップできる形式になっています。2つめはヘッダーなどをはぎ取った正味のHTMLです。マルチユースのマスターデータとするには後者が向いていそうですが、マスターとしてどちらを選ぶかは全体の作業フローをどう組み立てるかによってきます。

<!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" />
  <title>HTML第2ステージ [6] 簡易フォーマッターPandoc</title>
  <style type="text/css">code{white-space: pre;}</style>
  <link rel="stylesheet" href="main.css" type="text/css" />
</head>
<body>
<div id="header">
<h1 class="title">HTML第2ステージ [6] 簡易フォーマッターPandoc</h1>
</div>
<p>ワンソースマルチユースの強力なツールPandocを紹介します。<a href="review.html">前項</a>からの続きですので、簡易フォーマッターとしての側面を取り上げますが、Pandocの機能はそれにとどまらず、種々のフォーマットの相互変換ツールとして使うことができます。</p>
<h3 id="pandocとは">Pandocとは</h3>
<p>Pandocは、markdown、Textile、reStructuredText、HTML、LaTeX...</p>
</body>
</html>
<p>ワンソースマルチユースの強力なツールPandocを紹介します。<a href="review.html">前項</a>からの続きですので、簡易フォーマッターとしての側面を取り上げますが、Pandocの機能はそれにとどまらず、種々のフォーマットの相互変換ツールとして使うことができます。</p>
<h3 id="pandocとは">Pandocとは</h3>
<p>Pandocは、markdown、Textile、reStructuredText、HTML、LaTeX...</p>

EPUB出力

EPUBの出力も簡単です。HTML版と同じCSSを適用していますが、電子書籍として完備したものではないのでスクリーショットのみご覧いただきます。

Pandocの情報

Pandocの公式サイトはこちらです。
- Pandoc - About pandoc

Pandocのマニュアルはまだ日本語化されていないようですが、ネット上には日本語で読める情報がかなりあり、使いはじめるのは容易です。公式マニュアルは英文ですが、内容はよく整理され、利用に必要な情報が網羅されています。

WindowsとMac OS Xにはインストーラーが用意されています。Linux/UNIX環境では前もってHaskellを入れておく必要があります。

Markdownについて

前項で見たReVIEWも簡単な記法で印付けを行なっていましたが、この種の記法のうちで最も広く使われているのがMarkdownです。ネット上に多くの情報があります。
- 文章作成やメモ書きにも便利、Markdown記法|Web Design KOJIKA17
- blog::2310 » Markdown文法の全訳

MarkdownからHTMLを生成するだけの単一の目的なら、Pandocのような強力なツールは必ずしも必要ありません。ほかにもたくさんのツールがあります。それらのツールは一般にはプログラミング言語のライブラリとして提供されているので、使い慣れた言語とMarkdownをキーワードに検索してみてください。また、それらライブラリの一部はスタンドアロンのプログラムとしての機能を備えたものもあり、その場合にはプログラミングの知識がなくても使えます(プログラムを実行できる環境は必要です)。

Markdown記法は多くのブログサービスでもサポートされています。また、Markdown記法で書かれたテキストをHTMLやEPUBに変換するオンラインサービスもあります。おぼえておくと便利な記法ですので、文法だけでもざっと見ておくと何かのおりに役立ちます。

[2013-12-04]

- HTML第2ステージ・目次