雨果不渲染list.html

时间:2020-09-12 17:38:48

标签: html layout rendering hugo

我正在尝试构建一个简单的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.htmllist.html都出现相同的错误):

2020/09/12 20:33:30无法呈现页面:“页面”的呈现失败:模板执行失败:html / template:_default / single.html:以非文本上下文结尾:{stateRCDATA delimNone urlPartNone jsCtxRegexp attrNone elementTitle}

你能给我什么建议吗?

2 个答案:

答案 0 :(得分:1)

这是直接来自Go本身的错误:package html/template

ErrEndContext:“ ... 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>