如何获得带有侧边栏内容的ablog sphinx页面

时间:2016-05-06 13:22:14

标签: python-sphinx ablog

我正在使用ablog sphinx扩展来生成博客网站。我打开了issue 66,我现在已经找到了答案。由于问题/答案一般对sphinx具有更广泛的适用性,我想我会在这里询问(并回答)SO。

如何获取与html_sidebars tagcloud.htmlcategories.htmlarchives.html具有相同内容的网页?我知道每个人都有相应的生成页面,但我想要的是一个页面,其内容与侧边栏中的内容相同。我相信这样做是一个简单的练习,使用sphinx定制和模板,这是我喜欢ablog的一个重要原因 - 我为博客引擎学到的技能同样适用于我的核心狮身人面像使用。

1 个答案:

答案 0 :(得分:2)

包含ABlog边栏内容的页面

我想使用sphinx RTD Themedemo)为我的 基于ablog的网站。这很容易 去做。使用与主题不同的主题时遇到的一个问题 默认alabaster theme是 让侧边栏内容看起来很好或完全存在。什么时候 我用了bootstrap themedemo), 它与雪花石膏主题之间存在一些差异 我的博客看起来不太对劲。当我使用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主题,仍然有一个具有正常博客概述的自定义页面 信息。