0

在 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.rbOctopress 附带的也定义了to_liquid方法class Post,所以我在其中添加了该full_path => File.join(@base,@name)行并且它可以工作!我很困惑。

所以我的问题是,为什么我的to_liquid方法没有被调用?

更新

将 jekyll 从 0.12.0 升级到 1.2.1 后,它神奇地工作了......

4

1 回答 1

1

您可以查看Post#permalink 文档。它应该做你想做的事,而不必创建新的插件。

(如果我误解了你,也许contains_dir是你正在寻找的方法

于 2013-10-08T21:24:22.947 回答