Jekyll插件标签

时间:2013-06-29 20:43:51

标签: ruby jekyll github-pages jekyll-extensions

我为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

我怎么称呼这个?

由于

1 个答案:

答案 0 :(得分:1)

您可以将插件转换为液体过滤器,如下所示:

module MyFilters
  def obfuscate_email(input)
    # your code here
  end
end

Liquid::Template.register_filter(MyFilters)

这种语法应该有效:

{{site.owner.email | obfuscate_email}}