読者です 読者をやめる 読者になる 読者になる

Windows で Sphinx を使ってみるよ

Sphinx はドキュメントの作成ツール。reStructuredText を使って書くのです。
Python のドキュメントが Sphinx でかかれているらしい。

Overview — Sphinx v1.0 (hg) documentation

Python のインストール

Download Python | Python.org から。
パスを通すのを忘れずに。

easy install のインストール

Ruby で言う gem みたいなものだと思う。
http://peak.telecommunity.com/dist/ez_setup.py をファイルに保存して

> python ez_setup.py

でインストール開始。プロキシ使ってる人は環境変数 HTTP_PROXY 設定しておくこと。
Python インストールしたフォルダにある Scripts にパスを通しておくこと。

Sphinx のインストール

> easy_install sphinx

でOK。簡単。

プロジェクト作成

> sphinx-quickstart

あれこれ質問に答えておしまい。

rst2pdf のインストール

> easy_install ret2pdf

pdf 作成

> rest2pdf index.rst

index.pdf ができあがり。簡単。

日本語に対応させる

Linux だとフォントの埋め込みしたほうがいいらしいけど、Windows は大丈夫っぽい。
以下の内容の ja.json ってファイルを作る。

{
  "fontsAlias" : {
    "stdFont": "meiryo",
    "stdBold": "meiryob",
    "stdItalic": "meiryo",
    "stdBoldItalic": "meiryo",
    "stdMono": "meiryo"
  },
  "styles" : [
    ["base" , {
      "wordWrap": "CJK"
    }],
    ["literal" , {
      "wordWrap": "None"
    }]
  ]
}

もう一度 PDF 作成

> rst2pdf -s ja --font-path=C:\Windows\fonts index.rst

Sphinx から pdf ができるようにする

ここからが難所。というか遭難中。

Sphinx プロジェクトの設定ファイルに PDF のための設定を追加する

conf.py

extensions = ['rst2pdf.pdfbuilder']
pdf_documents = [ 
    ('index', u'redmine-hudson', u'redmine-hudson', u'Toshiyuki Ando'),
]

pdf_stylesheets = ['sphinx','kerning','a4','ja']

pdf_font_path = ['C:\windows\fonts']

pdf_language = "ja"

# How many levels deep should the table of contents be?
pdf_toc_depth = 3

# Add section number to section references
pdf_use_numbered_links = False

# Background images fitting mode
pdf_fit_background_mode = 'scale'
バッチをPDFに対応させる

make.bat

if "%1" == "pdf" (
    %SPHINXBUILD% -b pdf %ALLSPHINXOPTS% %BUILDDIR%/pdf
    echo.
    echo.Build finished. The PDF files are in %BUILDDIR%/pdf
    goto end
)

Sphinx ビルド!

make pdf

でも、以下のエラーを吐いて終了。何故なんだろう?
pdfbuilder.py をのぞくしかないのか??

processing redmine-hudson... index [ERROR] pdfbuilder.py:120 BuildEnvironment instance has no attribute 'modules'
Traceback (most recent call last):
  File "U:\Development\Python27\lib\site-packages\rst2pdf-0.15-py2.7.egg\rst2pdf\pdfbuilder.py", line 112, in write
    appendices=opts.get('pdf_appendices', self.config.pdf_appendices) or [])
  File "U:\Development\Python27\lib\site-packages\rst2pdf-0.15-py2.7.egg\rst2pdf\pdfbuilder.py", line 203, in assemble_
octree
    if self.config.pdf_use_modindex and self.env.modules:
AttributeError: BuildEnvironment instance has no attribute 'modules'
FAILED
build succeeded.