我正在使用ablog sphinx扩展来生成博客网站。我打开了issue 66,我现在已经找到了答案。由于问题/答案一般对sphinx具有更广泛的适用性,我想我会在这里询问(并回答)SO。
如何获取与html_sidebars tagcloud.html
,categories.html
和archives.html
具有相同内容的网页?我知道每个人都有相应的生成页面,但我想要的是一个页面,其内容与侧边栏中的内容相同。我相信这样做是一个简单的练习,使用sphinx定制和模板,这是我喜欢ablog的一个重要原因 - 我为博客引擎学到的技能同样适用于我的核心狮身人面像使用。
答案 0 :(得分:2)
我想使用sphinx RTD Theme (demo)为我的 基于ablog的网站。这很容易 去做。使用与主题不同的主题时遇到的一个问题 默认alabaster theme是 让侧边栏内容看起来很好或完全存在。什么时候 我用了bootstrap theme (demo), 它与雪花石膏主题之间存在一些差异 我的博客看起来不太对劲。当我使用RTD主题时,页面 看起来不错,但RTD主题专门用于侧边栏 不可自定义的RTD目录。所以我有三个选择:
1)与alabaster主题一起生活,其中包含所有正确的ablog 内容,但我真的不喜欢所有的斜体字体 身体内容 2)使用bootstrap主题,整体看起来不错但侧边栏 不太对劲 3)使用RTD主题,看起来很棒,但没有侧边栏 与传统的博客内容,如标签云,列表 按年份分类或归档列表,所有这些都可用于 html边栏。
我发布了issue 66 ablog项目。在回答之前,我遇到了堆栈溢出 问题/答案:Override html page template for a specific sphinx document。 提供的方法 answer这个问题 似乎满足了我的需求。
我使用自定义_templates / page.html来应用特殊逻辑 来自_templates / sidebar_page.html的内容用于 页面名为pages / sidebar_page。以下是三者的内容 文件:
<强> _templates / page.html中强>
{% extends "layout.html" %}
{% block body %}
{% if pagename == 'pages/sidebar_page' %}
{% include 'sidebar_page.html' %}
{% else %}
{{ body }}
<hr></hr>
{% include 'postcard.html' %}
<p></p>
{% endif %}
{% endblock %}
<强> _templates / sidebar_page.html 强>
{% block body %}
<!-- {% include 'searchbox.html' %} -->
{% include 'about.html' %}
{{ body }}
{% include 'tagcloud.html' %}
<p></p>
{% include 'recentposts.html' %}
<p></p>
{% include 'categories.html' %}
<p></p>
{% include 'archives.html' %}
<p></p>
{% include 'authors.html' %}
{% endblock %}
信息页/ sidebar_page.rst 强>
.. _sidebar_page:
********************
Blog Overview |rss|
********************
This is my overview of the blog.
这些变化似乎完全解决了这个问题。我现在能够使用了 RTD主题,仍然有一个具有正常博客概述的自定义页面 信息。