6

我已经为 Pelican 创建了自己的主题,并且已经使用它来构建我的网站已有一段时间了。我决定重新开始写博客,所以我现在才向网站添加博客功能。

我创建了自己的blog.html模板,以我想要的方式呈现内容。我首先从 Pelican 附带的“简单”主题中复制和粘贴代码来帮助我开始,但即使它没有改变,我在'articles_page' is undefined尝试构建时也会遇到错误。

article_page变量集从哪里来?我尝试添加到我的pelicanconf.py文件中,但没有帮助。

{% extends 'base.html' %}
{% block title %}{{ page.title }} — Ricky White{% endblock title %}

{% block content %}  

<section class="wrapper">
<div class="container">
    <div class="row">
        <div class="col">
            <ol id="post-list">
                {% for article in articles_page.object_list %}
                    <li><article class="hentry">
                            <header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header>
                            <footer class="post-info">
                                <time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.locale_date }} </time>
                                <address class="vcard author">By
                                {% for author in article.authors %}
                                    <a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a>
                                {% endfor %}
                                </address>
                            </footer><!-- /.post-info -->
                            <div class="entry-content"> {{ article.summary }} </div><!-- /.entry-content -->
                    </article></li>
                {% endfor %}
            </ol><!-- /#posts-list -->
            {% if articles_page.has_other_pages() %}
                {% include 'pagination.html' %}
            {% endif %}

        </div>
    </div>
</div>
</section>
{% endblock content %}
4

3 回答 3

1

为了未来的访客,他们可能会像我一样来到这里寻找答案:

这个问题可能有很多非常不同的原因。就我而言,这不是 pelican 工具的配置问题,而是我的一些内容页面的元数据中的错误。我没有包含正确的类别、日期或标签字段。您现在永远不会从错误消息中猜到这一点,对吗?

于 2021-02-13T20:04:42.607 回答
1

我发现这个问题正在寻找相同的错误。

就我而言,原因是一个已关闭但未合并到当前版本Attila主题中的问题。更准确地说:该错误是由主题文件夹中的模板引起的,该模板中包含错误的引用。在特定情况下,模板内部对.templatespagearticle

手动更改模板修复了问题:

--- a/attila-1.3/templates/page.html
+++ b/attila-1.3/templates/page.html
@@ -21,8 +21,8 @@
   {% else %}
     {% set selected_cover = SITEURL+"/"+HEADER_COVER %}
   {% endif %}
-{% elif article.color %}
-  {% set selected_color = article.color %}
+{% elif page.color %}
+  {% set selected_color = page.color %}
 {% elif HEADER_COLOR %}
   {% set selected_color = HEADER_COLOR %}
 {% endif %}

我希望这有助于调试类似的错误。

于 2021-05-03T08:57:30.473 回答
1

您必须使用以下文章从其中一篇文章中引用您的模板:

Template: blog

如果您删除该引用并将以下行添加到您的pelicanconf.py中,Pelican 将直接从您的模板文件生成 blog.html:

DIRECT_TEMPLATES = ['index', 'blog']
PAGINATED_DIRECT_TEMPLATES = ['blog']

(不要忘记在运行 pelican 之前清空输出文件夹。在 Pelican 3.7.1 上测试过)

于 2018-10-08T21:56:23.667 回答