web-dev-qa-db-ja.com

カスタムCSSファイルをSphinxに追加する方法は?

カスタムcssファイルを追加するにはどうすればよいですか?次の設定は私には機能しません:

# conf.py
html_static_path = ['_static']
html_theme = 'default'
html_theme_options = {
  'cssfiles': ['_static/style.css']
}

結果:

C:\temp\test-docs\docs>make html
Running Sphinx v1.2.2
loading pickled environment... not yet created
building [html]: targets for 2 source files that are out of date
updating environment: 2 added, 0 changed, 0 removed
reading sources... [ 50%] help
reading sources... [100%] index

looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents...
Theme error:
unsupported theme option 'cssfiles' given
35
ole

より簡単な方法は、これをconf.pyに追加することです。

def setup(app):
    app.add_stylesheet('css/custom.css')  # may also be an URL

次に、ファイルを_static/css/フォルダに配置します。

47
Gringo Suave

デフォルトのスフィンクステーマを拡張することで、カスタムCSSを含めることができるはずです。 conf.pyで、テーマの拡張がどこにあるかなどを指定します。

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

次に_templatesで、cssfileなどを含む「layout.html」という名前のデフォルトテーマの拡張を作成します。

{# layout.html #}
{# Import the layout of the theme. #}
{% extends "!layout.html" %}

{% set css_files = css_files + ['_static/style.css'] %}

詳細は templating に関するsphinxのドキュメントを参照してください。

23
Cole

_html_theme_options_を介して構成できるオプションは、テーマによって異なります。テーマの_[options]_の_theme.conf_セクションをチェックして、何が利用できるかを確認してください。

ただし、グローバルに、_html_context_で_conf.py_を定義して、_css_files_の設定を上書きできます(さらに、_script_files_も)。

_html_context = {
    'css_files': ['_static/custom.css'],
}
_

(参考までに、Sphinxのbuilders.html.StandaloneHTMLBuilder.prepare_writing()を見て、 (_self.globalcontext_がそこに入力される方法 を参照してください。)

10
igor