我正在尝试构建一个简单的Hugo项目。问题是我试图创建一些基本布局,渲染时出现错误。
在/ layouts / _default内部,我有以下内容:
baseof.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ .Site.Title }} | {{ .Title }}>
</head>
<body>
<header>
<p>this is a header</p>
</header>
<main>
{{ block "main" . }}
{{ end }}
</main>
<footer>
<p>this is a footer</p>
</footer>
</body>
</html>
list.html
{{ define "main" }}
<h2>List</h2>
{{.Content}}
<!-- prettier-ignore -->
{{ range .Pages }}
<div>
<a href="{{.Permalink}}">{{.Title}}</a>
<p>{{ dateFormat "Monday, Jan 2, 2006" .Date }}</p>
</div>
{{ end }}
<!-- prettier-ignore -->
{{ end }}
single.html
{{ define "main" }}
<h1>{{ .Title }}</h1>
<h2>{{ .PublishDate }}</h2>
{{ .Content }}
<!-- prettier-ignore -->
{{ end }}
当我尝试运行时,出现以下错误(single.html
和list.html
都出现相同的错误):
2020/09/12 20:33:30无法呈现页面:“页面”的呈现失败:模板执行失败:html / template:_default / single.html:以非文本上下文结尾:{stateRCDATA delimNone urlPartNone jsCtxRegexp attrNone elementTitle}
你能给我什么建议吗?
答案 0 :(得分:1)
这是直接来自Go本身的错误:package html/template
... ends in a non-text context: ...
” 示例:
<div
<div title="no close quote>
<script>f()
执行的模板应生成
DocumentFragment
的HTML。没有关闭标签而结束的模板将触发此错误。
不应在HTML上下文中使用的模板或产生不完整片段的模板,不应直接执行。{{define "main"}} <script>{{template "helper"}}</script> {{end}} {{define "helper"}} document.write(' <div title=" ') {{end}}
“
helper
”不会产生有效的文档片段,因此不应直接执行。
简化您的single.html
页面,以检查您的baseof.html
base template是否存在问题。
不仅如上所述,<title>
都是可疑的,<meta>
标签也没有关闭:
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
答案 1 :(得分:1)
<title>{{ .Site.Title }} | {{ .Title }}>
应该是
<title>{{ .Site.Title }} | {{ .Title }}</title>