开发 Noll 的第三方主题

Noll 发布在Document 1

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 的主题结构。

Noll 的主题结构包含两种文件,分别是模板文件和非模板文件,模板文件采用 .gtpl 文件名后缀,非 .gtpl 文件则会直接输出到指定的目标站点文件夹。以上列出的 9个模板文件,是对应的 9 个主题页面模板,是开发主题模板的必要文件。

(未完待续)

Noll 的每个模板的顶层数据结构是一致的。

TOP
前往 GitHub Discussion 评论