本文介绍了覆盖特定Shinx文档的html页面模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Sphinx(https://github.com/fridge-project/dbal-docs)实现一个文档,&;希望覆盖特定文档的html页面。我感兴趣的是覆盖所有目录索引,使其不仅显示简单的ul。我已经阅读了Sphinx文档,但我没有发现我的问题有什么有趣的地方...有人知道解决办法吗?
推荐答案
郑重声明,这个解决方案与其说是一个解决方案,不如说是一种黑客攻击,但目前,我找不到更好的解决方案...
首先,您需要了解我的解决方法是基于主题的。在您的文档中,您使用主题(默认主题或自定义主题),但无论如何,您都使用主题。这个主题被分成不同的部分(第页,目录,...)它可以被单独覆盖。此覆盖可以在不同的级别上完成:主题本身或在项目的自定义模板目录中(默认情况下为_templates
)(可在conf.py
中配置)。
_templates
目录中表示文档中所有页面的page.html
模板。在此模板中,您可以访问pagename
(每个文件的相对文档路径)。了解了这一点后,您可以在该模板中进行一些条件检查,以检测这是否是您想要覆盖的文件,然后覆盖它。如果它不是需要重写的文件,只需使用默认行为:{% extends "layout.html" %}
{% block body %}
{% if pagename == 'index' %}
{% include 'custom/index.html' %}
{% else %}
{{ body }}
{% endif %}
{% endblock %}
正如解释的那样,这听起来真的很像黑客...
这篇关于覆盖特定Shinx文档的html页面模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!