如何在Jekyll中手动处理Liquid标签

3
我正在创建一个Jekyll主题,其中所有实现前置属性“indexable”的用户页面都会在主要着陆页中呈现。因此,我有“frontpage layout”。
---
layout: root
---

{% assign custom_pages = site.pages | where: 'indexable', true | sort: 'priority' | reverse %}

{% include header.html %}

{% for c_page in custom_pages %}
<div class="container {{ c_page.class | default: '' }}" >
    {{ c_page.content }}
</div>
{% endfor %}


{% include footer.html %}
{% include javascripts.html %}

一个将被处理的示例页面:
---
layout: page
title: Us
permalink: /us/
indexable: true
priority: 10
class: us-page
---

<div class="row">
    {% for member in site.data.members %}
    <div class="col-sm-6">
        <div class="card card-block">
            <img src="{{ member.gravatar }}?s=256" alt="Avatar">
            <h4 class="card-title text-xs-center">{{ member.name }}</h4>
            <p class="card-text">{{ member.description | markdownify }}</p>
            <p class="card-text">
                {% for tag in member.expertise_areas %}
                    <span>{{ tag }}</span>
                {% endfor %}
            </p>
            <a href="{{ member.blog }}" class="btn btn-primary" role="button" >Mi blog</a>
        </div>
    </div>
    {% endfor %}
</div>

然而,液态标签出现未经处理的情况,就像相同的输出{% raw %}会产生的一样。是否有一种方法可以通过{{ c_page.content | magic_here }}手动渲染这些标签?
编辑。屏幕截图: enter image description here 编辑2
-

主题存储库

-

Web实现


你可以使用Markdown,但不能使用Liquid。你的问题可能出在其他地方,但如果没有完整的代码,很难发现问题。有任何代码存储库吗? - David Jacquel
@DavidJacquel 是的,虽然现在设置环境可能有点繁琐。我有两个仓库,一个是主题,另一个是网站实现。在后者中,我已经本地添加了 gem。无论如何,我正在编辑问题以链接到两个仓库。 - sonirico
1个回答

3

虽然我仍然不知道问题是否在我的代码中,但我想分享一下我是如何解决它的。基本上我创建了一个名为liquefy的过滤标签,将其放入了一个.gem中,它的主要任务是接受一个包含Markdown或Liquid语法的文本作为参数并进行解析和渲染。


1
我认为你应该使用.output而不是.content(来源:http://jekyllrb.com/docs/collections/#documents)。然而,在我的情况下,它没有起作用,因为我试图在文章中包含来自集合的信息,而帖子和页面在集合之前呈现。因此,我使用了.content与您的插件,它完美地工作了。谢谢! - theJoi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接