在 Octopress 中,我试图~/projects/site/source/_posts/2012-01-01-something.markdown
通过扩展Jekyll:Post
类来获取帖子的完整文件路径(类似于 )。
module Jekyll
class Post
alias_method :original_to_liquid, :to_liquid
def to_liquid
# test if this function is actually called
puts "hello"
original_to_liquid.deep_merge({
'full_path' => File.join(@base,@name)
})
end
end
end
我将此文件命名为full_path.rb
并将其放入plugins
文件夹中。奇怪的是,我的to_liquid
函数从未被调用,因为hello
消息没有出现。
更奇怪的是,我发现date.rb
Octopress 附带的也定义了to_liquid
方法class Post
,所以我在其中添加了该full_path => File.join(@base,@name)
行并且它可以工作!我很困惑。
所以我的问题是,为什么我的to_liquid
方法没有被调用?
更新
将 jekyll 从 0.12.0 升级到 1.2.1 后,它神奇地工作了......