chatGPT(依赖版
在整Hugo的tag页面时,碰到困难,突然想起可以问问chatGPT.
ME:
<!-- layouts/_default/list.html -->
{{ define "main" }}
<article>
<header>
<h1>All {{ .Type }}</h1>
</header>
<div class="body">
<!-- <div class="tags">
{{ range .Pages }}
<span>
<a href="{{ .RelPermalink }}" title="{{ .Description }}">{{ .Title }} </a>
</span>
{{ end }}
</div> -->
<ol style="list-style-type:disc">
{{ range .Pages }}
<li>
<a href="{{ .RelPermalink }}" title="{{ .Description }}">{{ .Title }} </a>
</li>
{{ end }}
</ol>
</div>
</article>
{{ end }}
重写这段代码,以实现“如果.Type 等于 tags时,使用下面这份模板:
<!-- partails/taxonomy.html -->
<div class="tags">
{{ range .Pages }}
<span>
<a href="{{ .RelPermalink }}" title="{{ .Description }}">{{ .Title }}</a>
</span>
{{ end }}
</div>
chatGPT: 可以使用 Go 模板语言的条件语句来实现这一需求。下面是一个可能的重写:
<!-- layouts/_default/list.html -->
{{ if eq .Type "tags" }}
<div class="tags">
{{ range .Pages }}
<span>
<a href="{{ .RelPermalink }}" title="{{ .Description }}">{{ .Title }}</a>
</span>
{{ end }}
</div>
{{ else }}
<article>
<header>
<h1>All {{ .Type }}</h1>
</header>
<div class="body">
<ol style="list-style-type:disc">
{{ range .Pages }}
<li>
<a href="{{ .RelPermalink }}" title="{{ .Description }}">{{ .Title }}</a>
</li>
{{ end }}
</ol>
</div>
</article>
{{ end }}
这段代码首先使用 if 条件语句检查 .Type 是否等于字符串 “tags”。如果是,则输出包含所有标签的 div。否则,就按照之前的模板输出所有页面的有序列表。
最终, layouts/_default/list.html 改成:
{{ define "main" }}
<article>
<header>
<h1>All {{ .Type }}</h1>
</header>
<div class="body">
<!-- 也是if else 嘛 -->
{{ if eq .Type "tags" }}
<div class="tags">
{{ range .Pages }}
<span>
<a href="{{ .RelPermalink }}" title="{{ .Description }}">{{ .Title }}</a>
</span>
{{ end }}
{{ else }}
<ol style="list-style-type:disc">
{{ range .Pages }}
<li>
<a href="{{ .RelPermalink }}" title="{{ .Description }}">{{ .Title }}</a>
</li>
{{ end }}
</ol>
{{ end }}
</div>
</article>
{{ end }}
..
and it just works