2015-05-29 122 views
4

我正在使用Jekyll,它使用液體模板語言。我過去使用過Jinja模板,它有一個macro(只是一個命名函數)的概念。 Liquid是否提供了可提供相同功能的東西?如果沒有,是否有一些Jekyll插件可以擴展Liquid來提供它?液體模板語言中的宏

+0

因爲它看起來並不像Liquid中存在的那樣,所以我打開了[Github上的問題](https://github.com/Shopify/liquid/issues/580)。 –

回答

2

這正是Jekyll tags plugins製造的。

+0

有關[支持的Jekyll插件](https://help.github.com/articles/using-jekyll-plugins-with-github-pages/)和GitHub Pages [插件依賴關係](https://頁面)的GitHub幫助.github.com/versions /)沒有列出Jekyll標籤插件,所以不幸我不認爲這個解決方案可以在GitHub頁面上運行。 –

+0

那麼你爲什麼要討論插件?儘管如此,在github頁面上,@ erik-gillespie解決方案就是其中之一。並感謝您的反對票。 –

+0

OP可能不知道GitHub頁面上的可用插件是有限的,所以我認爲它有針對性的指出。如果OP *是*使用GitHub頁面作爲標籤建議,那麼你的答案將無法正常工作,如果嘗試,將會導致很多頭痛,因此downvote。 –

7

您可以創建接受參數的包含。這不是相當於一個宏,但它是我在GitHub頁上成功使用的。

有關管理包括和使用參數的更多詳細信息和提示可在in the Jekyll documentation找到。

下面是一個例子:

_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> 

about.md

--- 
layout: page 
title: About 
--- 
{% include email_link.html user=site.users.erik %} 

_config.yml

users: 
    erik: 
     name: Erik 
     email_address: [email protected] 
+0

這裏有一些小問題,我記得,其中最大的包括沒有限制範圍,所以包含內變化的變量在包含之後將保持改變。 –