在 YAML 变量中包含 jekyll/liquid 模板数据?

2024-02-20

我正在使用 Markdown 文件的 YAML 标题来添加excerpt变量到我可以在其他地方使用的博客文章。在其中一个摘录中,我通过 Markdown 链接标记引用了之前的一篇博客文章,并且使用了 Liquid 模板数据变量{{ site.url }}代替网站的基本 URL。

所以我有类似的东西(稍微修剪一下)

--- 
title: "Decluttering ordination plots in vegan part 2: orditorp()"
status: publish
layout: post
published: true
tags: 
- tag1
- tag2
excerpt: In the [earlier post in this series]({{ site.url }}/2013/01/12/
decluttering-ordination-plots-in-vegan-part-1-ordilabel/ "Decluttering ordination
plots in vegan part 1: ordilabel()") I looked at the `ordilabel()` function
----

然而,jekyll 和 Maruku md 解析器不喜欢这个,这让我怀疑你不能在 YAML 标头中使用液体标记。

是否可以在 jekyll 处理的页面的 YAML 标头中使用液体标记?

  1. 如果是,我在所示示例中做错了什么?
  2. 如果是not允许的话,还有谁能达到我的目的呢?我目前正在我的笔记本电脑上开发我的网站,并且不想对基本 URL 进行硬编码,因为当我准备好部署时它必须更改。

我从 Maruku 得到的错误是:

| Maruku tells you:
+---------------------------------------------------------------------------
| Must quote title
| ---------------------------------------------------------------------------
|  the [earlier post in this series]({{ site.url }}/2013/01/12/decluttering-o
| --------------------------------------|-------------------------------------
|                                       +--- Byte 40

and

| Maruku tells you:
+---------------------------------------------------------------------------
| Unclosed link
| ---------------------------------------------------------------------------
| the [earlier post in this series]({{ site.url }}/2013/01/12/decluttering-or
| --------------------------------------|-------------------------------------
|                                       +--- Byte 41

and

| Maruku tells you:
+---------------------------------------------------------------------------
| No closing ): I will not create the link for ["earlier post in this series"]
| ---------------------------------------------------------------------------
| the [earlier post in this series]({{ site.url }}/2013/01/12/decluttering-or
| --------------------------------------|-------------------------------------
|                                       +--- Byte 41

今天我遇到了类似的问题。作为解决方案,我创建了以下简单的 Jekyll 过滤器插件,它允许扩展嵌套的液体模板(例如 YAML 前面的液体变量):

module Jekyll
  module LiquifyFilter
    def liquify(input)
      Liquid::Template.parse(input).render(@context)
    end
  end
end

Liquid::Template.register_filter(Jekyll::LiquifyFilter)

可以通过将过滤器放置在站点根目录的“_plugins”子目录中来将它们添加到 Jekyll 站点中。上面的代码可以简单地粘贴到 yoursite/_plugins/liquify_filter.rb 文件中。

之后的模板就像...

---
layout: default
first_name: Harry
last_name: Potter
greetings: Greetings {{ page.first_name }} {{ page.last_name }}!
---
{{ page.greetings | liquify }}

...应该呈现一些输出,例如“问候哈利·波特!”。该扩展也适用于更深的嵌套结构 - 只要液化过滤器也在内部液体输出块上指定。像 {{ site.url }} 这样的东西当然也可以。

Update- 看起来现在可以作为 Ruby gem 使用:https://github.com/gemfarmer/jekyll-liquify https://github.com/gemfarmer/jekyll-liquify.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 YAML 变量中包含 jekyll/liquid 模板数据? 的相关文章

随机推荐

  • 使用 Swift 3 进行 JSON 序列化

    我正在尝试通过从 JSON 数据填充数组来填充表 我正在使用下面的代码 但不断收到错误 类型 Any 没有下标成员 在以下代码行上 self tableData append jsonResult i title as String sel
  • UWP - 仅在设计器中应用的字体

    我的主 UWP 应用程序 Imp Dash 引用了一个类库 Imp Dash Cook 在所述类库的页面中 我有以下 XAML
  • codeigniter 活动记录嵌套查询

    我在将以下 MySQL 代码转换为 Codeigniter 活动记录查询时遇到问题 SELECT sss c country name c country code FROM SELECT gr FROM be goldrate as gr
  • 使用 Lodash 省略嵌套属性

    我正在尝试摆脱这些属性5MinuteRate and 15MinuteRate在以下对象中 var object requestsPerSecond mean 1710 2180279856818 count 10511 currentRa
  • javascript:修剪对象的所有属性[重复]

    这个问题在这里已经有答案了 有没有办法修剪对象的所有属性 换句话说 我可以改变这一点 a a b b c c To this a a b b c c 看来我无法映射对象 那么如何将函数应用于所有属性并取回对象 您可以使用Object key
  • 使用C计算目录中文件的数量

    如何在linux平台上使用C来统计目录中的文件数量 不保证此代码可以编译 而且它实际上只与 Linux 和 BSD 兼容 include
  • ContentSecurityPolicy 防止 Electron 中的获取请求

    我正在尝试构建一个发出 api 请求的电子应用程序 但是当我进行 api 调用时 出现以下错误 拒绝连接到 因为它违反了以下内容安全策略指令 default src self unsafe inline data 请注意 connect s
  • 核心数据:按关系属性排序

    我正在建立一个GitHub 上名为 AcaniChat 的 iPhone 原生消息应用程序的开源克隆 https github com acani AcaniChat 我有一个Conversation实体和一个Message实体具有sent
  • persistence.xml 不同事务类型属性

    在 persistence xml JPA 配置文件中 您可以有如下行
  • getNameCount() 实际上算什么?

    我的问题有两个部分 首先 标题是什么 Path getNameCount 方法实际计数的是什么 当您在 Eclipse 中选择一个方法时 我读到了它附带的小弹出信息 我认为这是一个合适的用法 我使用它创建的这个方法在运行时返回 5 作为 i
  • 是否可以在触发器执行之前从 SQL Server 存储过程获取输出结果集?

    我有一张主桌Din Test Procedure CREATE TABLE Din Test Procedure Emp ID INT 该表的审计表是 CREATE TABLE Din Test Procedure Audit Emp ID
  • Android 自动完成匹配选项

    我在我的应用程序中使用 AutoCompleteTextView 它提供国家 地区名称建议 我的自动完成功能会将输入的文本与建议列表中的每个单词进行匹配 例如 如果我输入两个字母 ar 我会得到 沙特阿拉伯 作为建议之一 有什么方法可以使
  • 谷歌脚本将电子邮件的收件人拉到标签中

    我有自动电子邮件警报 这些警报会进入收件箱中的标签 通过回复 也会发送给用户 通过电子邮件的 to 部分 我希望添加到我的脚本中 以提取电子邮件正文中的信息 最终 我想提取电子邮件的收件人 在 收件人 部分 并将其放入 Google 表格的
  • 如何从 Rust 发出 HTTP 请求?

    如何从 Rust 发出 HTTP 请求 我似乎在核心库中找不到任何东西 我不需要解析输出 只需发出请求并检查 HTTP 响应代码 如果有人可以向我展示如何对我的 URL 上的查询参数进行 URL 编码 那就加分了 在 Rust 中发出 HT
  • 使用图块的 html5 画布中出现不需要的线条

    我正在使用 40px 40px 的正方形在画布上绘制地图 一切都很好 直到我通过偏移画布 使用变换 滚动地图 然后 瓷砖之间突然出现了线条 请参阅下面的图片 Why 这看起来像是浮点定位 例如 您滚动到 100 5 100 5 与大多数浏览
  • 文本旁边的边框线

    我有一个 p 标签 我想要它旁边有一条边界线 p style margin left 0px font size 12px margin bottom 2px strong Categories strong p 我想在 p 标签旁边添加一
  • UITableView 单元格奇怪地消失

    来自 Marko 团队的来找您 我们遇到了一个令人难以置信的奇怪问题 其中我们的表视图单元格通常如下所示 看起来像这样 经审查 当您将 iPhone 置于睡眠状态 然后重新打开应用程序并转到放置 tableview 的 uiviewcont
  • 如何复制一系列公式值并将其粘贴到另一张工作表中的特定范围?

    我正在尝试让 Excel 宏正常工作 但在从包含公式的单元格复制值时遇到问题 到目前为止 这就是我所拥有的 它适用于非公式单元格 Sub Get Data Dim lastrow As Long lastrow Sheets DB Rang
  • Apache POI 货币数据格式

    我尝试使用 Apache POI 将数字转换为欧洲货币样式 HSSFDataFormat cf workbook createDataFormat currencyCellStyle workbook createCellStyle cur
  • 在 YAML 变量中包含 jekyll/liquid 模板数据?

    我正在使用 Markdown 文件的 YAML 标题来添加excerpt变量到我可以在其他地方使用的博客文章 在其中一个摘录中 我通过 Markdown 链接标记引用了之前的一篇博客文章 并且使用了 Liquid 模板数据变量 site u