2016-12-02 6 views
6

ペリカンが新しくなった。私は2つのカテゴリ:ブログとプロジェクトがあるように自分のサイトを構造化しています。ホーム、ブログ、プロジェクトの3つのメニューボタンがあります。 base.htmlテンプレートファイルを編集して、blog/またはそのサブディレクトリにある場合にブログボタンがアクティブになり、projects/またはそのサブディレクトリにある場合はプロジェクトボタンがアクティブになります。私がbase.htmlにアクセスして、現在のページの相対URLを与える変数があれば、それを/で分割し、パスの最初のディレクトリを取得できます。私は検索したが、現在のページの相対URLの変数を見つけることができないようだ。組み込みの変数か、私が探しているもののカスタム変数を作る方法がありますか?ペリカンのテンプレートの現在のページのURLの変数

答えて

6

私もペリカンに慣れていないので、塩の粒で次のアドバイスを受けてください。

documentationに述べたように、この変数は、あなたの現在のファイルの名前を与える:

{{ output_file }} 

例えば:私のページのためのメニュー項目を生成するとき、私はの「save_as」プロパティに対してチェックすることができます

{% if output_file == p.save_as %}active{% endif %} 

しかし、あなたの場合には、それは例えば次のようになります。正確対応するメニュー項目をハイライト表示するページそれを確認するには十分なものです。現在のページは、ブログメニュー項目を強調表示するための記事です(「Blog」にはすべての記事が含まれていることを前提としています)。あなたのプロジェクトは、「ページ」で作られている場合は、単にそれらのコンテンツタイプの主要変数に対してチェック、

{% if article %}class="active"{% endif %} 

:については

{% if page %}class="active"{% endif %} 

チェックすることにより、例えば、変数「物品」が存在する場合ページ名の内容を確認することができます:

{% if page_name == 'index' %}class="active"{% endif %} 
+2

あなたの答えが私を助けてくれたか分かりません!私は記事やページではないかどうかを調べる方法を探していました。あなたの 'if page_name'がまさに私が必要としていたものです! – matteo

関連する問題