0

site.owner.email基本的に、私が定義した my を取得し_config.ymlて難読化し、About ページに配置するJeklly 用のシンプルなプラグインを作成しました。次のコードがあります。

_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

これをどのように呼ぶと思いますか?

ありがとう

4

1 に答える 1

1

次のように、プラグインを液体フィルターに変換できます。

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

Liquid::Template.register_filter(MyFilters)

そうすれば、この構文が機能するはずです。

{{site.owner.email | obfuscate_email}}
于 2013-06-29T21:07:12.847 に答える