===============
== bacardi55 ==
===============
ἕν οἶδα ὅτι οὐδὲν οἶδα

Displaying featured posts on hugo homepage

- Permalink
/!\ Warning: This article is older than 555 days, make sure the content is still relevant!

During the last set of blog updates of February, I decided to change my homepage to make it leaner (by removing most of the text), but I also changed the content lists displayed.

The homepage now display:

The last 2 are just a change in the number of items being retrieved, whereas the first two are a changed of which items are retrieved.

Before this update, the 5 latest blog posts and gemlog entries were displayed here. It meant that, while always up to date, I didn’t have control of what was displayed. I thought about it for some time, and decided that the homepage should display what I want first time visitors to see first. The full lists are one click away for people to see all articles. But I like to highlight specific ones on the homepage.

The new rule is will display the last 5 posts tagged as featured. I can mark posts as featured = 1 in the frontmatter area (see example) if I decide they should “make the frontpage”. Only the 5 latest with the feature tag are displayed. If one day I want to resurface an old post, I’ll have to remove newer featured posts. A good mix between control and automation I believe.

Anyway, to tag a post (or gemlog or page) as featured, all I need is to add in the frontmatter part of my markdown content featured: 1.

Then, on the homepage, I have a loop displaying only the 5 latest featured:

<ul>
    {{ range first 5 (where (where site.RegularPages "Section" "posts") "Params.featured" "eq" 1) }}
        <li>
            <div class="post-title">
                {{ .Date.Format "2006-01-02" }} <a href="{{ .RelPermalink }}">{{ .Title }}</a>
            </div>
        </li>
    {{ end }}
</ul>

Change the posts in the where clause to gemlog and you have the list of the latest 5 featured gemlog entries.

You can see the full code of my homepage partial template on sourcehut.


Contact

If you find any issue or have any question about this article, feel free to reach out to me via webmentions, email, mastodon, matrix or even IRC, see the About page for details.