遠い声と想像

エイジ オブ ディスカバリー II


Keiner außer dem einsamen Herzen.



Home Picture ©


HUGO模板上下篇设为同频道的文章



HUGO主要用于发布个人静态博客,大多数博客对类别管理没有那么严苛。hugo系统中的read-more.html模板,所有的主题,默认的下一篇和下一篇文章都是发布篇的前后文章。这本身没啥问题,博客就是象笔记一样,是一个想到什么写什么的地方。

有时,比如就象我这个博客,文章类别跨度有点大,有音乐、有阅读、有编程相关的东西,而这几个类别,阅读者的重叠率又相当低。为了便于自己管理,就想将上下篇文章的选取改为同类别相邻的文章。

在文章中添加了一个 categories 分类, 比如:

categories: "Readings"

在config.toml中:

[[menu.main]]
    name = "Readings"
    identifier = "readings"
    url = "/readings/"
    weight = 20

categories分类是hugo默认的分类,只要文章中有这个键值,系统就会自动生成类别索引了,并创建相应的路径,比如 /readings/。

在 layouts/partials中,修改read-more.html模板:

{{ range where .Site.RegularPages.ByDate "Params.categories" .Params.categories }}        
    
    {{ if gt $.Date.Unix .Date.Unix }}
        
        {{ $.Scratch.Set "prev_link" .Permalink }}
        {{ $.Scratch.Set "prev_title" .Title }}
        {{ $.Scratch.Set "prev_date" (.Date.Format "2006-01-02") }}
    {{ end }}
{{ end }}

{{ range where .Site.RegularPages.ByDate.Reverse "Params.categories" .Params.categories }}
    
    {{ if lt $.Date.Unix .Date.Unix }}
        {{ $.Scratch.Set "next_link" .Permalink }}
        {{ $.Scratch.Set "next_title" .Title }}
        {{ $.Scratch.Set "next_date" (.Date.Format "2006-01-02") }}
    {{ end }}
{{ end }}

于是,上下篇文章的选取变成:

{{ if $.Scratch.Get "next_link" }} ... {{ end }}

{{ if $.Scratch.Get "prev_link" }} ... {{ end }}

上下篇文章的标题选取:

{{ $.Scratch.Get "next_title" }}
{{ $.Scratch.Get "prev_title" }}

发布时间选取:

{{ $.Scratch.Get "next_date" }}
{{ $.Scratch.Get "prev_date" }}

按自己喜欢的布局重新写一下即可。

 

Next:         SFTP不输入密码直接进入服务器   (2023-02-19)

Prev:         ubuntu服务器端安装Git仓库   (2023-02-18)