自作のディレクティブを有効するために
written on Sunday, February 12, 2012
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 を出してみたが、取り入られるかどうかは微妙な気がする…。