文章模板

2021-05-04

举例


  • 设置 TDK
 1<!DOCTYPE html>
 2<html lang="en">
 3	<head>
 4		<meta charset="UTF-8" />
 5		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
 6		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7		<title>{{.Message.Meta.title}} - {{.Site.Name}}</title>
 8		<meta name="description" content="{{.Message.Meta.description}}" />
 9	</head>
10
11	<body>
12		<main>write your code here</main>
13	</body>
14</html>
  • 渲染内容
 1<!DOCTYPE html>
 2<html lang="en">
 3	<head>
 4		<meta charset="UTF-8" />
 5		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
 6		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7		<title>Document</title>
 8	</head>
 9	<body>
10		<main>
11			<!-- 标题 -->
12			<h1>{{.Message.Meta.title}}</h1>
13			<!-- 日期 -->
14			<span>{{.Message.Meta.date}}</span>
15
16			<!-- 类型 -->
17			{{if .Message.Lang.State}}
18			<a href="/{{.Message.Lang.Content}}/category/{{toLower .Message.Meta.category}}/"> {{.Message.Meta.category}} </a>
19			{{else}}
20			<a href="/category/{{toLower .Message.Meta.category}}/"> {{.Message.Meta.category}} </a>
21			{{end}}
22
23			<!-- 正文 -->
24			<article>{{safe .Message.Content}}</article>
25
26			<!-- 定义局部变量 -->
27			{{$Lang := .Message.Lang}}
28
29			<!-- 标签 -->
30			<ul>
31				{{range $k,$v := .Message.Meta.tag}}
32				<li>
33					<!-- 序号 -->
34					<p>{{ add $k 1}}</p>
35
36					<!-- 名称 -->
37					<p>
38						{{if $Lang.State}}
39						<a href="/{{$Lang.Content}}/tag/{{toLower $v}}/">{{$v}} </a>
40						{{else}}
41						<a href="/tag/{{toLower $v}}/">{{$v}} </a>
42						{{end}}
43					</p>
44				</li>
45				{{end}}
46			</ul>
47		</main>
48	</body>
49</html>
50{{end}}
  • 渲染 TOC
 1<!DOCTYPE html>
 2<html lang="en">
 3	<head>
 4		<meta charset="UTF-8" />
 5		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
 6		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7		<title>Document</title>
 8	</head>
 9	<body>
10		<main>
11			{{if .Message.TOC.State}}
12			<div>{{safe .Message.TOC.Content}}</div>
13			{{end}}
14		</main>
15	</body>
16</html>
17{{end}}
  • 渲染作者
 1<!DOCTYPE html>
 2<html lang="en">
 3	<head>
 4		<meta charset="UTF-8" />
 5		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
 6		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7		<title>Document</title>
 8	</head>
 9	<body>
10		<main>
11			<img src="{{i18n $Lang.Content "author.avatar"}}" alt="" />
12			<span >{{i18n $Lang.Content "author.name"}}</span>
13			<span >{{i18n $Lang.Content "author.title"}}</span>
14			<p>{{i18n $Lang.Content "author.summary"}}</p>
15			<a href="mailto:{{i18n $Lang.Content "author.email"}}"></a>
16		</main>
17	</body>
18</html>
19{{end}}
  • 渲染推荐
 1<!DOCTYPE html>
 2<html lang="en">
 3	<head>
 4		<meta charset="UTF-8" />
 5		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
 6		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
 7		<title>Document</title>
 8	</head>
 9	<body>
10		<main>
11			<ul>
12				<!-- 循环推荐 -->
13				{{range .Message.Top}}
14				<li>
15					<!-- 缩略图 -->
16					<a href="{{toLower .Name}}">
17						<img class="w-full lazy" src="/assets/img/loading.gif" data-src="{{.Meta.thumb}}" alt="" />
18					</a>
19
20					<!-- 名称 -->
21					<a href="{{toLower .Name}}"> {{.Meta.title}} </a>
22
23					<!-- 描述 -->
24					<p>{{.Meta.description}}</p>
25
26					<!-- 日期 -->
27					<span> {{.Meta.date}}</span>
28
29					<!-- 分类 -->
30					{{if .Lang.State}}
31					<a href="/{{.Lang.Content}}/category/{{toLower .Meta.category}}/"> {{.Meta.category}} </a>
32					{{else}}
33					<a href="/category/{{toLower .Meta.category}}/"> {{.Meta.category}} </a>
34					{{ end }}
35				</li>
36				{{end}}
37			</ul>
38		</main>
39	</body>
40</html>
41{{end}}

数据


  1. 站点设置

    • 站点信息,map 类型
    {{.Site}}
    
    • 站点名称,string 类型
    {{.Site.Name}}
    
    • 站点域名,string 类型
    {{.Site.Origin}}
    

    ……

  2. 主题设置

    • 主题信息,map 类型
    {{.Theme}}
    
    • 版权信息,string 类型
    {{.Theme.copyright}}
    
    • 统计信息,string 类型
    {{.Theme.analysis}}
    

    ……

  3. 内容信息

    • 文章信息,map 类型
    {{.Message}}
    
    • 内容信息,string 类型
    {{.Message.Content}}
    
    • Meta 信息,map 类型
    {{.Message.Meta}}
    
    <!-- 描述 -->
    {{.Message.Meta.description}}
    
    <!-- 日期 -->
    {{.Message.Meta.date}}
    
    
    • TOC 信息,map 类型
    {{.Message.TOC}}
    
    • Lang 信息,map 类型
    {{.Message.Lang}}
    
    
    • Top 信息,array 类型

      文章推荐信息,可通过 conf.toml site.amount 设置数量

    {{range .Message.Top}}
    
    	<!-- 路径 -->
    	{{.Name}}
    
    	<!-- Meta -->
    	{{.Meta.description}}
    
    	{{.Meta.date}}
    
    	<!-- 日期 -->
    	{{.Date}}
    
    	<!-- 语言 -->
    	{{.Lang}}
    
    {{end}}
    
  4. 路径信息

    {{.Path}}