記事を固定表示したい
このサイトは「Hugo」という静的サイトジェネレーターを使って運営しています。
これまでは記事を書くたびに更新日順に記事が並ぶようになってましたが、
他のブログみたいに更新日に関係なく、特定の記事を固定表示(上位表示)したいなと思いました。
Hugo系記事をよく書いている方の記事でその内容が書いており、
「weight」項目を記事に設定することで解決するという内容がありましたので、
今回は実際にやってみたいと思います。
参考記事:Hugo で特定の記事を常にリスト上方に表示する(weight プロパティ)
…本当の所、じゃあその人の記事リンク貼って終わりにしようかなとも思いましたが、
そもそも「Hugo 記事 固定表示」で検索しても全然見つからなかったので、
自分以外の人も、もしかしたら同じようなところで検索に苦労したかもと思い、
少しでも記事固定で見つけやすくなったらいいなという思いで書きました。
実際にやってみた
---
# 記事タイトルの設定
title: "Hugoを使ったブログで記事を上位に固定表示する方法"
~省略~
# 固定記事にする
weight: 1
---
~記事~
まだ書き途中の記事が見えてしまってますが、たしかに記事を固定させることが出来ました。
23/4/6の記事ですが、5月や6月の日付に書き換えた記事よりも上位に表示されています。
どういう挙動なのか
再現は出来たのでもう終わりなんですが、
じゃあそもそも内部ではどういう挙動をしているのか、もう少し掘り下げたいと思います。
Hugoの公式サイト「Front Matter」から引用
weight
used for ordering your content in lists. Lower weight gets higher precedence.
So content with lower weight will come first.
If set, weights should be non-zero, as 0 is interpreted as an unset weight.
訳:重み
リスト内のコンテンツを並べ替えるために使用する。 重みが小さいほど優先度が高くなる。
そのため、重みの低いコンテンツが最初に表示される。
重みはゼロ以外である必要がある。ゼロが設定されている場合、0未設定の重みとして解釈される。
Hugoの公式サイト「Lists of Content in Hugo」からの引用
Order Content
Hugo lists render the content based on metadata you provide in front matter.
In addition to sane defaults, Hugo also ships with multiple methods to make
quick work of ordering content inside list templates:
Default: Weight > Date > LinkTitle > FilePath
訳:記事の順序
Hugo リストは、front matter で指定したメタデータに基づいてコンテンツをレンダリングする。
健全なデフォルトに加えて、Hugo には複数の作成方法も同梱されています。
リスト テンプレート内のコンテンツを並べ替える簡単な作業:
Default: Weight > Date > LinkTitle > FilePath
結論
これらを総合すると、
通常の並び替え順序の中で、重み(weight)という存在が一番上にあり、
重みを設定していないと日付順に並び替えが行われ、
重みを設定すると重みを最優先に並び替えする。ということですね。
もちろんデフォルトでは~と書かれているので、設定しているテンプレートによって、
この辺の並び順が変更されている可能性があります。
今設定しているテンプレートはこの辺りの設定は弄っていないので、
今のところ大丈夫そうですね。