web-dev-qa-db-ja.com

ジキルのポストオーダーを調整するには?

私は jekyll-now をテーマにしたJekyllベースのブログを始めました。私はJekyllとその動作(特にLiquid)が初めてです。新しい投稿は次のようにする必要があることを理解しています:2014-10-04-Hello-World.md。でも、どうやって注文したらいいのかよくわかりません。

私が最初に思ったのは、日付順に並べられるため、同じ日付の2つの投稿がランダムに並べられるということです。しかし、そうではありませんか?投稿を時系列で並べ替える方法はありますか? OR少なくともポストアーカイブページがありますか?

31
Koxzi

Jekyllの公式ドキュメントに、基本的な投稿アーカイブページを作成する方法の例があります。
投稿のインデックスを表示

おまけ:よりきれいなアーカイブページ(年または年/月でグループ化)については、 この回答 を参照してください。


あなたが正しい、私はそれが投稿がどのように並べられているかを言うドキュメントでは何も見つけることができませんが、実際にはジキルはします年代順に並べます、最初に最新の投稿を表示します(上記でリンクした例を試してみるとわかります)。

Liquid documentation によると、逆の方法で(最も古い投稿が最初に)並べ替えるには、reversedキーワードを使用できます。

{% for post in site.posts reversed %}

しかし、同じ日付の2つの投稿がどのように並べられるかわかりません。私はそれほど多くの投稿を書かないので、そのような問題は一度もありませんでした:-)
自分で試してみてください。

32

同じ問題に直面し、この解決策で解決しました: https://groups.google.com/forum/#!topic/jekyll-rb/8QCIzevauS

次のように、日付フィールドを投稿のYAMLフロントマターに追加します。

date: 2010-09-15 14:40:45

例えば2014/12/31に2件の投稿がある場合は、date: 2014-12-31 00:30:00 to latest_post.md、およびdate: 2014-12-31 00:10:00からolder_post.mdに。

タイムゾーンを追加できます(例:date: 2014-12-31 00:10:00 +08:00) 必要に応じて

26
Yi-Ping Shih

私の苦労をこの投稿に記録したいので、他のユーザーの役に立つかもしれません。次の2つの変更を行う必要があります。

  1. 投稿を開いて重みを加えます。例:重量:100
  2. ソートされた投稿が必要なメニューのhtmlファイルを開きます。 Java/J2EEメニューの場合、プロジェクトのルートパスにJava.htmlファイルがあります。

次に、{% assign pages_list = pages_list | sort:"weight" %}行を次のコードに示します。これは重量でソートされます。

{% for category in site.categories %} 
  {% if category[0] contains 'Java' %} 
    <h3 id="{{ category[0] }}-ref">{{ category[0] | join: "/" }}</h3>
    <ul>
      {% assign pages_list = category[1] %}  
      {% assign pages_list = pages_list | sort:"weight" %}  
      {% include JB/pages_list %}
    </ul>
  {% endif %}
{% endfor %}
7