我为Jeklly写了一个简单的插件,基本上是我在site.owner.email
中定义的_config.yml
并对其进行模糊处理,然后将其放在我的“关于”页面上。我有以下代码:
_plugins / obfuscate_email.rb
class ObfuscateEmail < Liquid::Tag
def initialize(tag_name, text, tokens)
@text = text
super
end
def render(context)
output_array = []
char_array = @text.split('')
char_array.each do |char|
output = "[dot]" if char == '.'
output = "[at]" if char == '@'
output = "[plus]" if char == '+'
if output
output_array << output
else
output_array << char
end
end
output_array.join
end
Liquid::Template.register_tag "obfuscate_email", self
end
在这种情况下使用它:
{% obfuscate_email site.owner.email %}
会给出这样的结果:site[dot]owner[dot]email
,但我期待这样的事情返回owner[dot]something[at]gmail[dot]com
我怎么称呼这个?
由于
答案 0 :(得分:1)
您可以将插件转换为液体过滤器,如下所示:
module MyFilters
def obfuscate_email(input)
# your code here
end
end
Liquid::Template.register_filter(MyFilters)
这种语法应该有效:
{{site.owner.email | obfuscate_email}}