Noll 默认采用内置的主题进行页面生成,Noll 也支持指定第三方主题进行页面生成。
Noll 使用 Golang 开发,使用的页面模板也是使用 Golang 的模板引擎渲染,通过将指定的数据结构对象应用于特定的模板对象以执行模板渲染。
模板中的注释引用数据结构的元素(通常是结构体字段或映射中的键)来控制执行并输出要显示的值。模板在遍历(引用)数据结构时,采用 .
(点字符)表示当前模板的数据对象。
模板的输入文本可以是任何格式的 UTF-8 编码文本。 Action —— 数据评估或控制结构 —— 由 {{ }}
限定;所有 {{ }}
以外的文本都会不变地复制到输出中。比如:
helloTemplateText := `Hello {{ . }}`
templateData := "World"
tmpl, err := template.New("test").Parse(helloText)
if err != nil { panic(err) }
err = tmpl.Execute(os.Stdout, &templateData)
if err != nil { panic(err) }
以上代码中 helloTemplateText
是模板内容,templateData
是模板数据,在 helloTemplateText
中,我们用 {{ . }}
来控制和输出模板数据对象,其中 .
表示模板数据对象 templateData
,所以控制台会输出:
Hello World
不过我们在正式开发模板之前,先来了解一下 Noll 的主题结构。
- ThemeDir
- index.gtpl: 首页模板文件
- post.gtpl: 文章页模板文件
- archive.gtpl: 归档页模板文件
- categories.gtpl: 分类页模板文件
- category.gtpl: 分类文章列表页模板文件
- labels.gtpl: 标签页模板文件
- label.gtpl: 标签文章列表页模板文件
- about.gtpl: 关于页模板文件
- 404.gtpl: 404 Not Found 页模板文件
- other-file: 其他的模板文件
Noll 的主题结构包含两种文件,分别是模板文件和非模板文件,模板文件采用 .gtpl
文件名后缀,非 .gtpl
文件则会直接输出到指定的目标站点文件夹。以上列出的 9个模板文件,是对应的 9 个主题页面模板,是开发主题模板的必要文件。
(未完待续)
Noll 的每个模板的顶层数据结构是一致的。