将类对象从ruby传递给Liquid(通过Jekyll)

时间:2015-05-07 23:03:03

标签: ruby jekyll liquid

澄清更新。

我删除了原来的问题,因为它令人困惑。也许这个更好?

我目前有类似的东西(为简洁而简化):

module Jekyll
    module TOCGenerator
        def toc(html)
            ...via nokogiri, get all <h3> tags, make table of contents entry
            for each. 
        end
        def contentWithTocAnchorLinks(html)
            ...make "back to top" anchor links under each <h3> tag that will
            take the user back up to the table of contents 
        end
    end
end

然后在模板中:

<section>{{ content | toc }}</section>
<section>{{ content | contentWithTocAnchorLinks }} </section>

这很好用,但看起来很草率。我还尝试将toccontentWithAnchorLinks填充到一个数组中,然后执行{{ content | tocArray | first }}这样的工作,但也工作得很好(但在某些情况下没有表格)内容,这是令人困惑的)。无论如何,我希望能做的是这样的事情:

{% capture toc_content %}{{ content | toc_generate }}{% endcapture %}
<section> {{ toc_content.toc }} </section>
<section> {{ toc_content.content }}</section>

Jekyll一直这样做,就像{{ page.title }}一样,但我不知道如何复制它。我只假设某个Ruby类涉及某个地方。

这更有意义吗?

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,您希望解析内容,从中获取一些客户信息,并呈现内容表。

从信息架构的角度来看,您应该以原子方式存储客户数据。为此,Jekyll为您提供data filescollections,对您的情况非常有帮助。

如果你需要对你的&#34;对象&#34;进行一些基本的转换。您可以使用liquidjekyll过滤器。