写在前面
本文主要记录一些关于octopress的个性化配置方法。
个性化配置
1. 增加Categories列表
首先在plugins
目录下添加category_list_tag.rb
文件,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17module 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
category_dir = context.registers[:site].config['category_dir']
category_url = File.join(category_dir, category.gsub(/_|\P{Word}/, '-').gsub(/-{2,}/, '-').downcase)
html << "<li class='category'><a href='/#{category_url}/'>#{category} (#{posts_in_category})</a></li>\n"
end
html
end
end
end
Liquid::Template.register_tag('category_list', Jekyll::CategoryListTag)\source\_includes\asides
目录(或\source\_includes\custom\asides
目录)下添加category_list.html
文件,代码如下:
1
2
3
4
5
6<section>
<h1>Categories</h1>
<ul id="categories">
{% raw %}{% category_list %}{% endraw %}
</ul>
</section>_config.yml
中default_asides:
一栏添加asides/category_list.html
(或custom/asides/category_list.html
)即可。
注意:上述步骤有一个问题,那就是如果category包含中文的话生成的侧边栏链接会是404页面(因为链接中不能包含中文),需要将category_list_tag.rb
文件中第11行代码里的category_url
改成category.to_url.downcase
,该代码会将中文转换成拼音。
另外,上面代码中第4行{% category_list %}
若想在网页上正确显示必须使用{% RAW %}
your_content{% ENDRAW %}
(将大写改成小写)。这是markdown里强制显示原始字符串而不进行解释的语法
2. 首页文章缺省显示
只需要在每篇你写的markdown格式的博文中在你想要在首页显示的文字后面加上<!--more-->
即可。
3. 设置链接默认在新窗口打开
在\source\_includes\custom\head.html
文件中添加如下代码:
1
2
3
4
5
6
7
8
9
10
11<script>
function addBlankTargetForLinks () {
$('a[href^="http"]').each(function(){
$(this).attr('target', '_blank');
});
}
$(document).bind('DOMNodeInserted', function(event) {
addBlankTargetForLinks();
});
</script>
4. 在首页添加选项卡
首先运行rake new_page['about']
,在source
目录下会新生成一个about
目录,里面包含一个index.markdown
文件。编辑该文件,然后运行rake generate
将会在public
目录下生成一个对应的index.html
文件。然后编辑\source\_includes\custom\navigation.html
文件,即可将生成的about页面链接添加到首页选项卡。
5. 添加disqus评论功能
只需要编辑_config.yml
中相应部分即可。具体操作为在_config.yml
文件中对应位置填写自己的账号。
6. 添加访客计数功能
我采用了Flag Counter,直接去官网生成html代码,然后拷贝到source\_includes\asides\flag_counter.html
文件(需新建),最后在_config.yml
中default_asides:
一栏添加asides/flag_counter.html
即可。
7. 优化加载速度
由于国内墙的原因,请求墙外网站资源的速度极慢,因此需要删除某些用到国外网站资源的功能。具体如下:
1.
将\source\_includes\head.html
文件中的google的jquery脚本地址改成百度的。
2. 将\source\_includes\custom\head.html
文件中的google
font请求注释掉。
3. 将_config.yml
文件中的twitter内容注释掉。