Pelican主题修改

现状

现在使用的主题是gum,不喜欢的地方有:

  1. 侧边栏:没有添加pages,但有Pages标题;每篇文章都添加tag,但Tag下没有内容
  2. Home导航太单调,希望可以有各个分类的链接

修改

因为这个主题是很早就选定的,所以一开始我是直接去看gum的源码,内容倒也不多,两个文件夹,一个css一个是html模版。但是,这样的方式是错误滴~正确的方式是先过一遍pelican的使用指南,然后再看gum的使用指南。中间遇到的问题就挑重点记录了。

菜单显示分类

pelican内置变量 DISPLAY_CATEGORIES_ON_MENU,决定是否在菜单中显示分类。此外,如果希望同时显示Pages,除了需要在本地添加pages外,还需要在配置文件中添加

MENUITEMS = (
    ('About', '/pages/About.html'),
)

添加pages的方法是,现在content所在文件夹下新建 pages,然后在其中创建形如article的文件。这里,我使用的是md格式,那么我就创建一个 About.md文件。
此外,还修改了category.html,将以下部分删除,因为我希望点击分类的时候和首页一样,直接显示文章列表,而不是先出现如下的字样:

{% block content_title %}
<h2>Articles in the {{ category }} category</h2>
{% endblock %}

侧边栏

我希望分类能同时在menu和侧边栏出现,但是查看 sidebar.html 发现,两者分别是 if 和else中,因此将其中的else内容移除。
同时发现tag下的内容为空,但是html模版文件中有tag内容。此时怀疑是否是变量使用出了问题,排查了一遍将目光定位到

{% for tag in tag_cloud %}

搜索了下,tag_cloud是一个插件。我的工程文件下已有 plugins 文件夹,赶紧pull了一下,更新到了tag_cloud。大喜,在配置文件中添加了tag_cloud的属性,build后发现tag还是依次向下逐个排列,即使我修改模版文件添加了 <ul class="tagcloud">。后来在tag_cloud库的readme中发现原因:需要将tag_cloud.py文件直接放置在plugins下,同时要添加相应的css。

现在的形式,差强人意。以后还会陆续修改,借此熟悉pelican和html/css。