Sphinx ハンズオン#3 に参加してきました

Sphinx ハンズオン#3 に参加してきました はてなブックマーク - Sphinx ハンズオン#3 に参加してきました


何かの社内用ドキュメントの作成や、マニュアル、翻訳、書籍作成などなど、ドキュメンテーション用のツールとして注目を浴びてきている Sphinx ( スフィンクス ) 。そんな Sphinx をインストールして、みんなで触ってみよう!という ハンズオン 第3回が2月22日(水)に開催されたので、行ってきました。場所はタイムインターメディアさんの会議室。会場は市ヶ谷の防衛省にとても近いんですね。

◆いざ、ハンズオンへ!

どうして、このハンズオンに参加しようかと思ったかと言いますと、

  • 社内用テキストエディタで書かれたドキュメント(という名のメモ書き)をキレイにしたい
  • 某ドキュメントの翻訳用途で、割と手軽にドキュメントを整形したい

という、割と身近な問題を解決したかったから。

べっ、別にテキストや Wiki でも良いのですが、あとから見返す時にフォルダにテキストが散乱し、”文章が散らばり過ぎだろ、常識的に考えて(´・ω・`)”というシーンや、とにかく整理されていない”美しくないな”という状況と決別すべく、Sphinx に挑みました。

実は、前々からスフィンクスに興味は有りました。けれど、言語がPython だし大丈夫なのかな、という不安が少々ありました。環境構築が大変じゃないかな、あと、設定が面倒そう。というか、どこからどう始めていいのか分からない(´・ω・`) …という状況。

そんな時、ハンズオンの情報を IT 勉強会カレンダーで発見し、早速登録→参加に至ったわけです。でも、ごめんなさい、どちらかというと、正直「きっかけ」がなくて「面倒そう」だったからです(;´Д`)。食わず嫌いでした。こんな、不甲斐ない自分が許せません(!)。

Sphinx は Python 言語でかかれたドキュメンテーション(文章作成支援)ツールで、Phtyon 界隈を中心とし、最近は色々なプロジェクトでも採用が進んでいるようです。また、ユニークなのは HTML 形式のページだけでなく、man 形式のファイルや、PDF 作成、果ては EPUB 形式など、多彩なアウトプットが可能な点があげられます。

◆インストール

さて、ハンズオンに先駈けて、当日午後になり慌てて Sphinx をインストールしていた愚か者はワタクシになります。まさに、ハンズオンに参加するからこそ、ようやくインストールに至りました。いや、だって、こうやって自分を追い込まないと、動機付けに至りません(苦しい言い訳)。

インストール方法は、ユーザ会のページに掲載されています。Windows , MacOS, Linux と、それぞれインストール可能です(お隣さんは、果敢にも OpenIndiana 環境上で Sphinx のインストールに挑まれていました)。

ちなみに、僕の Red Hat Enterprise 5 (i386) の環境でも、ちゃんと Sphinx を入れることが出来ました。Red Hat 社から Sphinx パッケージは提供されていませんが、Fedora Project 有志による EPEL (Extra Packages for Enterprise Linux) リポジトリでは、バッチリ配付されてました。お陰で比較的に入れることが出来ています。

僕の環境では、標準の python 環境で足りないものを、いくつか yum で入れました。

# yum -y install python-setuptools python-imaging

次に、EPEL から RPM ファイルの取得、インストールです。

# wget http://dl.fedoraproject.org/pub/epel/5/i386/python-sphinx10-1.0.4-3.el5.noarch.rpm
# wget http://dl.fedoraproject.org/pub/epel/5/i386/python-sphinx10-doc-1.0.4-3.el5.noarch.rpm
# wget http://dl.fedoraproject.org/pub/epel/5/i386/python-jinja2-2.2.1-1.el5.i386.rpm
# wget http://dl.fedoraproject.org/pub/epel/5/i386/python-docutils-0.5-3.el5.noarch.rpm
# wget http://dl.fedoraproject.org/pub/epel/5/i386/python-pygments-1.4-3.el5.noarch.rpm
# wget http://dl.fedoraproject.org/pub/epel/5/i386/python-babel-0.9.5-2.el5.noarch.rpm
# rpm -ivh *
警告: python-babel-0.9.5-2.el5.noarch.rpm: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6
準備中...                ########################################### [100%]
   1:python-pygments        ########################################### [ 17%]
   2:python-docutils        ########################################### [ 33%]
   3:python-babel           ########################################### [ 50%]
   4:python-jinja2          ########################################### [ 67%]
   5:python-sphinx10        ########################################### [ 83%]
   6:python-sphinx10-doc    ########################################### [100%]

そして、最後にシンボリック・リンクを作成します(これをしないと、make html できないです)。

# ln -s /usr/bin/sphinx-1.0-build /usr/bin/sphinx-build
# ln -s /usr/bin/sphinx-1.0-autogen /usr/bin/sphinx-autogen

あとは、もう1つリンクを作成しておきます。

# ln -s /usr/bin/sphinx-1.0-quickstart /usr/bin/sphinx-quickstart

これで準備 OK です。

◆ハンズオンに参加!

ハンズオンに最終的に参加されたのは13名ぐらいだったのかな。スタート後は、ざっくりと概要説明の後、quickstart のデモ。「まずは sphinx-quickstart で、新規プロジェクトを作成する」事が全てのキモでした。あとは index.このあたりの手順は、ユーザ会のページに詳しく掲載されています。

プロジェクトを作る :: ドキュメンテーションツール スフィンクス Sphinx-users.jp
http://sphinx-users.jp/gettingstarted/make_project.html

ちなみに、会場では参加した方の全員が、予め Sphinx インストール済みという、気合いの入った状態!! デモのあとは、2チームに別れて、課題に取り組みました。課題は、第1回のレジュメ(印刷済み)を元に、自分で色々試してみる、というもの。分からない所は講師の方に教えていただいたり、まわりでお互いに教えあったりしていました(僕は尤も教わるほう中心でしたががが)。

で、僕も見よう見まねでドキュメントを検索しながら、なんとかページを作成できました。初めてのページが、こんなの。最終的にはレジュメっぽいものも、一応作成できました。おおよそ、正味1時間半で、なんとか作れるかなぁという所まで到達。今後は、まだまだディレクティブを覚えたり、何度も書いて慣れることが必要かな、と考えています。

ハンズオンに参加した印象としては、Sphinx は簡単! というのが、僕の感想。TeX ほど敷居も高くなく、普段から Wiki を使い慣れている方であれば、比較的簡単に導入できるんじゃないかな、と思います。皆さんも機会があれば、是非チャレンジしてみると、いろいろ憚ると思います( ^ω^)

最後になりますが、このような素敵な機会を設けられた、Sphinx-Users.jp および講師のみなさん、ありがとうございました!! 独学では、おそらくもっと多くの時間&遠回りが必要だったに違いありません。そして、参加された皆さんも、お疲れ様でした!!

◆Reference

Sphinx ハンズオン #3 : ATND
http://atnd.org/events/25060

Sphinx-Users.jp :: ドキュメンテーションツール スフィンクス Sphinx-users.jp
http://sphinx-users.jp/index.html

reStructuredText入門 — Sphinx v1.0.6 documentation
http://sphinx-users.jp/doc10/rest.html

twitterのハッシュタグ #sphinxjp

メーリングリスト