web-dev-qa-db-fra.com

Comment ajouter un fichier CSS personnalisé à Sphinx?

Comment puis-je ajouter un fichier CSS personnalisé? La configuration suivante ne fonctionne pas pour moi:

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

Résultat:

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

Un moyen plus simple consiste à ajouter ceci à votre conf.py:

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

Placez ensuite le fichier dans le _static/css/ dossier.

47
Gringo Suave

Vous devriez pouvoir inclure des CSS personnalisés en étendant le thème Sphinx par défaut. Dans votre conf.py, vous devez spécifier où votre extension au thème serait, comme.

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

Ensuite, dans _templates, vous créeriez une extension pour le thème par défaut nommé 'layout.html' qui inclurait vos fichiers CSS tels que.

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

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

Voir la documentation de sphinx sur modèles pour plus d'informations.

23
Cole

Les options que vous pouvez configurer via html_theme_options Dépendent du thème. Consultez la section [options] Du theme.conf De votre thème pour découvrir ce qui est disponible.

Sur une base globale, cependant, vous pouvez définir html_context Dans votre conf.py Pour remplacer les paramètres de css_files (Et, d'ailleurs, script_files Aussi) :

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

(Pour référence, consultez la builders.html.StandaloneHTMLBuilder.prepare_writing() de Sphinx et voyez comment self.globalcontext Y est renseigné .)

10
igor