将Jekyll Liquid变量字符串转换为_data文件路径

问题描述

我正在Github页面上构建Jekyll网站。我有一个Github操作,它以今天的时间戳将最新的每日数据传递到我的_data /文件中:

_data/
   somedata_YYYYMMDD.json

我可以通过几种方式构造变量以捕获当今数据文件文件名:

{% assign today_data = 'Now' | date: "%Y%m%d" | prepend: 'site.data.somedata_' %}

{% capture today_data %}
site.data.somedata_{{ 'Now' | date: "%Y%m%d" }}
{% endcapture %}

在这两种情况下,如果我尝试使用today_data变量,Liquid会将其解释为惰性字符串,而不是a pointer to a liquid object。因此,如果我尝试{{today_data}},则会得到字符串“ site.data.somedata_20200902”,但我希望它返回json文件内容

我咨询了其他一些问题,但是它们似乎不适用于这种情况:

解决方法

在两种情况下都几乎是一个字符串。因此很有效:

{{ 'site.data.somedata_YYYYMMDD' }}

相反,您可以执行以下操作来访问和打印对象:

{% assign today_path = 'now' | date: "%Y%m%d" | prepend: 'somedata_' %}
{{ site.data[today_path] | jsonify }}

通过这种方式,您可以访问site.data对象,并动态地构造键/路径。