8

カテゴリに基づいてナビゲーション メニューを生成するために pelican jinja2 テンプレートを使用しています。ページの順序を制御する方法、または少なくとも一覧表示する最初のページを選択できるようにする方法が必要です。

{% for a in articles %}
     {% if a.category == category %}
         <li><a href="{{ SITEURL }}/{{ a.slug }}">{{ a.title }}
     {% endif %}
{% endfor %}

特定の記事ページを最初に作成するにはどうすればよいですか。ソースはマークダウン形式です。

4

5 に答える 5

12

Pelican 3.5 では、記事とページの順序付けの組み込みサポートが導入されます。pelicanconf.py で、どのメタデータ属性の記事とページをソートするかを定義できます。2 つの変数は次のとおりです。

ARTICLE_ORDER_BY = 'attribute'
PAGE_ORDER_BY = 'attribute'

これが正しく機能するには、次のことを確認する必要があります。

  • すべてのページ/記事は指定された属性を定義します。そうしないと、ページ/記事クラスにこの属性がないというコンパイラ エラーが発生します。
  • 属性は常に同じ数の文字を使用します。したがって、値 1、10、および 100 は正しい順序を生成しませんが、001、010、および 100 は正しい順序を生成します。

そのインフラストラクチャが整っていれば、コードを変更しなくても記事を正しい順序で出力できるはずです。

于 2014-09-22T20:19:36.600 に答える
7

Pelican のカスタム ページ メタデータと Jinja2 の組み込みの並べ替えフィルターを使用して、並べ替えを行うことができます。

テンプレートの例:

{% for pg in PAGES|sort(attribute='sortorder') %}
    <li{% if pg == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ pg.url }}">{{ pg.title }}</a></li>
{% endfor %}

ページのメタデータの例:

title: User's Manual
date: 2014-06-11 15:11
sortorder: 20
于 2014-06-11T23:19:06.017 に答える