Jekyll отлаживает или печатает все переменные

Я хочу пик в мозгу Джекила и посмотреть, что происходит, в php у вас get_defined_vars, поэтому я попытался сделать что-то похожее на это:

      {% for local_variable in local_variables %}
      <p> {{ local_variable }} </p><br>
      {% endfor %}

Какой выход ничего нет. Я слишком стараюсь? Есть ли какой-нибудь метод в рубине или jekyll для этого? Я просто хотел бы сориться и убедиться, что все установлено правильно и, возможно, узнать о переменных, о которых я не знаю.

Ответы

Ответ 1

С Jekyll 2.x вы можете использовать этот плагин.

Это позволяет вам сделать что-то вроде {{ site | debug }}.

С Jekyll 3 у вас есть {{ variable | inspect }}.

Ответ 2

inspect не позволяет вам заглядывать внутрь переменных, где jsonify делает именно это.

{{ variable | jsonify }}

Не нужно никаких плагинов.

Пожалуйста, имейте в jsonify что jsonify будет использовать столько памяти, сколько нужно для своей работы без каких-либо конкретных ограничений. Скажем, если у вас есть сотни постов или страниц, и вы хотите jsonify их все сразу, это может работать не так, как вы ожидаете. В худшем случае система может выйти из ОЗУ и перестать отвечать на запросы. Осуществлять должную осторожность.

Ответ 3

Другие ответы не касаются части вопроса "все переменные".

Хотя Jekyll не предлагает эквивалент get_defined_vars, в документации объявляются все доступные глобальные переменные (которые на данный момент представляют собой site, page, layout, content и paginator).

Поэтому вы можете отлаживать/печатать все переменные с помощью ряда jsonify фильтра jsonify (фильтрация также jsonify с помощью escape поскольку некоторые из них будут содержать HTML):

<pre>
    site: {{ site | jsonify | escape }}
    page: {{ page | jsonify | escape }}
    layout: {{ layout | jsonify | escape }}
    content: {{ content | jsonify | escape }}
    paginator: {{ paginator | jsonify | escape }}
</pre>