---
title: Pandoc入門:MarkdownからHTML・PDF・Writer/Word文書・スライドを生成する
subtitle: OSC京都2017 1日目 セミナー
author: 藤原 由来(日本Pandocユーザ会)
date: 2017年8月4日
revealjs-url: reveal.js-3.4.0
theme: sky-sky-y
transition: fade
transitionSpeed: fast
slideNumber: true
history: false
margin: 0
width: 1280
height: 720
...
----
# この発表について
- 文書変換ツール「Pandoc」の入門セミナーです
- 対象者
- ドキュメンテーション(文書の作成・処理)に興味のある方
- 文書の作成・処理を効率化したい方
- Markdownなどの軽量マークアップ言語をうまく活用したい方
- 前提とする知識:基本的なコマンドラインの使い方
- ターミナル (Linux/Mac)
- コマンドプロンプト (Windows)
----
# 自己紹介
- 名前
- 藤原 由来 (本名)
- [GitHub](https://github.com/sky-y)
- [Facebook](https://fb.me/sky.yuki.f)
- すかいゆき・藤原 惟
- [Twitter](https://twitter.com/sky_y)
- 職業
- フリープログラマ・技術ライター
- 専門学校 非常勤講師
----
# Pandocに関する活動
- Pandocユーザーズガイドを和訳
- [Pandoc ユーザーズガイド 日本語版](http://sky-y.github.io/site-pandoc-jp/users-guide/)
- バージョンが古くなったので、改訂を予定
- Qiita等に記事執筆
- [多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう - Qiita](http://qiita.com/sky_y/items/80bcd0f353ef5b8980ee)
- 日本Pandocユーザ会
- 最近Slack作りました: [Slack登録フォーム](https://docs.google.com/forms/d/e/1FAIpQLScdXINuMSFlKFk9YClkDUtvZNaYFWVSiJyleYjtMVbIHqwJhA/viewform)
----
# Pandoc公式サイト
- [Pandoc - About pandoc](http://pandoc.org/index.html)
- ユーザーズガイド
- [Pandoc - Pandoc User’s Guide](http://pandoc.org/MANUAL.html)
- [Pandoc ユーザーズガイド 日本語版](http://sky-y.github.io/site-pandoc-jp/users-guide/)
----
# いきなりですが質問です
----
# Q1: 普段はどんなファイルやドキュメントを扱っていますか?
- HTML
- LaTeX (数式の入ったドキュメント)
- XML系のドキュメント
- プログラミング言語のドキュメント機能
- Javadoc, Python docstringなど
- Microsoft Office
- Word, Excel, PowerPoint
- LibreOffice (Apache OpenOffice)
----
# Q1: 普段はどんなファイルやドキュメントを扱っていますか?
- 軽量マークアップ言語
- Markdown
- reStructuredText (Sphinx)
- Emacs org-mode
- Wiki記法
- MediaWiki (Wikipedia)
- その他
----
# Q2: どのような目的でドキュメントを扱っていますか?
- Webへの公開(CMS・ブログ・Wiki含む)
- 組織内の情報共有
- 社内Wiki
- プロジェクト管理(ガントチャート・UMLも含む)
- 組織外との情報共有・コミュニケーション
- 自分で読み返すためのメモ
- その他
----
# この発表でやること
- Pandocの概要
- Pandocをインストールする
- Pandocの基本的な使い方
- Markdown ↔ LibreOffice Writer を例に
- Pandocの応用
- まとめ・お知らせ
----
# この発表で**やらないこと**
- プログラミング言語のドキュメント機能
- Pandoc自体はHaskell用ドキュメンテーションに対応
- [Haddock](https://www.haskell.org/haddock/), [Literate Haskell](https://wiki.haskell.org/Literate_programming)
- Pandocとの組み合わせができる場合もある
- 表形式のドキュメント(Excel, CSVなど)
- 現状のPandocが扱える文書モデルから離れるので
- 「文書の一部」として扱うことはPandocで可能です
----
# Pandocの概要
----
# こんなことに困っていませんか?
- MS Word/LibreOffice Writer
- 重いのでテキストファイルで下書きしたい
- バージョン管理をしたいけど、Word文書はGit管理が面倒
- オフィスにある大量の文書を別の書式に変換したい
- MediaWiki記法で書いた原稿をSphinx(reST)で使いたい
- Markdownでスライドショーを作りたい
----
# Pandocとは
- 文書変換ツール
- あるフォーマットで書かれた文書を、別のフォーマットに変換するツール
- Pandocの特徴は、対応フォーマットが非常に多いこと
- [Pandoc公式サイト](http://pandoc.org/)
- 「a universal document converter」
- 汎用ドキュメントコンバータ
- オープンソースソフトウェアの1つ
- ソースコード: [jgm/pandoc](https://github.com/jgm/pandoc)
- ライセンス: GPL2
----
![Pandocの処理フロー](figure/pandoc_block.jpg){ width=60% }
----
# 対応フォーマット(一部省略)
- 入力
- **Markdown** (Pandoc, CommonMark, PHP Markdown Extra, GitHub-Flavored Markdown, MultiMarkdown)
- (subsets of) Textile, **reStructuredText, HTML, LaTeX, MediaWiki markup**, Emacs Org mode
- OPML, DocBook, EPUB, **ODT** and Word docx
- 出力
- 入力フォーマットのほとんど(ODT含む)
- **Markdown**
- manページ, AsciiDoc, InDesign ICML
- **プレゼンテーション**: LaTeX Beamer, HTML5(reveal.jsなど)
- PDF (wkhtmltopdfまたはLaTeXエンジンが必要)
----
[![](figure/pandoc-diagram_h800.jpg){ height=500px }](http://pandoc.org/diagram.jpg)
----
# Markdown?
----
# そもそもMarkdownって何?
- このスライド自体が、実はMarkdownで書かれています
- 元々は[John Gruberが作ったオリジナルの処理系](http://daringfireball.net/) でHTMLに変換するための記法だった
- そのうちGitHubやPHPなどで記法が拡張された
- MultiMarkdownやPandocの登場をきっかけに、目的も「論文」「プレゼンテーション」「電子書籍」など用途が広がった
- 数々の「方言」がある状態
- 基本のMarkdownだけを覚えれば、大抵は方言が違っても「大まかには」書ける
- おすすめ早見表: [Markdown Reference (CommonMark)](http://commonmark.org/help/)
- 足りない部分は、各ツール・サービスのドキュメントを参照
- プレビューを行うのが鉄則
----
# 裏方としてのPandoc
- 実は裏でPandocが動いているケースもいくつかあります
- R: [R Markdown](http://rmarkdown.rstudio.com/)
- [RStudio](https://www.rstudio.com/)という統合環境の中で使える
- 厳密には[knitr](https://yihui.name/knitr/)の機能
- Python: [Jupyter](http://jupyter.org/) Notebook
- [nbconvert](https://github.com/jupyter/nbconvert)
- テキストエディタ: [Typora](https://typora.io/)
- Markdownエディタの一つ (Win/Mac/Linux)
- コマンド苦手な人でも、Pandocの変換機能を使えます
----
# Pandocでできないこと
- 表主体の文書を扱うこと
- Excel, LibreOffice Calc
- 一部に簡単な表を埋め込むことはできる(HTMLの`
`相当)
- PowerPoint/LibreOffice Impressに変換すること
- LaTeX Beamer/HTMLプレゼンには変換可能
----
# Pandocを使う心得
- 過剰な期待をし過ぎないこと
- Pandocは万能でないし、文書仕様の全てを満たしているわけではない
- 補助的に使うのがベスト
- Pandocで、テキストと大まかな構造を抽出
- 変換し切れなかった部分を、手作業や自作スクリプトで編集
----
# Pandocの実装
- 言語: Haskell
- Pandoc的には、「厳密に型が定義されている」ことがありがたい
- Haskellは構文解析器(パーサ)を作るのにすごく適している (Parsecなど)
- モジュール構成
- Reader: 入力文書を解析し、Haskell上の中間文書に変換する
- Writer: 中間文書を受け取り、出力フォーマットに変換する
----
![Pandocの処理フロー(詳細)](figure/pandoc_block2.jpg){ width=80% }
----
# PandocにおけるMarkdown
----
# Pandocが扱えるMarkdown方言
- [Pandoc's Markdown](http://pandoc.org/MANUAL.html#pandocs-markdown): `-f markdown`
- Pandocにおける標準のMarkdown方言
- 技術文書から論文・電子書籍まで幅広く対応
- GitHub Flavored Markdown (gfm): `-f markdown_github`
- GitHubの標準、プログラマ・フレンドリーな方言
- PHP Markdown Extra: `-f markdown_phpextra`
- 最近はMarkdown Extraとも呼ばれる
- MultiMarkdown: `-f markdown_mmd`
- HTMLだけでなくLaTeXなどの論文も意図した処理系
- CommonMark: `-f commonmark`
- 仕様の曖昧さをなくすことを目的とした仕様/処理系
- 事実上の標準?(RFCなどによる正式な標準ではない)
----
# Pandoc's Markdownの特徴
- 詳しくは [Pandoc's Markdown](http://pandoc.org/MANUAL.html#pandocs-markdown) を参照
- または [Pandoc ユーザーズガイド 日本語版](http://sky-y.github.io/site-pandoc-jp/users-guide/#pandocs-markdown) を参照
- HTMLの定義リスト(``, `- `, `
- `)がある
- 表(`
`)は4種類ある
- 日本語には「Grid Table」か「Pipe Table」がおすすめ
- **ヘッダ部分にメタデータを記述できる(重要)**
- タイトルブロック(行を`%`で始める)
- タイトル(1行目)、著者(2行目)、日付(3行目)のみ簡潔に書ける
- YAMLメタデータブロック(次のスライド)
----
# YAMLメタデータブロック
- ブロックを`---`で始めて`...`で閉じる
- 改行などの書き方は、YAMLの文法に従う
- 参考: [Rubyist Magazine - プログラマーのための YAML 入門 (初級編)](http://magazine.rubyist.net/?0009-YAML)
- このブロックで定義されたデータは、メタデータという種類の変数となる
- メタデータは文書変換する際のオプションや制御に使うことができる
- `pandoc -D (出力書式の名前)`で、実際の使われ方がわかる
- このブロックを使えば、文書自体に文書変換のオプションを埋めこめる(便利)
----
# YAMLメタデータブロックの例
```
---
title: Pandoc入門:MarkdownからHTML・PDF・Writer/Word文書・スライドを生成する
author: 藤原 由来
date: 2017年8月4日
revealjs-url: reveal.js-3.4.0
theme: sky-sky-y
transition: fade
transitionSpeed: fast
slideNumber: true
...
```
----
# Pandocをインストールする
----
# ターミナルを開く
- Linux/Mac: ターミナル
- Windows: コマンドプロンプト
- 分かっている方は、お好きなターミナル・シェルでもOK
- 基本的なコマンド操作については、今回は説明しません
- コマンドが苦手な方は「何ができるか」を覚えてもらえれば幸いです
----
# Pandocのインストール: インストーラ編
- Windows/Macの場合
- パッケージを直接落としてインストール
1. [ここからパッケージをダウンロード](https://github.com/jgm/pandoc/releases/latest)
- Windows: `.msi`, Mac: `.pkg`
2. インストール
----
# Pandocのインストール: パッケージマネージャ編
- Mac([Homebrew](http://brew.sh/index_ja.html))
- `$ brew install pandoc`
- Windows([Chocolatey](https://chocolatey.org/))
- `> cinst -y pandoc`
----
# Pandocのインストール: Linux編
- Linux
- [pandoc/INSTALL.md](https://github.com/jgm/pandoc/blob/master/INSTALL.md#linux) を参照
- 各種パッケージマネージャでインストールできます
- Debian, Ubuntu, Slackware, Arch, Fedora, NiXOS, openSUSE, and gentoo
- 各々のパッケージマネージャで「pandoc」をsearch/installしてください
- バージョンが古いことがあるので注意
- ソースコードからビルド
- Haskellのソースコードをビルドする必要があります
- [Stack](https://docs.haskellstack.org/en/stable/README/)(Haskellビルドツール)を
- ソースコード: [GitHub - jgm/pandoc](https://github.com/jgm/pandoc)
----
# wkhtmltopdfのインストール
- PDF出力のために必要
- TeXLiveを入れていれば、LaTeX処理系も利用可能(説明略)
- ただし、pLaTeXはNGなので、LuaLaTeX/XeLaTeXが必要です
- インストーラを直接落としてインストール
1. [wkhtmltopdf - Downloads](http://wkhtmltopdf.org/downloads.html)からダウンロード
2. インストール
- パッケージマネージャでインストール
- Mac(Homebrew): `$ brew cask install wkhtmltopdf`
- Caskの方なので注意
- Windows(Chocolatey): `> cinst -y wkhtmltopdf`
- Linux: 略(各々のパッケージマネージャで「wkhtmltopdf」をsearch/installしてください)
----
# 動作確認1: Pandoc単体
※ 藤原の環境:Windows (Chocolatey) + MSYS2
```
$ pandoc --version
$ pandoc --list-input-formats
$ pandoc --list-output-formats
$ echo "**Hello**" | pandoc -f markdown -t html
Hello
```
----
# 動作確認1: Pandoc単体
```
$ echo "**Hello**" | pandoc -f markdown -t html
```
- シェルの**パイプ**機能を使っています
- `echo`が出す標準出力をパイプ (`|`)で`pandoc`の標準入力に渡す
- `pandoc`は入力・出力ファイル名が与えられてない場合、標準入力・標準出力を使う
- `-f`: 入力フォーマット名 (from)
- 使えるフォーマット名は `pandoc --list-input-formats` で確認できる
- `-t`: 出力フォーマット名 (to)
- 使えるフォーマット名は `pandoc --list-output-formats` で確認できる
----
# 動作確認2: ファイルを入力
- 次の内容をテキストファイルで保存し、「hello.md」と保存する
```
# Hello
こんにちは
```
----
# 動作確認2: ファイルを入力
- コマンドを実行:
```
$ pandoc hello.md -o hello.html
```
- オプションのない引数(hello.md): 入力ファイル名
- `-o`: 出力ファイル名 (output)
- `-t`(次スライド)を指定しない場合、拡張子から出力フォーマットを推測してくれる
- **注意: Pandocが対応している文字コードはUTF-8のみです**
- UTF-8以外を扱う場合は、nkf/iconv/uconvなどの文字コード変換ツールをパイプ(`|`)に繋げます
----
# 動作確認3: Pandoc + wkhtmltopdf (PDF)
```
$ echo "**Hello**" | pandoc -f markdown -t html5 -o hello.pdf
```
- `-f`: 入力フォーマット名 (from)
- `-t`: 出力フォーマット名 (to)
- 注意: wkhtmltopdfでPDFを出すときは `-t html5`を指定
- 内部で文字通り、HTML5に変換してからPDFに出すので
- `-o`: 出力ファイル名 (output)
- 注意: wkhtmltopdfでPDFを出すときは、`-o`の拡張子は`.pdf`を指定
----
# Pandocの基本的な使い方
----
# これからやること
- Markdown ↔ LibreOffice Writer の相互変換を例にします
- 他の書式に変換するときの基礎になります
- MS Wordを扱うときは、ほぼ同じです
----
# これからやること
- Markdown文書からWriter文書に変換する
- とりあえず変換してみる
- 綺麗なWriter文書を生成する: reference機能
- Writer文書をMarkdownなどに変換する
- 以下の作業では、[GitHubリポジトリ](https://github.com/sky-y/osc-kyoto2017-pandoc)のsampleディレクトリにあるファイルを使います
- atarashii_kenpo.md: [あたらしい憲法のはなし(Markdown版)](https://github.com/nogajun/story_of_the_new_constitution)より
- nogajunさん編、Public Domain
----
# とりあえず変換してみる: pandocコマンド
```
$ git clone https://github.com/sky-y/osc-kyoto2017-pandoc.git
$ cd sample
$ pandoc atarashii_kempo.md -o atarashii_kempo.odt
```
- `-o`: 出力ファイル名
- 多くの場合拡張子で判断できる
----
# ファイルを開く
```
$ open atarashii_kempo.odt # Mac
$ xdg-open atarashii_kempo.odt # Linux (GNOME, KDE, Xfce)
> start atarashii_kempo.odt # Windows
```
----
# 綺麗なWriter文書を生成する
- Pandocのreference機能を使う
- (1) Pandocコマンドからreferenceファイルを生成
- (2) reference.odtをWriterで編集する
- (3) Pandocの変換時にreference.odtをオプションで指定する
- もしくはユーザデータディレクトリに入れる
- Wordの場合は、「odt」を「docx」に読み替えると同様にできます
----
# (1) Pandocコマンドからreferenceファイルを生成
```
$ pandoc --print-default-data-file reference.odt > reference.odt
```
- コマンドオプションで指定する場合は「reference.odt」という名前でなくてよい
- ユーザデータディレクトリ(後述)に入れる場合は必ず「reference.odt」という名前にする
----
# (2) reference.odtをWriterで編集する
- reference.odtをLibreOfficeで開く
- reference.odtの内容はPandocから参照されない
- デフォルトで「Hello World!」と表示されている部分のこと
- 例えば表示用サンプルを置いてもいい
- 「スタイルと書式設定」から書式を変更
![](figure/style-and-format.png){ width=50% }
----
# (3) Pandocの変換時にテンプレートをオプションで指定する
注意: バージョンによって使用するオプションが違います
- `--reference-odt`: Pandoc 1.xの指定
- `--reference-doc`: Pandoc 2.xの指定
- バージョンは `pandoc -v` で分かります
- 実際に使えるコマンドは `pandoc -h`で分かります
- UNIX系なら `pandoc -h | grep 'reference'` で絞れるはず
```
$ pandoc atarashii_kenpo.md --reference-odt=reference.odt -o atarashii_kenpo.odt
$ pandoc atarashii_kenpo.md --reference-doc=reference.odt -o atarashii_kenpo.odt
```
----
# 補足: reference.odtをユーザデータディレクトリに入れる
- ユーザデータディレクトリの場所: `pandoc -v` で出る
- Windows: `C:\Users\ユーザ名\AppData\Roaming\pandoc`
- Mac: `$HOME/.pandoc`
- このディレクトリに「reference.odt」という名前でテンプレートを入れると、次回からデフォルトで使ってくれる
----
# 具体的なノウハウ
- nogajunさん: [PandocとLibreOffice WriterでiDエディタのマニュアルを製本する, どうしてこうなった - Days of Speed(2014-12-06)](http://www.nofuture.tv/diary/20141206.html)
- [nogajun/pandoc-writer](https://github.com/nogajun/pandoc-writer)の`pandoc-writer.odt`がテンプレートとして使える
- いくやさん: [PandocでMarkdownをODTに変換する - いくやの斬鉄日記](http://blog.goo.ne.jp/ikunya/e/826e6916307159c87afde0fe23c5e1e4)
- 画像のサイズを整える (ImageMagickの`mogrify`コマンド)
- 画像のDPIを変更する (同上)
----
# Writer文書からMarkdown/reST文書に変換してみる
- nogajunさんの`pandoc-writer.odt`を変換してみる
- [nogajun/pandoc-writer](https://github.com/nogajun/pandoc-writer) (CC BY-SA 4.0)
- Markdown (Pandoc's)
- `$ pandoc pandoc-writer.odt -o pandoc-writer.md`
- reStructuredText (Sphinxなどで使用)
- `$ pandoc pandoc-writer.odt -o pandoc-writer.rst`
----
# Writer文書からLaTeX文書に変換してみる
- LaTeX (ヘッダ・フッタ抜き)
- `$ pandoc pandoc-writer.odt -o pandoc-writer.tex`
- あとで別のLaTeXソースファイルに貼り付けたり、スクリプトで組み入れたりするのに便利
- PandocはpLaTeXに対応しないので、pLaTeX前提ならこちらがおすすめ
- LaTeX (ヘッダ・フッタ入り)
- `$ pandoc -s pandoc-writer.odt -o pandoc-writer.tex`
- `-s`: 文書として完全になるようにヘッダ・フッタを付ける (standaloneモード)
- 注意:LuaLaTeX/XeLaTeXのみ対応
- `$ pandoc -s pandoc-writer.odt --latex-engine=lualatex -o pandoc-writer.tex`
- `--latex-engine=`オプションで`lualatex` or `xelatex`を指定
- 日本語設定
- [LuaLaTeX: LuaTeX-jaの使い方](https://ja.osdn.net/projects/luatex-ja/wiki/LuaTeX-ja%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9)
- XeLaTeXを使う場合: [BXjscls がまた新しくなった(v1.1a) - マクロツイーター](http://d.hatena.ne.jp/zrbabbler/20160228/1456622107)
----
# Q&A
----
# Pandocの応用
----
# Pandocの応用
- オフィスにある大量の文書を別の書式に変換したい
- Markdownでスライドショーを作りたい
- フィルタ機能
- おまけ:電子書籍について
----
# オフィスにある大量の文書を別の書式に変換したい
処理したいファイルが大量にある場合は、スクリプトにPandocを組み込みます。
1. 下準備: 他のツールなどで、なんとかしてPandocが処理できる書式に変換する
- おすすめ: HTML(多くのツールでエクスポートできるので)
2. Pandocをスクリプトの中で使う
- シェルスクリプトで直接使う
- スクリプト言語の外部コマンド機能で呼ぶ
- スクリプト言語のライブラリから呼ぶ(古い場合があるので注意)
----
# Pandocをスクリプトとして呼ぶ例(その他)
- 各種エディタのプラグイン・拡張で対応
- Atom, VS Code, ...
- 特にVimの場合
- LaTeX文書を書くときの補助として「Markdownを書いてその場でLaTeXに変換する」拡張がある
- [TeXで書くのめんどくさい部分はmarkdownで書いちゃえば最強じゃないかな?【Vim + pandoc】 - Qiita](http://qiita.com/ssh0/items/679ac9dd3c33b0e5cd90)
----
# Markdownでスライドショーを作りたい
このスライド自体をPandocで生成しました
- [Pandoc's Markdown](http://pandoc.org/MANUAL.html#pandocs-markdown)の書式に従って原稿を書く
- もちろんこれ以外の書式でも、Pandocが対応していれば書けます
- Pandocで変換する
- 今回は「reveal.js」形式(HTML+JavaScriptによるプレゼン)に変換
- `$ pandoc input.p.md -s -f markdown -t revealjs -o index.html`
- 実際のファイルは次スライドで
- `-s`: standalone (ヘッダ・フッタの付いた完全な文書を出力)
- アップロードする
- [GitHub Pages](https://pages.github.com/)を使うと、直接GitHubにpushすればアップロードできます
- この場合は、`.nojekyll`という空ファイルを置かないと、404エラーになるので注意
- その他 LaTeX Beamer にも変換できます
----
# 実際のソースコード
- このスライド自体がGitHub Pagesにアップロードされています
- [GitHubリポジトリ](https://github.com/sky-y/osc-kyoto2017-pandoc)
- [発表用スライド (HTML/reveal.js)](https://sky-y.github.io/osc-kyoto2017-pandoc/)
- [スライドのMarkdownソース (Pandoc's Markdown)](https://raw.githubusercontent.com/sky-y/osc-kyoto2017-pandoc/master/index.p.md)
- [復習用資料 (GitHub Flavored Markdown)](https://github.com/sky-y/osc-kyoto2017-pandoc/blob/master/index_github.md)
- 変換の補助にGulpを使っています(`make`のようなもの)
----
# フィルタ機能
- 中間文書をJSON形式に出す
- それを外部スクリプトが標準入力で受け取り処理する
- それを標準出力に出して、Pandocに戻す
![Pandocの処理フロー(フィルタ付き)](figure/pandoc_block3.jpg){ width=80% }
----
# フィルタ機能ができること
- 詳しくは[Pandoc Filters (GitHub Wiki)](https://github.com/jgm/pandoc/wiki/Pandoc-Filters)を参照
- 引用を入れる (pandoc-citeproc, pandoc-crossref)
- [MarkdownとPandocを使って論文っぽい文章を書く | inoblog](https://inody1991.tumblr.com/post/134742076815/markdown%E3%81%A8pandoc%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E8%AB%96%E6%96%87%E3%81%A3%E3%81%BD%E3%81%84%E6%96%87%E7%AB%A0%E3%82%92%E6%9B%B8%E3%81%8F)
- 図表を入れる
- ([mermaid-filter](https://github.com/raghur/mermaid-filter)): [mermaid](https://knsv.github.io/mermaid/#mermaid)で使えるフローチャート、ガントチャート、シーケンス図
- [pantable](https://github.com/ickc/pantable): CSVファイルを表として読み込む
- 外部ファイルの読み込み
- Node.jsで書くチュートリアル: [pandocでMarkdownを拡張しコードをインポート出来るfilterを書く | Web Scratch](http://efcl.info/2014/0301/res3692/)
- 過去のチュートリアル「HaskellでPandocフィルタを実装する」
- [Haskell with Skype Pandocチュートリアル 第2回](https://github.com/sky-y/haskell-skype-pandoc-2)
----
# おまけ:電子書籍について
- PandocもEPUB出力できる
- 素朴なEPUBなら日本語でも`-t epub3`で出力できる
- Markdown→EPUB変換には「[でんでんコンバーター](https://conv.denshochan.com/)」をおすすめします
- ルビや縦中横が使えて、細かい設定や組版がしやすい
- 記法: [でんでんマークダウン](https://conv.denshochan.com/markdown)
- PHP Markdown Extraベース
- 提案
- Pandocに対応する好きな記法で原稿を書く
- `pandoc -t markdown_phpextra`で、でんでんマークダウン向けに変換
- [でんでんエディター](https://edit.denshochan.com/)にペーストして仕上げる
----
# まとめ・お知らせ
----
# 今日やったこと
- Pandocの概要
- Pandocをインストールする
- Pandocの基本的な使い方
- Markdown ↔ LibreOffice Writer を例に
- Pandocの応用
----
# Pandocの今後の課題
- 日本語に特化した文書フォーマットにほとんど対応していない
- 書籍におけるルビや圏点など
- 日本語コミュニティの必要性
- 表形式の文書は対応していない
- Excel文書など→Excel方眼紙への対策には致命的
- サードパーティのプリプロセッサにより部分的に変換する手段はある
- 一部の図表(Graphvizなど)はこの方法で取り込むことができる
- 参考: [Excel方眼紙公開討論会 (9/30@東京)](https://www.forguncy.com/information/events/excelforguncy)
----
# 日本Pandocユーザ会
- Webサイト (リニューアル予定)
-
- Slackを始めました(**どなたでも歓迎します!**)
- [Slack登録フォーム](https://docs.google.com/forms/d/e/1FAIpQLScdXINuMSFlKFk9YClkDUtvZNaYFWVSiJyleYjtMVbIHqwJhA/viewform)
----
# ドキュメンテーションWiki
- [ドキュメンテーションWiki (GitHub)](https://github.com/doc-wiki-jp/wiki/wiki)
- 誰でも編集歓迎します(要GitHubアカウント)
----
# Q&A
- 連絡先
- メールフォーム:
- Twitter: [すかいゆき・藤原 惟 \@sky_y](https://twitter.com/sky_y)
- Facebook: