自作のディレクティブを有効するために

heavenshell's note -自作のディレクティブを有効するために の転載。


rstblog で自作のロールやディレクティブを有効にする為には現状 rstblog/modules/ というディレクトリにモジュールを作成する必要がある。
手動で rstblog/modules に自作のモジュールを入れるのはやはり筋が悪い。
Sphinx には sphinxcontrib という仕組みがあり、設定ファイルに拡張モジュールを設定する仕組みになっている。
rstblog も同様に config.yml に使用する拡張モジュールを設定できるようにすれば良いと思い、パッチを作成した。

diff --git a/rstblog/builder.py b/rstblog/builder.py
index ea659dd..23da103 100644
--- a/rstblog/builder.py
+++ b/rstblog/builder.py
@@ -221,6 +221,11 @@ class Builder(object):
             mod.setup(self)
             self.modules.append(mod)

+        for extension in self.config.root_get('extensions') or []:
+            mod = __import__(extension, None, None, ['setup'])
+            mod.setup(self)
+            self.modules.append(mod)
+
     @property
     def default_output_folder(self):
         return os.path.join(self.project_folder,

config.yml に extensions というのがあると利用できるようにした。

---
active_modules: [pygments, tags, blog, latex]
extensions: [rstblogcontrib.youtube]

こんな感じでモジュールを設定してやる。
とりあえず rstblog 自体に pull request を出してみたが、取り入られるかどうかは微妙な気がする…。


追記:今現在取り入れられていないからやはり、需要がないと思われたのかなぁー。