Hugo | 给cactus主题加上隐藏文章功能
起因是一个名叫“川流”的博客聚合页面不经允许就收录了朋友们和我的博客,朋友发邮件去沟通撤下,结果却反遭对方破防,在网站上单开整个页面,对她的邮件内容进行了高达17条的辱骂。整个事件之离谱下作自不待言,挂出后比较意外的是,川流的站长对自己的个人信息相当不在意,友邻见义勇为检索之迅速,很难让人不生出进一步隔离个人信息的警惕心。博客建立三年,写了一百来篇博客,三十几万字,把过往文章隐藏一下的想法其实也存在很久了,正好趁此机会实现。
感谢 ChatGPT,我负责说需求,它负责写。
我的需求是:
- 在文章 Yaml 区加入
hidden: true
隐藏文章 - 隐藏文章后不影响全站字数/篇数统计。
- 隐藏后还能通过超链接访问。
操作:修改 layouts\_default\list.html
为以下内容
{{ define "main" }}
<div id="archive">
<ul class="post-list">
{{ $allPages := .Pages }} <!-- 获取所有页面 -->
{{ $visiblePages := where $allPages "Params.hidden" "ne" true }} <!-- 过滤掉隐藏文章 -->
<!-- 设置分页 -->
{{ $paginator := .Paginate $visiblePages }}
{{ range $paginator.Pages }}
{{ $pageYear := (.Date.Format "2006") }}
{{ if (ne $pageYear ($.Scratch.Get "year")) }}
{{ $.Scratch.Set "year" $pageYear }}
<h2>{{ $pageYear }}</h2>
{{ end }}
<li class="post-item">
<div class="meta">
<time datetime="{{ .Date.Format "2006-01-02" }}" itemprop="datePublished">{{ .Date.Format (.Site.Params.dateFormat | default "2006-01-02") }}</time>
</div>
<span>
<a class="" href="{{ .Permalink }}">{{ if .Title }} {{ .Title }} {{ else }} Untitled {{ end }}</a>
</span>
</li>
{{ end }}
</ul>
{{ if gt $paginator.TotalPages 1 }}
{{ partial "pagination.html" . }}
{{ end }}
</div>
{{ end }}
小球飞鱼博客建立于2021年8月26日,今天正好满三年,隐藏了2021、2022、2023三年除年终总结之外的半月记内容。同时隐藏了 posts 下随着时间流逝已相对失效的内容。
祝我三周年快乐。