Ste*_*ion 8 ruby jekyll jekyll-extensions
例如,假设我想生成这个数组:
random_numbers = []
1000.times { random_numbers << rand(2) }
Run Code Online (Sandbox Code Playgroud)
并将其传递给模板,以便我可以从Liquid访问它:
{% for num in random_numbers %}
... here I'd use logic around the number to generate something.
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
注意:我想在Ruby中动态生成数组.在模板中,我想要一个我可以迭代的数组,我不想要一个字符串.
怎么能在杰基尔做到这一点?
好吧,你需要一个插件:https://github.com/mojombo/jekyll/wiki/Plugins
如果您乐意将逻辑放在插件中,可以在自定义Liquid :: Tag中进行,但您的要求听起来像是需要一个生成器,这没关系.我只是把它扔在一起,它似乎像你一样工作:
module Jekyll
class RandomNumberGenerator < Generator
def generate(site)
site.pages.each do |page|
a = Array.new
1000.times { a << rand(2) }
page.data['random_numbers'] = a
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
应该放在你的_plugins /目录中(如rand.rb或其他东西).在模板中,您可以执行此操作
<ul>
{% for number in page.random_numbers %}
<li>{{ number }}</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
或者不管你喜欢什么.我假设你想为每个页面设置一组不同的数字 - 但如果你想为整个网站设置一套数字,你可以轻松地生成一次数组,然后将它附加到网站对象或每个页面.
这不适用于Github Pages上的自动生成(由于显而易见的原因,它们不允许自定义插件),但这应该不是问题 - 即使你使用的是Github Pages,也有很多解决方法.
| 归档时间: |
|
| 查看次数: |
550 次 |
| 最近记录: |