【发布时间】:2017-04-05 09:19:25
【问题描述】:
我正在运行一个 Jekyll 站点,它使用 JSON 作为我的 _data 文件夹中的数据。我像平常一样循环文件,像{% for item in site.data.resources.items %} 这样的事情就好了。但是,我想解析字符串中的 YAML 前端内容。
例子:
\n---\nblog: http://google.com\nbackground-img: http://www.ew.com/sites/default/files/i/2013/07/23/Dumb-and-Dumber.jpg\nbuttonText: Download\n---\n
我怎样才能让 Liquid 在我的 Jekyll 站点中解析这个,以便我可以像这样使用它:
<a href="{{blog}}"><img src="{{background-img}}>Image</a>
还是类似的?
编辑:澄清一下,该字符串是我通过 ajax 调用检索的文本文件中的前置格式。所以那个字符串是我得到的响应,格式不会改变。我希望 Liquid 能够以某种方式解析这个字符串并寻找一个前端类型的格式。如果没有,我将恢复我的 JavaScript 方法。
【问题讨论】:
-
你是在问如何使用 yaml front matter 来选择你的数据项?
-
我不是开发人员,但
background-img和buttonText是该结构中blog项的子键值对吗?如果是这样,可能类似于前面的条目item: blog和内容<a href="{{ site.data.resources.items.[page.item] }}"><img src="{{site.data.resources.items.[page.item].background-img}}>Image</a>。是这个意思吗? -
你的frontmatter到底是什么样的?那个长字符串实际上是你的frontmatter中的一个值? “包含”运算符会起作用吗?比如,{% if page.url contains "nbackground-img" %} background-img {% endif %}。目前尚不清楚您的设置到底是什么。
-
@TomJohnson 澄清一下,该字符串是我通过 ajax 调用检索的文本文件中的前文格式。所以那个字符串是我得到的响应,格式不会改变。我希望 Liquid 能够以某种方式解析这个字符串并寻找一个前端类型的格式。如果没有,我将恢复我的 JavaScript 方法。
-
@TBB 不,它们不是子 k-v 对。我没有格式化它,因为它只是一个字符串,这就是它在我的 JSON 文件中的方式。
标签: yaml jekyll liquid yaml-front-matter