2

Liquid Templatingを使用してカスタム ブロックを構築しようとしています。以下は私のコードです:

module MyModule
    module Blocks
        class MyBlock < Liquid::Block

            def initialize(tag, markup, tokens)
                super
                @tag = tag
                @tokens = tokens
                @markup = markup
            end

            def render(context)
                p @tokens
            end

        end
    end
end

Liquid::Template.register_tag('myblock', MyModule::Blocks::MyBlock)

私のテンプレートには、次のコードがあります。

{% for i in mypages %}
    {% myblock %} {{ i.title }} {% endmyblock %}
{% endfor %}

myblock私の質問は、タグ間で渡されるすべてのコンテンツをどのように取得するかです。つまり、の機能をi.title利用できるようにする方法です。これをキャプチャすると思いましたが、出力するとmyblockrendertokensputs tokens[]

ありがとうございました

4

1 に答える 1

1

renderメソッドはLiquid::Block、開始タグと終了タグの間のテキストを返します。したがって、render メソッドを次のように変更するだけです。

def render(context)
  p super
end
于 2013-11-09T19:47:19.097 に答える