本文介绍了覆盖特定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页面模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 17:11