返回顶部

松鼠窝

让octopress支持标签(tag)

2015年01月25日

安装插件

目前有多个插件实现标签功能。其中一个是octopress官方推荐版本,据说不支持多标签。还有些人用的是“3D”标签云,风格上我不是太喜欢。最终选用的是robbyedwards的一组插件。这组插件有两个,一个是octopress-tag-pages,用于生成标签页面,另一个是octopress-tag-cloud,用于显示实现标签云功能。

### octopress-tag-pages

首先安装octopress-tag-page。从上面链接处得到插件,复制这些文件到octopress的相同路径:

plugins/tag_generator.rb

source/_includes/custom/tag_feed.xml

source/_includes/post/tags.html

source/_layouts/tag_index.html

其中tag_generator.rb和tag_feed.xml是必须的,其它据网上的一些人说是可选的。

另外一些文件是同名文件,如果复制过来一方面会影响已经配置的功能,另外可能导致发生一些问题(可能是版本兼容的问题造成的)。

这个插件不需要做配置。

octopress-tag-cloud

然后安装octopress-tag-cloud。在上面链接处得到插件,同样复制一些文件到octopress的相同路径:

plugins/tag_cloud.rb

source/_includes/custom/asides/tags.html

tag_cloud.rb为必须。tags.html为在侧边栏显示标签的示例。可以参照它进行配置。

在侧边栏显示标签云

在_config.yml中的default_asides:中增加custom/asides/tags.html,用于在侧边栏显示标签云。如果想汉化,则修改tags.html等文件即可。

使用

在新建的博客文件中加入一行“tags: ”,类似:

---
layout: post
title: "test tag"
published: true
date: 2014-10-28 00:42
comments: true
tags: [扩展, ttt]
categories: 
---

这样会给这一博文增加两个标签,使标签与分类对文章进行不同维度的分类。

当有文章有多个标签时,在执行rake generate时会出现类似如下问题:

1
2
3
4
5
6
7
8
9
10
$ rake generate
(in /ubdata/octopress)
## Generating Site with Jekyll
identical source/stylesheets/screen.css 
Configuration file: /ubdata/octopress/_config.yml
            Source: source
       Destination: public
      Generating... 
  Liquid Exception: comparison of Array with Array failed in _layouts/page.html
jekyll 2.4.0 | Error:  comparison of Array with Array failed

经十几天的反复测试,发现在source/_includes/custom/asides/tags.html如果加了“limit”参数,就会出现问题。去掉就好了。

另一个问题是2.0版本的ocroptrss调用的generate操作会执行plugings中的所有插件,所以会报一些错,忽略即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ rake generate
(in /ubdata/octopress)
## Generating Site with Jekyll
identical source/stylesheets/screen.css 
Configuration file: /ubdata/octopress/_config.yml
            Source: source
       Destination: public
      Generating... 
     Build Warning: Layout 'nil' requested in tags/kuo-zhan/atom.xml does not exist.
     Build Warning: Layout 'nil' requested in tags/ttt/atom.xml does not exist.
     Build Warning: Layout 'nil' requested in tags/kuo-zhan/atom.xml does not exist.
     Build Warning: Layout 'nil' requested in tags/ttt/atom.xml does not exist.
                    done.
 Auto-regeneration: disabled. Use --watch to enable.

参考

http://codemacro.com/2012/07/18/add-tag-to-octopress/

http://loudou.info/blog/2014/02/15/wei-octopress-tian-jia-tag-gong-neng/

返回顶部