为octopress文章加入原文链接

给博文加入原文链接的作用不消多说。由于在网上找的到诸篇文章或年久有变,或有重要的错误,因此自己总结记录一下,以作备忘。

增加post_footer_filter.rb插件

此部分网上有多个内容相同的博文,但按其中内容增加插件后,在执行rake generate时会出现类似post_filters插件不存在之类的错误。

检查了一下,2.0版本的octopress中没有post_filters.rb这个插件,因此需要对插件进行修改。最终在疑似插件首发引用者的github中找到了一个更新的插件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#
# post_footer_filter.rb
# Append every post some footer infomation like original url
# Kevin Lynx
# 09.01.2014
#
require 'octopress-hooks'
module AppendFooterFilter
def self.append(post)
author = post.site.config['author']
url = post.site.config['url']
pre = post.site.config['original_url_pre']
post.content + %Q[<p class='post-footer'>
#{pre or "original link:"}
<a href='#{post.full_url}'>#{post.full_url}</a><br/>
written by <a href='#{url}'>#{author}</a>
&nbsp;posted at <a href='#{url}'>#{url}</a>
</p>]
end
class PostFilters < Octopress::Hooks::Post
def pre_render(post)
post.content = AppendFooterFilter::append(post)
end

复制时没有加缩进,想看原版可以到此处:https://github.com/kevinlynx/codemacro-source/blob/master/plugins/post_footer_filter.rb

此后在文章结尾处就有了原文链接信息了

对显示信息的定制

从插件内容中可以看出,默认显示在链接之前的“original link:”可以通过original_url_pre参数指定。只需要在_config.yml中加入

original_url_pre: "显示信息"

从插件内容中可以看出,其它各项取自_config.yml已有的变量,因此可以通过自己定义变量或直接修改插件内容来改变显示信息。

注意:为octopress每篇文章添加一个文章信息一文中,误把original_url_pre写成了origional_url_pre,导致无法正确显示。

将链接信息与文章内容区分出来

默认状态下,加入的链接信息与文章内容在显示上无法区分。可以在sass/custom/_styles.scss中加入一行:

1
.post-footer{margin-top:10px;padding:5px;background:none repeat scroll 0pt 0pt #eee;font-size:90%;color:gray}

注意 网上不止一处把文件名写成了_style.scss。很无语。

相关文章

为octopress每篇文章添加一个文章信息,其它文章都引用了它。

两个犯了同样错误的文章:

http://biaobiaoqi.github.io/blog/2013/07/10/decorate-octopress/

http://812lcl.com/blog/2013/10/26/octopressce-bian-lan-ji-ping-lun-xi-tong-ding-zhi/

posted @ 2015-02-23 19:09  一只红松鼠  阅读(201)  评论(0编辑  收藏  举报