【问题标题】:How to add all the shopify filters to standard liquid如何将所有 shopify 过滤器添加到标准液体中
【发布时间】:2016-02-09 08:30:09
【问题描述】:

我们在网络应用中使用了液体。我注意到 Shopify 已经实现了一些有用的过滤器,这些过滤器默认不包含在液体 gem 中。例如url_param_escape

为了测试它,我这样做了:

$irb

需要“液体” Liquid::Template.parse('{{ " & " | url_param_escape }} ').render => " & "

显然,默认情况下不包含这些过滤器。它们可以从某个地方获得吗?如果是这样,我在哪里以及如何将它们添加到解析器?否则不是一个一个地实现它们,还是它们都来自同一个模块或什么?

【问题讨论】:

标签: ruby-on-rails ruby liquid


【解决方案1】:

您可以/必须自己编写它们。它们很容易创建。这是 url_param_escape 过滤器的示例实现:

module MyApp
  module Liquid
    module Filters
      module UrlParamFilter
        def url_param_escape(thing_to_escape)
          CGI.escape(thing_to_escape)
        end
      end
    end
  end
end

然后您需要注册此过滤器,以便 Liquid 知道使用它。我通常在 config.after_initialize 内的 application.rb 中执行此操作,但如果您有很多,它可能会去一个更好的地方。这是一个例子:

config.after_initialize do
  ::Liquid::Template.register_filter(MyApp::Liquid::Filters::UrlParamFilter)
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多