布局与页面模板
layout.html 要求
- 必须定义
{{define "layout"}} ... {{end}}。 - 内部必须包含
{{block "content" .}}{{end}},供各页面注入主体内容。 - 建议包含
{{block "extra_css" .}}{{end}},供各页面按需引入 CSS。 - 使用
{{.PageTitle}}、{{.PageDesc}}、{{.Site.Title}}、{{.Site.Description}}、{{.Site.Copyright}}等输出站点与页面信息。
页面模板写法
每个页面模板(如 home.html、pricing.html)通过覆盖 content 和可选的 extra_css 注入内容。示例:
html
{{ "{{" }}define "extra_css"{{ "}}" }}
<link rel="stylesheet" href="/home/static/css/home.css">
{{ "{{" }}end{{ "}}" }}
{{ "{{" }}define "content"{{ "}}" }}
<section>
<h1>{{ "{{" }}.PageTitle{{ "}}" }}</h1>
<p>{{ "{{" }}.PageDesc{{ "}}" }}</p>
<p>站点名:{{ "{{" }}.Site.Title{{ "}}" }}</p>
</section>
{{ "{{" }}end{{ "}}" }}- 静态资源通过
/home/static/前缀访问,对应模板目录下的static/目录,例如static/css/home.css的访问路径为/home/static/css/home.css。详见 静态资源与文档中心。 - 当前请求路径可通过
{{.Path}}获取,便于做导航高亮(如{{if eq .Path "/"}}class="active"{{end}})。