Ruby jekyll调试或打印所有变量
我想进入Jekyll的大脑,看看在php中发生了什么,所以我试着做一些类似的事情:Ruby jekyll调试或打印所有变量,ruby,debugging,jekyll,Ruby,Debugging,Jekyll,我想进入Jekyll的大脑,看看在php中发生了什么,所以我试着做一些类似的事情: {% for local_variable in local_variables %} <p> {{ local_variable }} </p><br> {% endfor %} <pre> site: {{ site | jsonify | escape }} page: {{ page | jsonify
{% for local_variable in local_variables %}
<p> {{ local_variable }} </p><br>
{% endfor %}
<pre>
site: {{ site | jsonify | escape }}
page: {{ page | jsonify | escape }}
layout: {{ layout | jsonify | escape }}
content: {{ content | jsonify | escape }}
paginator: {{ paginator | jsonify | escape }}
</pre>
{局部变量%中的局部变量%}
{{local_variable}}
{%endfor%}
它什么也不输出。我是不是太努力了?在ruby或jekyll中是否有这样的方法?我只是想四处看看,确保一切都设置正确,并尽可能找出我不知道的变量。对于Jekyll 2.x,您可以使用 它允许您执行类似于
{{site | debug}}
的操作
自从Jekyll3之后,您就有了
{{variable | inspect}
inspect
不允许查看内部变量,而jsonify
正是这样做的
{{ variable | jsonify }}
不需要插件
请注意,
jsonify
将在不受任何特定限制的情况下使用所需的内存。比如说,如果您有数百篇文章或页面,并且希望同时将它们都jsonify化,那么这可能不会像您预期的那样起作用。最坏的情况是,系统可能会耗尽RAM并失去响应。谨慎行事。其他答案没有涉及问题的“所有变量”部分
尽管Jekyll没有提供与之等价的get\u defined\u vars
,但它确实声明了(此时是site
,page
,布局
,内容
,以及paginator
)
因此,您可以使用一系列jsonify
调用调试/打印所有变量(也可以使用escape
进行过滤,因为其中一些将包含HTML):
地点:{site | jsonify | escape}
页面:{page | jsonify | escape}
布局:{layout | jsonify | escape}
内容:{content | jsonify | escape}
paginator:{{paginator|jsonify|escape}
要打印变量,可以在任何模板中插入:
var obj=JSON.parse(decodeURIComponent({{site | jsonify | uri_escape}}”);
var prettyJson=JSON.stringify(obj,null,4);//打印精美的JSON(缩进4个空格)。
document.getElementById(“jekyll调试”).textContent=prettyJson;
将site
(在{{site | jsonify | uri_escape}}}
中)更改为要打印的任何变量
然后,您将能够在生成的页面中看到整齐排列的变量。大概是这样的:
对于未来,谁能看到这一页 我写了一个包来做这类工作。在命令行中安装它
jekyll-liquid-debug -f YOUR_LIQUID_FILE.liquid
然后,您可以在终端中调试liquid
文件,而无需一次又一次地构建整个站点
通过使用
它还有其他用途,请进一步查看~
jekyll-liquid-debug -f YOUR_LIQUID_FILE.liquid