丘海东 Haydn Yau

添加tags,導航欄,側邊欄

2022-02-27
丘海东

参考1

下载

首先到 https://github.com/robbyedwards/octopress-tag-pages 和 https://github.com/robbyedwards/octopress-tag-cloud 下载这两个项目的代码。

octopress-tag-pages

把里面的文件复制到相应位置,之前已有的文件,看代码,把需要的代码加上去,.md文件先不用管

octopress-tag-cloud

1 .octopress-tag-cloud\plugins 路径里面的 tag_cloud.rb 文件复制到 octopress\plugins\ 文件夹里面。

2 . 将下面的代码复制到 octopress\source\_includes\custom\asides\tags.html。(这个文件需要自己新建。)
注意: 去掉 % 前面的反斜杠\

<section>
  <h1>Tags</h1>
  <ul id="tag-cloud">
    {\% tag_cloud font-size: 120-160%, limit: 20 \%}
  </ul>
</section>

解释:

tag_cloud 的参数中, font-size 指定 tag 的大小范围;limit 限定 20tag

3 .octopress\_config.yml 中的 default_asides 中添加 custom/asides/tags.html,注意相应的位置。

default_asides: [custom/asides/tags.html, .....]

博文写标签:

tags: [tag1, tag2, tag3]

rake generate 出现问题:

Alt text

  Liquid Exception: comparison of Array with Array failed in _layouts/page.html

解决

octopress\plugins\tag_cloud.rb 第74行:

if @limit > 0 and @sort != 'rand'
    # sort the tag pairs by frequency in descending order
    weighted.sort! { |a,b| b[1] <=> a[1] }
    # then slice off the top @limit tag pairs
    weighted = weighted[0,@limit]
end

weighted = weighted[0,@limit] 应该是取指定数目的标签。如果标签数量少于 @limit ,会报错。

修改第74行为:

      if @limit > 0 and @sort != 'rand' and @limit < weighted.length

修改第95行为:

        if @limit > 0 and @limit < weighted.length

rake generate ,不再出现错误

出现另一警告:

Alt text

rake preview ,标签云成功添加:

Alt text

解决 ` Build Warning: Layout ‘nil’ requested in tags/标签名/atom.xml does not exist.` 警告问题

octopress\source\_includes\custom\tag_feed.xml 文件里面 nil 改为 null

---
layout: null
---

搞定