液体模板语言中的宏

Ell*_*ael 4 ruby liquid jekyll jekyll-extensions github-pages

我正在使用Jekyll,它使用Liquid Template语言.我过去使用过Jinja模板,它有一个的概念(只是一个命名函数).Liquid是否具有提供同等功能的东西?如果没有,是否有一些Jekyll插件可以扩展Liquid来提供它?

Eri*_*pie 8

您可以创建接受参数的包含.这不是宏观,但它是我已经成功地用在GitHub上的页面.

有关管理包含和使用参数的更多详细信息和提示,请参阅Jekyll文档.

这是一个例子:

_includes/email_link.html

<a href="mailto:{{ include.user.email_address }}"
   title="Email {{ include.user.name }}">
    <i class="fa fa-fw fa-envelope"></i>
</a>
Run Code Online (Sandbox Code Playgroud)

about.md

---
layout: page
title: About
---
{% include email_link.html user=site.users.erik %}
Run Code Online (Sandbox Code Playgroud)

_config.yml

users:
    erik:
        name: Erik
        email_address: erik.gillespie@wizbang.com
Run Code Online (Sandbox Code Playgroud)

  • 我记得这里有一些问题,其中最大的问题是包含没有限制范围,因此在包含中更改的变量将在包含之后保持更改。 (3认同)

Dav*_*uel 2

这正是Jekyll 标签插件的用途。

  • OP 可能不知道 GitHub Pages 上的可用插件是有限的,所以我认为有必要指出这一点。如果 OP *按照标签所示*使用 GitHub Pages,那么你的答案将不起作用,如果尝试过,会引起很多麻烦,因此会投反对票。 (2认同)