Hugo 自定义文章样式

Overview

之前 WordPress 推出不同文章样式,如轻博客一样,发一句话、链接或视频有不同的显示效果。之后,用 Hexo、Bitcron 时都以文件夹形式进行文章分类,并以此为判断条件。

1content
2├── posts
3│   ├── chat
4│   ├── coding
5│   ├── daily
6│   ├── reading

chat 目录内的 md 文件是以一句话的模式(头像+时间)显示,怎么实现呢?利用 Hugo 的 .File.DirreplaceRE 正则。

核心代码如下:

 1{{ $PostCate := .File.Dir | replaceRE "posts/(.*)/" "$1"}}
 2{{ if eq $PostCate "chat"}}
 3    <div class="post-meta">
 4        {{ if .Date }}
 5            <span class="post-date">{{ .Date.Format | default "2006-01-02" }}</span>
 6        {{ end }}
 7    </div>
 8    <div class="post-content">
 9        <a href="{{ .Permalink }}"><img loading="lazy" class="avatar" src=https://sdn.geekzu.org/avatar/{{ md5 "自己的邮箱" }} ></a>
10        {{ .Content }}
11    </div>
12{{ else }}
13    ……正常文章样式
14{{ end }}

一般修改 _default/list.html_default/single.html,其中 list 是放在文章列表的 {{rang ……}} 循环之中。

1{{ range 什么什么 .Pages }}
2    ……这里
3{{ end }}

随意说明

.File.Dir 是获取当前文章的相对路径 posts/coding/replaceRE "posts/(.*)/" "$1" 是正则到 coding 子文件夹名,之后 {{ if eq $PostCate "chat"}} 就是判断咯 🤷‍♂️