はじめに
Sphinx の使い勝手がなかなか良いので Blogger の原稿を Sphinx で作成し、テーマも Sphinx にあわせてみました。
この投稿も Sphinx を使用して作成しています。
レイアウトやスタイルシートを大胆に編集しているので何か不具合あるかもしれませんが、 とりあえず今のところうまくいってます。
Blogger 用の Sphinx テンプレート等を準備
今回使用した Sphinx のバージョンは 1.1.3 です
プロジェクト用のディレクトリを適当に作成してそこに移動
$ mkdir /some/where/TestProject
$ cd /some/where/TestProject/
- プロジェクト作成
sphinx-quickstart 実行
$ sphinx-quickstart
以下を適当に入力
> Project name: TestProject > Author name(s): Fishrimper > Project version: 0.0
これら以外はデフォルト値にしました
なお、「Project version」は入力必須のためとりあえず入力しましたが、 後のカスタマイズでドキュメントにはバージョン番号が出てこないようにします
- HTML テンプレート準備
basic テーマの layout.html をコピー
$ cp /usr/share/sphinx/themes/basic/layout.html /some/where/TestProject/_templates/
- コピーした layout.html から Blogger には不要 (と思われるもの) をバッサリ削除 & 適当に編集
編集後の layout.html はこんな感じになりました
$ cat /some/where/TestProject/_templates/layout.html {# layout.html ~~~~~~~~~~~~~~~~~ Sphinx layout template. :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. :copyright: Copyright 2014 by Fishrimper. :license: BSD, see LICENSE for details. #} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset={{ encoding }}" /> <title>{{ project|striptags|e }}</title> <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" /> <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" /> </head> <body> <div class="body"> {% block body %} {% endblock %} </div> <hr /> <div class="footer"> Created using Sphinx {{ sphinx_version }}. </div> </body> </html>
- conf.py 編集
フッターの文字を黒色に、パーマリンクをオフにしてます
$ cd /some/where/TestProject/ $ diff -u conf.py.Org conf.py --- conf.py.Org 2014-01-13 19:45:00.916223250 +0900 +++ conf.py 2014-01-13 19:46:47.956234740 +0900 @@ -96,7 +96,9 @@ # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +html_theme_options = {'footertextcolor': '#000000'} + +html_add_permalinks = False # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = []
- CSS テンプレート準備
- basic.css_t を準備
basic テーマの basic.css_t をコピー
$ cp /usr/share/sphinx/themes/basic/static/basic.css_t /some/where/TestProject/_static/
- コピーした basic.css_t も layout.html と同様に不要 (と思われるもの) をバッサリ削除
こんな感じになりました。テーブル関連のものだけ残してます。
$ cat /some/where/TestProject/_static/basic.css_t /* * basic.css * ~~~~~~~~~ * * Sphinx stylesheet. * * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2014 by Fishrimper. * :license: BSD, see LICENSE for details. * */ /* -- tables ---------------------------------------------------------------- */ table.docutils { border: 0; border-collapse: collapse; } table.docutils td, table.docutils th { padding: 1px 8px 1px 5px; border-top: 0; border-left: 0; border-right: 0; border-bottom: 1px solid #aaa; } table.field-list td, table.field-list th { border: 0 !important; } table.footnote td, table.footnote th { border: 0 !important; } th { text-align: left; padding-right: 5px; } table.citation { border-left: solid 1px gray; margin-left: 1px; } table.citation td { border-bottom: none; }
- default.css_t を準備
default テーマの default.css_t をコピー
$ cp /usr/share/sphinx/themes/default/static/default.css_t /some/where/TestProject/_static/
- コピーした default.css_t も同様にバッサリ削除し、div.body に font-family を追加
こんな感じになりました。
$ cat /some/where/TestProject/_static/default.css_t /* * default.css_t * ~~~~~~~~~~~~~ * * Sphinx stylesheet. * * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2014 by Fishrimper. * :license: BSD, see LICENSE for details. * */ @import url("basic.css"); /* -- page layout ----------------------------------------------------------- */ div.body { font-family: {{ theme_bodyfont }}; background-color: {{ theme_bgcolor }}; color: {{ theme_textcolor }}; padding: 0 20px 30px 20px; } div.footer { color: {{ theme_footertextcolor }}; width: 100%; padding: 9px 0 9px 0; text-align: center; font-size: 75%; } /* -- body styles ----------------------------------------------------------- */ div.body h1, div.body h2, div.body h3, div.body h4, div.body h5, div.body h6 { font-family: {{ theme_headfont }}; background-color: {{ theme_headbgcolor }}; font-weight: normal; color: {{ theme_headtextcolor }}; border-bottom: 1px solid #ccc; margin: 20px -20px 10px -20px; padding: 3px 0 3px 10px; } div.body h1 { margin-top: 0; font-size: 200%; } div.body h2 { font-size: 160%; } div.body h3 { font-size: 140%; } div.body h4 { font-size: 120%; } div.body h5 { font-size: 110%; } div.body h6 { font-size: 100%; } pre { padding: 5px; background-color: {{ theme_codebgcolor }}; color: {{ theme_codetextcolor }}; line-height: 120%; border: 1px solid #ac9; border-left: none; border-right: none; } tt { background-color: #ecf0f3; padding: 0 1px 0 1px; font-size: 0.95em; } th { background-color: #ede; }
- ブログの原稿を書く
- ファイルは /some/where/TestProject/index.rst です
- 原稿を make
ターゲットは singlehtml です
$ cd /some/where/TestProject/ $ make singlehtml
/some/where/TestProject/_build/singlehtml/ に index.html に html ファイルができてるので、ブラウザで開いて確認できます
- Blogger 用のスタイルシート作成
$ cd /some/where/TestProject/_build/singlehtml/_static/ $ cat basic.css > ForBlogger.css; \ echo >> ForBlogger.css; \ echo >> ForBlogger.css; \ cat default.css | grep -v @import >> ForBlogger.css; \ echo >> ForBlogger.css; \ cat pygments.css >> ForBlogger.css; \ echo >> ForBlogger.css; \ echo >> ForBlogger.css; \ echo 'dt{font-weight:normal}' >> ForBlogger.css
このスタイルシート ForBlogger.css を後で Blogger に適用します
Blogger でブログを新規作成
とりあえず新規作成の場合の手順を書いてます。
- ブログ作成
Blogger の管理ページで「新しいブログを作成」をクリック
タイトルとアドレスを適切に入力
テンプレートはデフォルトの「シンプル」を選択
- テンプレートカスタママイズ
作成したブログのテンプレート設定画面で使用中のテンプレートの「カスタマイズ」をクリック
「上級者向け」をクリック
「CSS を追加」をクリック
先ほど作成した ForBlogger.css の内容を全て貼り付けて保存
- Sphinx で作成した原稿の html を投稿として貼り付け
- /some/where/TestProject/_build/singlehtml/index.html の中身の <body> 〜 </body> に囲まれた部分を貼り付けます。 (<body>, </body> タグ自身は貼り付けません)
私の場合は以上の手順で割とうまくいっています。
0 件のコメント:
コメントを投稿