2

ブログの投稿にHTMLスニペットを含め、コードを1か所にまとめたいと思います。フレームワークを熟読した後、私はこれを機能させることができました:

source
  _includes
    custom
      foo.html

{% include custom/foo.html %}

私の質問:foo.htmlに引数を渡す方法はありますか?いくつかの文字列を渡してフォーマットされた方法で出力したいだけで、何が欠けているのか理解できません。

御時間ありがとうございます。

4

2 に答える 2

1

Jekyll は静的であるため、これを行う方法はありません。定義上、あるファイルから別のファイルに渡すことができるものはすべて既知の値です。これは、サイトの生成時に定義する必要があるためです。動的な値を渡すことができないため、この種の間接化は意味がありません。静的な値を配置するだけでよいからです。

たとえば、大部分は似ているがわずかに異なる出力の 10 個のチャンクを生成するユース ケースがある場合は、プラグインを使用して、変数を使用してこれらの変更を分離するタスクを実行します。これにより、使用されるテンプレートに値を入れながら、ある程度の柔軟性が得られます。

これは、特定の href が割り当てられた twitter ブートストラップ ナビゲーション タブの生成を抽象化する Liquid タグの例です。

module Jekyll
  class XmlJsonTabsTag < Liquid::Tag
    def initialize(tag_name, markup, tokens)
      @methodname = markup.strip 
      super
    end

    def render(context)
      #wondering what this syntax is? google "here document"
      <<-HTML
        <ul class="nav nav-tabs">
            <li class="active">
                <a href="##{@methodname}-json" data-toggle="tab">JSON</a>
            </li>
            <li>
                <a href="##{@methodname}-xml" data-toggle="tab">XML</a>
            </li>
        </ul>
      HTML
    end
  end
end

Liquid::Template.register_tag('xmljsontabs', Jekyll::XmlJsonTabsTag)

@methodnameテンプレートの Liquid タグで使用する値を渡します。

{% xmljsontabs foo %}

次のようなものを出力します

<ul class="nav nav-tabs">
  <li class="active">
    <a href="#foo-json" data-toggle="tab">JSON</a>
  </li>
  <li>
    <a href="#foo-xml" data-toggle="tab">XML</a>
  </li>
</ul>
于 2013-02-24T02:19:40.213 に答える
1

できません。ただし、これを行うためにテーマが行うことなど、他の方法を使用できます。

まず、必要な書式設定されたスタイルを設定します。custom/foo.htmlたとえば、次のように追加customfootersource/_includes/custom/footer.htmlます。

<p>
  Copyright &copy; {{ site.time | date: "%Y" }} - {{ site.author }} -
  <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>
  {{ site:customfooter }}
</p>

次に、設定したい文字列を に設定し_config.ymlます。

url: http://fann.im
customfooter: My custom footer, bala bala.

これがあなたを助けることを願っています。

于 2013-02-22T03:36:26.723 に答える