主题主题名称没有 "theme" 设置来自定义我在 sphinx 中的主题?
theme theme-name doesn't have "theme" setting for customizing my theme in sphinx?
我想为 python-sphinx 创建自己的主题--mytheme
。
tree project
project
├── build
├── make.bat
├── Makefile
├── mytheme
│ ├── static
│ │ └── style.css
│ └── theme.conf
└── source
└── conf.py
theme.conf中的内容:
cat project/mytheme/theme.conf
[theme]
inherit = default
stylesheet = style.css
project/source/conf.py
中的内容
cat project/source/conf.py
def setup(app):
app.add_stylesheet('static/style.css')
app.add_html_theme('mytheme', os.path.abspath(os.path.dirname(__file__)))
html_theme = 'mytheme'
html_theme_path = ['.']
现在让我们在源代码中制作我所有的 *.rst 文件。
cd project
make html
Running Sphinx v2.4.4
loading pickled environment... done
Theme error:
theme 'mytheme' doesn't have "theme" setting
Makefile:19: recipe for target 'html' failed
make: *** [html] Error 2
如何解决?
您使用两种互斥的方法 - 使用文件系统中的本地主题,同时注册主题,就像在作为 Python PyPI 包分发的主题中所做的那样。
如果您希望主题成为 Sphinx 项目的一部分,此类 project-specific 主题的好地方是 conf.py 目录中的 _themes/
,然后设置 html_theme = "mytheme"
和 html_theme_path = ["_themes"]
在你的 conf.py.
_themes/
mytheme/
static/
css/
main.css
theme.conf
layout.html
conf.py
index.rst
second.rst
third.rst
...
(借自https://blog.documatt.com/sphinx-theming/themes.html#project-specific-themes)
完全删除区块
def setup(app):
app.add_stylesheet('static/style.css')
app.add_html_theme('mytheme', os.path.abspath(os.path.dirname(__file__)))
add_html_theme()
用于作为包分发的主题。 add_stylesheet()
是添加额外的(不是替换现有的)样式表。主题主样式表在它们的 theme.conf stylesheet
选项中。
我在你的示例中看到的最后一个问题是你的主题继承自 default
主题。它有效,看起来它是 classic
主题 (https://www.sphinx-doc.org/en/master/usage/theming.html#builtin-themes) 的旧名称,但使用其官方名称 - classic
.
我想为 python-sphinx 创建自己的主题--mytheme
。
tree project
project
├── build
├── make.bat
├── Makefile
├── mytheme
│ ├── static
│ │ └── style.css
│ └── theme.conf
└── source
└── conf.py
theme.conf中的内容:
cat project/mytheme/theme.conf
[theme]
inherit = default
stylesheet = style.css
project/source/conf.py
cat project/source/conf.py
def setup(app):
app.add_stylesheet('static/style.css')
app.add_html_theme('mytheme', os.path.abspath(os.path.dirname(__file__)))
html_theme = 'mytheme'
html_theme_path = ['.']
现在让我们在源代码中制作我所有的 *.rst 文件。
cd project
make html
Running Sphinx v2.4.4
loading pickled environment... done
Theme error:
theme 'mytheme' doesn't have "theme" setting
Makefile:19: recipe for target 'html' failed
make: *** [html] Error 2
如何解决?
您使用两种互斥的方法 - 使用文件系统中的本地主题,同时注册主题,就像在作为 Python PyPI 包分发的主题中所做的那样。
如果您希望主题成为 Sphinx 项目的一部分,此类 project-specific 主题的好地方是 conf.py 目录中的 _themes/
,然后设置 html_theme = "mytheme"
和 html_theme_path = ["_themes"]
在你的 conf.py.
_themes/
mytheme/
static/
css/
main.css
theme.conf
layout.html
conf.py
index.rst
second.rst
third.rst
...
(借自https://blog.documatt.com/sphinx-theming/themes.html#project-specific-themes)
完全删除区块
def setup(app):
app.add_stylesheet('static/style.css')
app.add_html_theme('mytheme', os.path.abspath(os.path.dirname(__file__)))
add_html_theme()
用于作为包分发的主题。 add_stylesheet()
是添加额外的(不是替换现有的)样式表。主题主样式表在它们的 theme.conf stylesheet
选项中。
我在你的示例中看到的最后一个问题是你的主题继承自 default
主题。它有效,看起来它是 classic
主题 (https://www.sphinx-doc.org/en/master/usage/theming.html#builtin-themes) 的旧名称,但使用其官方名称 - classic
.