我有一个Hugo模板,该模板检查数组中是否存在name属性,然后应用一组HTML,否则应用另一组HTML。
我还需要检查数组是否包含某个字符串,然后使用另一组HTML。
模板:
<section class="resume-section p-3 p-lg-5 d-flex flex-column" id="skills">
<div class="my-auto" id="skills-content">
<h2 class="mb-5">Skills</h2>
{{ range $.Site.Data.skills }}
<div class="subheading mb-3 skills-heading">{{ .grouping }}</div>
<ul>
{{ range .skills }}
{{ if isset . "name" }}
<li class="list-inline-item">
<i class="devicon-{{ cond (in $.Site.Data.devicon (lower .name)) (lower .name) "devicon" }}-plain"></i>
<a href="{{.link}}">{{ .name }}</a>
</li>
{{ else }} {{if in . "express"}}
<li class="list-inline-item">
<i class="devicon-express-plain"></i>
{{ . }}
</li>
{{ else }}
<li class="list-inline-item">
<i class="devicon-{{ cond (in $.Site.Data.devicon (lower .)) (lower .) "devicon" }}-plain"></i>
{{ . }}
</li>
{{ end }}
{{ end }}
</ul>
{{ end }}
</div>
</section>
JSON文件:
[
{
"grouping":"Architecture",
"skills":[ "IP Networking","DNS","Firewalls","Load Balancing","Microservices","RESTful APIs","SaaS/PaaS/IaaS"]
},{
"grouping":"Languages, Operating Systems & Tools",
"skills":["Skills", "Go", "Here"]
},
{
"grouping":"Platform Development & Administration",
"skills":[ "Skills", "Redacted"]
},
{
"grouping":"Containers & Cloud",
"skills":[
{"name":"Redacted","link":"https://example.com"},
{"name":"AmazonWebServices","link":"https://aws.amazon.com"},
{"name":"Etc","link":"https://example.com"},
]
}
]
建立网站时出现错误:
在“”中呈现“主页”时出错:模板:index.html:4:10: 在以下位置执行“主要”:错误调用局部: 模板:“ partials / portfolio / skills.html”不完整或为空 模板
答案 0 :(得分:0)
替换此代码:
{{ else }} {{if in . "express"}}
<li class="list-inline-item">
<i class="devicon-express-plain"></i>
{{ . }}
</li>
{{ else }}
<li class="list-inline-item">
<i class="devicon-{{ cond (in $.Site.Data.devicon (lower .)) (lower .) "devicon" }}-plain"></i>
{{ . }}
</li>
{{ end }}
使用:
{{ else if in . "express"}}
<li class="list-inline-item">
<i class="devicon-express-plain"></i>
{{ . }}
</li>
{{ else }}
<li class="list-inline-item">
<i class="devicon-{{ cond (in $.Site.Data.devicon (lower .)) (lower .) "devicon" }}-plain"></i>
{{ . }}
</li>
{{ end }}
问题出在上述代码片段的第一行:
{{ else }} {{if in . "express"}}
与之相对:
{{ else if in . "express"}}
由于您的代码可能比此处发布的代码多,因此您仍然可能会收到错误消息。但是,此更正至少可以解决if / else语句错误。
在Hugo中创建级联if语句的默认模式如下:
{{ if ... }}
{{ else if ... }}
{{ end }}
如果您想在另一个内部创建嵌套的if语句,也可以:
{{ if ... }}
{{ if ... }}
{{ end }}
{{ end }}
您创建的代码:
{{ if ... }}
{{ else }} {{ if ... }}
{{ else }}
{{ end }}
这里的问题是第二个if语句没有结束标记。可以这样解决:
{{ if ... }}
{{ else }} {{ if ... }}
{{ end }}
{{ else }}
{{ end }}
或者我们可以使用:
{{ if ... }}
{{ else if ... }}
{{ else }}
{{ end }}