【问题标题】:Hugo not rendering list.htmlHugo 不渲染 list.html
【发布时间】:2020-12-30 22:14:07
【问题描述】:

我正在尝试构建一个简单的 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 }

你能给我一些建议吗?

【问题讨论】:

    标签: html layout rendering hugo


    【解决方案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 是否存在问题。

    如上所述,不仅&lt;title&gt; 是可疑的,而且&lt;meta&gt; 标记也没有关闭:

    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    

    【讨论】:

      【解决方案2】:
      <title>{{ .Site.Title }} | {{ .Title }}> 
      

      应该是

      <title>{{ .Site.Title }} | {{ .Title }}</title>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-15
        • 1970-01-01
        • 1970-01-01
        • 2021-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多