我想知道Liquid模板引擎是否允许访问模板中的Ruby库。我正在使用Jekyll制作网页界面的原型,并希望使用Faker来生成逼真的内容,例如名称等。
我可以开始编写Liquid插件,在此之前,我想我最好检查一下是否有一种方法可以将Ruby库暴露给Liquid模板。
发布于 2017-11-19 20:13:13
你可以从Jekyll插件中访问任何其他模块,就像访问任何其他常规Ruby文件一样,在这种情况下,从插件使用Faker是没有问题的。
例如,使用Faker创建一个使用标签生成随机名称的插件:
require 'faker'
module Jekyll
class RandomnameTag < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text
@name = Faker::Name.name
end
def render(context)
"#{@text} #{@name}"
end
end
end
Liquid::Template.register_tag('render_name', Jekyll::RandomnameTag)然后您可以像这样使用它:<p>{% render_name this is a faker name: %}</p> outputting:this is a faker name: Ulises Bergstrom。
https://stackoverflow.com/questions/47374461
复制相似问题