Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?

Docutilsについて

DocutilsでHTMLを生成してみよう

  • 2012.09.16
    • PyCon JP 2012
    • SphinxCon JP 2012

おまえ誰よ

name:Keita Uchiyama (内山 景太)
twitter:@hekyou
blog:http://d.hatena.ne.jp/hekyou/
join:#bookathon #expertpython
work:組込 -> Web/アプリ -> インフラ
  • Products
    • blockdiag pukiwiki plugin
    • Interactive shell live!! for blockdiag
    • docutils check tool

Docutilsって何?

  • Python製のテキスト処理ツール群

何ができるの?

  • reStructuredTextから他の形式に変換

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils01.png

今日扱う範囲

  • reStructuredText -> HTML

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils02.png

試してみる -インストール-

$ pip install docutils
$ pip install Pygments

or

$ pip install Sphinx
  • Sphinxインストール時にDocutilsもインストールされる

試してみる -reST作成-

$ vim foo.rst
Example
-------

* List1

  * SubList1
  * SubList2

* List2

試してみる -実行-

$ rst2html.py foo.rst > foo.html

試してみる -確認-

http://dl.dropbox.com/u/18441769/sphinxconjp/result01.png

ここまでのまとめ

DocutilsでreStructuredTextからHTMLを生成するには

rst2html.py

を使うことで簡単にできる

第二部

Docutilsの中を見てみよう

第一部のおさらい

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils03.png

Docutilsの構造

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils04.png

Input

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils05.png

  • 入力処理を請け負う
  • 標準ではFileInputが使用される

Reader

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils06.png

  • 読み込み処理を請け負う
  • 読み込みたいデータと不要なデータを区別するように作ることが可能

Parser

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils07.png

  • 指定フォーマットの解析処理を請け負う
  • docutils独自のXMLに変換している
  • 標準ではreSTの解析しか出来ないが他のフォーマットも追加することが可能

Transform

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils08.png

  • 変換処理を請け負う
  • 独自XMLに変換処理を加えたい場合に使用する

Writer

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils09.png

  • 指定フォーマットへの変換処理を請け負う
  • 標準で用意されていないフォーマットはWriterを追加することで可能になる

Output

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils10.png

  • 書き込み処理を請け負う

Publisher

http://dl.dropbox.com/u/18441769/sphinxconjp/docutils11.png

  • それぞれの処理を実行する
  • プログラム中からdocutilsを使うための関数がいくつか用意されている

publish関数

  • プログラム中からDocutilsの機能を使う場合
    • publish系の関数を使用する

publish type

  • publish_cmdline
  • publish_file
  • publish_string
  • publish_parts
  • publish_doctree
  • publish_from_doctree
  • ...

デモ

docutils check tool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment