我已经为 Pelican 创建了自己的主题,并且我已经使用它一段时间来构建我的网站。我决定重新开始写博客,所以我现在才将博客功能添加到网站。
我已经创建了自己的 blog.html
模板来以我想要的方式呈现内容。我首先从 Pelican 随附的'simple' 主题 中复制并粘贴代码来让我开始,但即使它没有改变,我也得到了 '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 %}
您必须使用其中一篇文章引用您的模板:
Template: blog
如果您删除该引用并将以下行添加到您的 pelicanconf.py,Pelican 将直接从您的模板文件生成 blog.html:
DIRECT_TEMPLATES = ['index', 'blog']
PAGINATED_DIRECT_TEMPLATES = ['blog']
(在运行 pelican 之前不要忘记清空输出文件夹。已在 Pelican 3.7.1 上测试)
我是一名优秀的程序员,十分优秀!