Step 1: related.html
Add a related articles page by creating a new file named related.html
in the layouts/partials
folder, with the following code.
layouts/partials/related.html
{{ $related := first 5 (where (where .Site.Pages ".Params.tags" "intersect" .Params.tags) "Permalink" "!=" .Permalink) }}
{{ with $related }}
<h3 class="see-also">{{- i18n "related" -}}</h3>
<div class="related">
<ul>
{{ range . }}
<li>
<a href="{{ .RelPermalink }}" target="_blank">{{ .Title }}</a> <span class="related-date">({{ .Date | time.Format "2006-01-02" }})</span>
</li>
{{ end }}
</ul>
</div>
{{ end }}
<style>
.post-footer h3 {
margin: 1.2em 0 1.2em;
}
.post-footer .related {
padding-bottom: 1.5rem;
}
.post-footer .related ul {
padding-inline-start: 20px;
}
.post-footer .related ul li{
list-style-type: square;
margin-bottom: 0.5rem;
}
.post-footer .related ul li a{
text-decoration: underline;
transition: color 0.3s ease-in-out, text-decoration-color 0.3s ease-in-out;
text-decoration-thickness: 1px;
}
.post-footer .related-date{
font-size: 0.8em;
font-style: italic;
}
.post-footer .related a:hover {
box-shadow: 0 1px;
text-decoration: none;
color: #ff5722;
text-decoration-color: #ff5722;
text-decoration-thickness: 2px;
}
</style>
Step 2: single.html
Adjust the single.html
file in the layouts/_default
folder by adding code under the <footer class="post-footer">
tag.
<footer class="post-footer">
{{- if (.Param "ShowRelatedContent") }}
{{- partial "related.html" . }}
{{- end }}
{{- $tags := .Language.Params.Taxonomies.tag | default "tags" }}
<ul class="post-tags">
{{- range ($.GetTerms $tags) }}
<li><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
{{- end }}
</ul>
{{- if (.Param "ShowPostNavLinks") }}
{{- partial "post_nav_links.html" . }}
{{- end }}
{{- if (and site.Params.ShowShareButtons (ne .Params.disableShare true)) }}
{{- partial "share_icons.html" . -}}
{{- end }}
</footer>
Step 3: Language translation
i18n/en.yaml
- id: related
translation: "Related posts"
i18n/en.yaml
- id: related
translation: "相关文章"
Step 4: Adjust the configuration file
Adjust the site configuration file (hugo.yaml
) by adding showRelatedContent: true
under the params section.
languages:
en:
languageCode: en-us
languageName: "English"
params:
author: Rickey
showRelatedContent: true
social: true
zh:
languageCode: zh-cn
languageName: "简体中文"
params:
author: 龚东海
showRelatedContent: true
social: true
Thank you for your patience in reading! Come pick an emoji or leave a comment!