1

私の Jekyll サイトには、特に RSS フィードで使用する場合に、抜粋に適していない要素がいくつかあります。これらは Liquid タグ (カスタム プラグインで実装) によって作成されるため、簡単に実行できるはずだと考えました。このようなものは賢明に思えます:

module Jekyll
  class MyTag < Liquid::Tag
    def initialize(tag_name, text, tokens)
      super
    end

    def render(context)
      if <in excerpt>
        ""
      else
        "this should not be in an excerpt"
      end
    end
  end
end

Liquid::Template.register_tag('mytag', Jekyll::MyTag)

ただし、タグが抜粋用にレンダリングされているかどうかを確認する方法がわかりません。の contentx をダンプしても、有用なものは何も明らかcontext.environmentscontext.scopesなりcontext.registersませんでした。

これどうやってするの?

4

1 に答える 1

1

JekyllまたはLiquidのレベルでの解決策はありません。ただし、かなり簡単な回避策があります。CSS を使用して問題のある要素を非表示にします。

次のようなものがあるとします。

<div class="excerpt">
  {{ post.excerpt }}
</div> 

次に、CSS を使用して要素を非表示にします。

div.excerpt {
  .footnote,.footnotes,.marginnote {
    display: none;
  }
} 

クラスは、使用する Markdown エンジン、プラグイン、およびテーマによって明らかに異なります。

于 2016-02-26T12:10:33.700 に答える