Tinkererでブログをコツコツと作るために

この記事は、PythonやSphinxに余り明るくないが、 Tinkererを使いこなしたいと言う方向けの基本かつ基礎的な情報をまとめます。

Tinkererとは

Tinkererとは、Sphinxをブログ用途に利用するためのフレームワークの様な物です。

reStructuredTextという、Markdownより高機能なマークアップ言語で、 記事を記述することが可能です。 私自身は、汎用性に富み構造化された形式で、 ブログを記述することが出来、ドキュメントの再利用性が良いと考えて利用しています。

ミドルウェアからの階層は、Python→docutils(reStructuredText)+Jinja2→Sphinx→Tinkererです。

記事を書くだけであれば特に問題ありませんが、カスタムを行ったりする場合は、 Python, reStructuredText, Jinja2, Sphinx, Tinkerer全般を相手にする必要があります。 さらに、gitやCSSも触る可能性が高いので利用する前にそれだけ、認識下さい。

Tinkererと関連するモジュールについて

Python

これはプログラミング言語です。

Pythonは読み書きできた方がいいです。 例えば、文字列をユニコードで記述する方法は u"文字列" である。 という基本的な部分は押さえておいた方がいいと思います。 学習は、日本の公式ページのドキュメントのチュートリアルで可能です。

http://docs.python.jp/2.7/

※Pythonのバージョン2のドキュメントをリンクしていますが、今から学習するなら3でも良いかもしれません。

docutils

Docutilsは、テキストデータをHTML,Latex,man-pages等々の便利な形式へ変換する テキスト処理システムです。 これは、reStructuredTextを含んでいます。このreStructuredTextは、記述が簡単、ソースを読むのも簡単、さらにソースファイルとビルドされた文章の見た目もそっくり!!

とのことです(オフィシャルサイトの和訳)。 ちょっと誇大広告な気がwww

reStructuredText

docutilsに含まれるマークアップ言語です。例えば、このページ のソースは、この様に 記述されます

私の個人的な考えになりますがやり方を一々検索するより、 一次情報に近い仕様書を手元に置いておいた方がいいです。 検索してヒットしたブログの記事を読んでいたら、時間が勿体無いです。 以下に、reStructuredTextについてかなり良質なページをまとめてくれているページがあるので 貼り付けておきます。

http://cointoss.hatenablog.com/entry/2012/09/12/145524

後、私自身が訳した文章も貼り付けておきますww ある程度詳しく知りたい時に役立つはずです。

http://helloaworld.com/general/restructuredtext/

ディレクティブ (.. 文字列:: と言う形式の関数のような物) は、拡張可能です。Tinkererを実際に使用するときは、sphinxやTinkererによって追加されたディレクティブを利用することになります。

Sphinx

Sphinxは、docutilsの機能を拡張 (オーバーライド) したものです。 docutils単体では出来ない、文章の検索やepubのビルドが行えたりします。

オフィシャルの文章は、上記のreStructuredTextについての説明が手元にあるものとして記述されている箇所が見受けられます。 上記のページで並行してreStructuredTextの構文を学んだ方がいいです。

sphinx単体のドキュメントは ここ です。

文法面については、reStructuredTextから追加された、 ディレクティブが、上記ドキュメント内の このページこのページ に終結されているようです。

Jinja2について

Python製のテンプレートエンジン。ここで言うテンプレートエンジンとは、 コンテンツと見た目を分離して、見た目を揃えたドキュメントを大量生産するツールという意味合いのものです。 以下にドキュメントがあるので貼り付けておきます。

Tinkererで、見た目を変更したいとなった時は、Jinja2のテンプレートファイルを 編集することが多いです。

http://ymotongpoo.appspot.com/jinja2_ja/templates.html

以上です

大した内容を書けませんでしたが、私自身上記内容や色々なブログの記事を頼りにTinkererを使っていくことになりそうです。