3

Jekyllを使用して新しいブログを作成しています。下にLiquidを使用しています。

Jekyll は、特定の「変数」を定義します: sitecontentpagepostおよびpaginator。これらの「変数」には、いくつかの「メンバー」があります。たとえば、post.dateは投稿の日付を返し、 はpost.urlその URL を返します。

私の質問は、別の変数をメンバー名として使用して、変数のメンバーにアクセスできますか?

次の例を参照してください。

{% if my_condition %}
  {% assign name = 'date' %}
{% else %}
  {% assign name = 'url' %}
{% endif %}

またはという変数がnameあります。'date''url'

post[name]ルビーに相当する液体を作成するにはどうすればよいですか?

私が見つけた唯一の方法は、forループを使用して のすべてのペア (キーと値) を反復処理することですpost。注意してください!それは非常に恐ろしいです:

{% for property in post %}
  {% if property[0] == name %}
    {{ property[1] }}
  {% endif %}
{% endfor %}

ああ!もっと良い方法があることを願っています。

ありがとう。

4

2 に答える 2

4

何を考えていたのかわからない。

post[name]完全に有効な液体構造です。したがって、上記の for-if コードは次のように置き換えることができます。

{{ post[name] }}

私はこれを試したと思っていましたが、どうやらそうではありませんでした。ああ!

Liquid は、さらに洗練された構造を認めています。次のものは構文的に正しく、 、 、 などが正しく定義されている場合に期待される値をpost返しelementますcategories

{{ post[element.id].categories[1].name }}

私はLiquidに非常に驚いています。断固として調査を続けます。

于 2010-06-09T15:25:34.717 に答える
1

実際、これは私にはうまくいきませんでした。さまざまな組み合わせを試しましたが、最終的にうまくいったのは

<!-- object myObj.test has the string value "this is a test" -->
{% assign x = 'test' %}
{{ myObj.[x] }}

出力: これはテストです

于 2015-12-06T02:20:19.990 に答える