Sphinxは、一連のReST形式のテキスト ファイルから適切なドキュメントを生成する Python ライブラリです。
Sphinx プラグインを作成して個人の Web サイトやブログを作成した人がいるのだろうか。
特にブログの場合、投稿を時系列で自動的に一覧表示し、RSS フィードを生成する方法が必要です。このような特別なページ/xml 生成を行うには、Sphinx プラグインを作成する必要があります。
誰もこれを試したことがありますか?
Sphinxは、一連のReST形式のテキスト ファイルから適切なドキュメントを生成する Python ライブラリです。
Sphinx プラグインを作成して個人の Web サイトやブログを作成した人がいるのだろうか。
特にブログの場合、投稿を時系列で自動的に一覧表示し、RSS フィードを生成する方法が必要です。このような特別なページ/xml 生成を行うには、Sphinx プラグインを作成する必要があります。
誰もこれを試したことがありますか?
私はhttp://reinout.vanrees.org/weblogでそれをしました。重要なトリックは、プリプロセッサステップを追加することです。ブログエントリをweblog/yyyy/mm/dd/
フォルダ構造にしています。
スクリプトはそのフォルダ構造を繰り返しindex.txt
、すべてのディレクトリにファイルを作成し、サブアイテムを一覧表示します。次に、通常のSphinxプロセスでこれらのindex.txt
ファイルがレンダリングされます。
タグ用のカスタムSphinxプロセッサを追加しました。したがって、私のブログエントリの上部にある「..tags :: python、buildout」がタグを生成します。そして、プリプロセッサは再びそれらのエントリを収集し、weblog/tags/TAGNAME.txt
Sphinxが再び通常どおりにレンダリングするファイルを書き出します。
weblog/index.txt
プリプロセッサは、最新の10エントリでルートも作成します。そして、weblog/atom.xml
rssフィードの(ハードコードされた)出力ディレクトリにあります。
つまり、カスタムのものが必要ですが、それはほとんどプレーンテキストなので、私にとっては素晴らしい演習でした。そして、あなたは生活を楽にするためにいくつかのヘルパースクリプトを書くことができます。例えば、どこかから今日のウェブログディレクトリにテキストファイルをコピーするもの(不足しているディレクトリの作成と「svnadd」を含む)。
現在(2012年2月)、必要なことを実行するために利用できるさまざまなリソースがあります。
スフィンクスに基づくブログエンジン:http://tinkerer.me/
Reinout Van Reesのブログ:https ://github.com/reinout/reinout.vanrees.org
フィード投稿拡張機能:https ://bitbucket.org/birkenfeld/sphinx-contrib/src/tip/feed/README
「Python Module of the Week」の著者である Doug hellmann は、Sphinx を使用してサイトを作成しています。
http://www.doughellmann.com/PyMOTW/
彼は、スフィンクスのトピックをカバーするいくつかの投稿を持っています。
reStructuredTextで書く必要がある場合は、 Pelicanを試してみてください。
Pelicanは、Pythonで記述された静的サイトジェネレーターです。ブログエントリをreStructuredTextまたはMarkdownに直接書き込むことができます。
sphinxcontrib.feed
Itと呼ばれる sphinx-contrib 拡張機能に sphinx 用の RSS 拡張機能があることを知っておく価値があります。
(免責事項: フィード拡張機能は私が作成しました。)
Sphinx ではありませんが、http://codespeak.net/ のいくつかのサイトでは、ReSTテキストを受け取り、HTML を生成してサイトにアップロードするスクリプトが使用されています。私はこれらのスクリプトを作成しませんでしたが、使用しました。
Pythonモジュールのドキュメントを生成するときのように、とにかくサイトに多くのReSTファイルを含める必要がある場合、サイトを生成するのは合理的な方法です。もちろん、これらのサイトがすべてです。また、ソース コードを svn や hg などで保持できるため、サイトをバージョン管理する必要がある場合にも適しています。
しかし、多くの自動メニューやその他の拡張機能を書き始めると、最終的にはコンテンツ管理システムになります。そして、それらはすでにたくさんあるので、最初にそれらを見たいと思うかもしれません.
もう 1 つの例は、新しい packages.python.org です。そこで、必要に応じてドキュメントを生成し、PyPI を介してドキュメントを含む zip ファイルをアップロードできます。Distribute は Sphinx でこれを行いました: http://packages.python.org/distribute。ただし、Sphinx ドキュメントから HTML を生成するだけなので、特別なスクリプトは必要ありません。
でも...
ブログ ソフトウェアを Sphinx 拡張機能として作成するというアイデアは、特に非常に多くの優れたブログ ソフトウェアが既に存在するため、少しおかしいと言わざるを得ません。いずれにしても、Wordpress に勝るものはありません。wordpress.com は、私にとって素晴らしいブログ体験です。しかし、Sphinx をどれだけ悪用できるかという演習として、ぜひ試してみてください。:-)
個人の Web サイト ( http://homepage.mac.com/s_lott/steve/ ) を Sphinx で作り直しました。それはうまく機能します。 悲しいことに、SO マークアップによって_
URL が壊れてしまいます。
また、Sphinx で、非プログラマーのためのプログラミング入門( http://homepage.mac.com/s_lott/books/nonprog/html/index.html ) の本全体を書き直しました。私は、Sphinx での Python 入門を書き直しているところです。
私はブログに Sphinx を使用していません。完全に便利というわけではありませんが、うまくいくでしょう。私はblogspotを低グラフィック/高テキストで、比較的高速なブログに使用しています。私は iWeb ( http://web.me.com/s_lott/Travel/Welcome.html ) を使用して、高グラフィックで比較的速度の遅いブログを書いています。