AoboSir 博客

与15年前的我比,我现在是大人;与15年后的我比,我现在还是个婴儿

Octopress 搭建静态博客站点 — 让中文的分类列表(Categories)的超链接正常使用


前言

之前,我是按照我写的这篇博客Octopress站点侧边栏添加分类列表(Categories)。


出现的问题

基于Octopress的博客系统自带了一个很好用分类目录插件。但遗憾的是它不支持中文链接URL,所以导致了:如果你分类列表有中文,那么点击的时候会链接到404页面。


解决思路

中文取拼音。


解决方法

参考网站:解决Octopress分类目录支持中文的问题

/plugins/category_sidebar.rb (若没有,自行创建)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
require 'stringex'

module Jekyll
  class CategoryListTag < Liquid::Tag
    def render(context)
      html = ""
      categories = context.registers[:site].categories.keys
      categories.sort.each do |category|
        posts_in_category = context.registers[:site].categories[category].size
        html << "<li class='category'><a href='/blog/categories/#{category.to_url.downcase}/'>#{category} (#{posts_in_category})</a></li>\n"
      end
      html
    end
  end
end

Liquid::Template.register_tag('category_sidebar', Jekyll::CategoryListTag)

搞定

现在你可以重新执行rake generaterake previewrake deploy,分类列表中有中文字符的分类,就可以正常打开了,而实际的链接就是对应的拼音。


Comments