2013年1月30日水曜日

Sphinxの新しい?テーマを勝手に使ってみた

たまに見に行くSphinxの公式サイト。最近見てみたらテーマが変わってた。なかなかいい感じの見た目なので、早速適用してみたいと思ったのが今回の発端。

HTMLを見てみると、どうやら「sphinx13」というテーマらしいことが分かる。が、どこかで配布されてるようなものではない模様。

で、色々探したあげく、BitbucketのMercurialリポジトリに入っていることを発見。

そこで、Mercurialリポジトリを丸ごとcloneしてきて、テーマだけ抜いて適用してみたのがこちら。

MacのChromeだとこんな感じ。

WindowsのFirefoxだとこんな感じ。

適用するためには、source/_themeにsphinx13をディレクトリごと入れて、conf.pyに以下の設定を追加する。

html_theme = 'sphinx13'html_theme_path = ['_theme']

ただし、今回2点カスタマイズした所がある。

  • ヘッダー画像を入れ替える
  • 日本語フォントをCSSに追加する
  • リレーションバーを書き換える

ヘッダー画像は、SphinxのWebサイト用のが使われてたので、layout.htmlを変更した。

日本語フォントを追加したのは、元々が英語サイトで、細めのOpen Sans?を使ってるんだけど、日本語フォントをセットしないとMS Pゴシックになっちゃって残念な感じになるから。何が合うかと思ったけど、どこにでも入っていそうなメイリオを指定することにした。

なので、sphinx13.cssのbodyを以下のようにした。

body {  font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana',               'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro W3', メイリオ, Meiryo, sans-serif;    (以下省略)}

リレーションバーは、元々のテーマだとうまくパンくずリスト的にならなかったので、以下のURLを参考に書き換えた。

テーマに少し手を入れてちょっとだけ使いやすくる — togakushi.bitbucket.org 0.1 documentation
{% block rootrellink %}  
  • home{{ reldelim2 }}
  • {{ super() }}
  • {% endblock %}

    これで、Sphinxドキュメントをmake htmlすればできあがり。良い感じになったので、しばらくこれを使おうかな。

    2013年1月27日日曜日

    Windowsでインストーラーを作るのは意外と簡単だった【NSISとWiX】

    仕事でWindows用のインストーラーを作ることになって、ちょっと面倒だなと思ってたけど意外と簡単だったというお話。

    今回は、以下のようなことを実現したいと思ってツールを選定、試行した。

    • 64bit版Windows対応できることが最優先
    • できれば64bitと32bitのインストーラーを1つにまとめたい
    • できれば日本語と英語のインストーラーを1つにまとめたい
    • インストーラー作成はCygwinからコマンドラインでやりたい
    • 使用許諾をインストールの過程で出したい

    で、今回の成果は、GitHubに公開しておいた。汎用的に書いておいたから、他でも流用できるはず。

    NSIS-WiX_Example - https://github.com/mas0061/NSIS-WiX_Example

    色々試行する中でのTips等々を書いておく。なお、今回試した環境はいずれもWindows 7 64bit。

    まずはNSISから。

    NSIS

    NSISは、専用のスクリプト言語みたいので書いてツールにかけることでインストーラーができるツール。スクリプトはちょっとクセがあるので書きやすいとは言えないけど、記述量は多くないのでなんとかなる感じ。

    NSISのメリットは、64bitと32bitを1つのインストーラーにまとめられること。あとはスクリプトベースなので、後述するWiXのXMLベースよりは書きやすいとこかな。

    ツールダウンロード

    • NSIS:2.46(この時の最新)
    • HM NIS EDIT/ :2.0.3(この時の最新)

    ツールインストール

    どちらもインストーラーを実行して素直に従えばOK。HM NIS EDITはオプションで、今回は結局インストールすらしなかった。直接スクリプトを書いていっても問題ない感じ。

    Cygwinで使えるようにする

    % vi .zshrc # bash使いなら vi .bashrc

    ↓以下を追加

    export PATH="/cygdrive/c/Program Files (x86)/NSIS":$PATH

    Cygwinで

    % makensisMakeNSIS v2.46 - Copyright 1995-2009 ContributorsSee the file COPYING for license details.Credits can be found in the Users Manual....

    となればOK

    メモとTips

    • Cygwin + Poderosaの組み合わせはダメ、Cygwin + minttyやCygwinのターミナルならOK
    • Fileコマンドの/rと/oname=Xは両立できない

    ディレクトリを違う名前でインストールしたければ、以下のようにする

    File /r hogeRename "$INSTDIR\hogeRename" "$INSTDIR\hoge" 

    参考になるURL

    続いて、WiX。

    WiX

    ツールダウンロード

    ツールインストール

    どちらもインストーラーを実行して素直に従えばOK。

    Cygwinで使えるようにする

    % vi .zshrc # bash使いなら vi .bashrc

    ↓以下を追加

    export PATH="/cygdrive/c/Program Files (x86)/WiX Toolset v3.7/bin":$PATH

    Cygwinで

    % candleWindows Installer Xml Compiler version 3.7.1224.0Copyright (C) Outercurve Foundation. All rights reserved.

    となればOK

    チュートリアルを実施

    右も左も分からない状態で、良いチュートリアルがあったので、それをベースに作っていった。その上で詰まった所や変えたとこを書いておく。

    • ProductのVersionは、数字+.しか許されないようだ。「10.0.0b」のような記述は不可
    • ライセンスに同意して次へ進むと不明なエラー(コード2819)が出る。

    上にある不明なエラーは、「Property.Id="WIXUI_INSTALLDIR"」がキャメルケースになってたためだった。

    参考 : orange/note: WindowsインストーラWiX

    64bit版インストーラーを作るためには、以下が非常に参考になる。この中の方法2で今回は試した。

    参考 : WiXによるインストーラ作成 - torutkの日記

    参考になるURL

    さいごに

    64bit対応のために始めた今回の試行。冒頭に書いた通り意外と簡単だった。あんまりインストーラーを作る機会はないけど、貴重な経験の1つとしておこう。いつか使うかもしれないし。