ブログの投稿にHTMLスニペットを含め、コードを1か所にまとめたいと思います。フレームワークを熟読した後、私はこれを機能させることができました:
source
_includes
custom
foo.html
{% include custom/foo.html %}
私の質問:foo.htmlに引数を渡す方法はありますか?いくつかの文字列を渡してフォーマットされた方法で出力したいだけで、何が欠けているのか理解できません。
御時間ありがとうございます。
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>
できません。ただし、これを行うためにテーマが行うことなど、他の方法を使用できます。
まず、必要な書式設定されたスタイルを設定します。custom/foo.html
たとえば、次のように追加customfooter
しsource/_includes/custom/footer.html
ます。
<p>
Copyright © {{ 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.
これがあなたを助けることを願っています。