yang3wei的专栏

Enjoy my life!

(扩充)为 octopress 添加标签云

| Comments

原文链接:http://codemacro.com/2012/07/18/add-tag-to-octopress/
同添加 category list 一样,网络上有很多方法,这里列举一种。
首先将以下两个项目克隆到本地:

https://github.com/robbyedwards/octopress-tag-pages 
https://github.com/robbyedwards/octopress-tag-cloudclone

这两个项目分别用于产生 tag pagetag cloud
针对这两个插件,需要手工复制一些文件到你的 octopress 目录。

1.octopress-tag-pages

复制 tag_generator.rb/plugins 目录。
复制 tag_index.html/source/_layouts 目录。
复制 tag_feed.xml/source/_includes/custom/ 目录。
其他文件就不需要复制了,都是些例子。

2.octopress-tag-cloud

复制 tag_cloud.rb/plugins 目录。
复制以下代码到 /source/_includes/custom/asides/tags.html
注意:先去掉 % 前面的反斜杠

<section>
    <h1>Tags</h1>
    <ul class="tag-cloud">
        {\% tag_cloud font-size: 100-210%, limit: 49, style: para \%}
    </ul>
</section>

tag_cloud 的参数中:
style: para 指定不使用 li 来分割;
limit 限定 10 个 tag;
font-size 指定 tag 的大小范围,具体参数参看官方文档。

最后,当然是在 _config.ymldefault_asides 中添加这个 tag cloud 到导航栏,例如:

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

3.本人扩充: 有一个要注意的地方

结合自身经历,我按照前文所述操作且核对了很多次,
发现在 rake generaterake preview 以后,
在预览页面却依然无法得到正常的结果,具体表现如下:
标签云确实是出现在了右栏里面,不过当我点击某个 tag 的时候,
跳转到的却不是有效的地址,而仅仅只是一个 tag 关键词!
灰常地荒谬,灰常地震惊,我甚至一度思忖,作者是不是故意在和我开玩笑。
经历了艰辛地排查,终于我在 firebug 下面发现了一些蛛丝马迹:
常规情况下 tag 对应的地址应该是 /tags/关键字
但是我发现在我的站点上面却不是这样的,仅仅只有 //关键字
体现在浏览器里面就仅仅是一个 tag 关键字了,因为两个斜杠都被滤掉了~
发现了问题的症结以后,我就跑到 _config.yml 配置文件去中查看,
并且拿自己的配置文件和其他正常人的配置文件作对比,果然发现了一些猫腻:
我的配置文件中少了一行配置:tag_dir: tags,也算是歪打正着了,
把这一行配置加进去之后,执行 rake generaterake preview 命令,
转到浏览器里面键入 localhost:4000 进行查看,标签云的功能总算是回归正常了~

谈一谈我对此的感受吧:
之前我也没有删掉过 tag_dir 这一行配置,也就是说 octopress 本身就没有包含这一行配置~
我很奇怪为什么其他人竟然都没有提出甚至谈及这个问题,
难道是 octopress 在升级的过程中刚才将这一行配置去掉?
不论如何,此次经历还是让我相当的不愉快,我花了至少五个小时来解决这个问题!!
这让我难以接受,要知道此时此刻我本该已经躺在床上呼呼大睡了!
直言不讳吧,虽然拿 MacVim 写 markdown 很舒服,但我不得不承认:
octopress 毕竟还是没能达到我心目中理想的高度,此次就是不成熟的一个典型体现~

Comments