一个不错的html渲染页面模板

This commit is contained in:
2025-11-25 22:55:53 +08:00
parent adbe4a990d
commit e6ce15f66b
6 changed files with 213 additions and 96 deletions

View File

@@ -1,17 +1,22 @@
{{ define "base" }}
{{/* 定义基础模板,作为其他页面模板的布局基础 */}}
{{ define "layout/base" }}
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
{{/* 标题块定义 - 允许子模板重写标题内容 */}}
<title>{{ block "title" . }}默认标题{{ end }}</title>
{{/* 引入静态样式文件 */}}
<link rel="stylesheet" href="/static/style.css">
</head>
<body>
{{/* 引入导航栏模板 */}}
{{ template "navbar" . }}
{{/* 主内容区域定义 - 子模板应在此处填充具体内容 */}}
<main>
{{ block "content" . }}{{ end }}
</main>
</body>
</html>
{{ end }}
{{ end }}

View File

@@ -1,6 +1,12 @@
{{ define "navbar" }}
{{/* 定义导航栏模板,包含网站导航链接 */}}
{{ define "layout/navbar" }}
<link rel="stylesheet" href="/static/navbar.css">
<nav class="navbar">
{{/* 网站Logo区域 */}}
<div class="logo">🔥 MyGinSite</div>
{{/* 导航链接列表 */}}
<ul class="nav-links">
<li><a href="/">首页</a></li>
<li><a href="/about">关于我们</a></li>
@@ -8,4 +14,4 @@
<li><a href="/contact">联系</a></li>
</ul>
</nav>
{{ end }}
{{ end }}

View File

@@ -1,4 +1,5 @@
{{define "pages/index.html"}}
{{/* 定义index页面模板 */}}
{{define "pages/index"}}
<!doctype html>
<html lang="zh">
<head>
@@ -7,50 +8,54 @@
<title>{{.title}}</title>
</head>
<body>
{{/*输出*/}}
{{template "layout/navbar"}}
{{/* 基本数据输出示例 - 直接渲染标题变量 */}}
<h2>{{.title}}</h2>
{{/*定义变量*/}}
{{$t :=.title}}
{{/* 模板变量定义示例 - 将标题赋值给局部变量t */}}
{{$t := .title}}
<h4>{{$t}}</h4>
{{/*条件判断*/}}
{{if ge .score 60}}
{{/* 条件判断示例 - 根据score值判断是否及格 */}}
{{if ge .score 60}} <!-- ge: 大于等于 -->
<p>及格</p>
{{else}}
<P></P>
<p></p>
{{end}}
{{/*循环遍历数据*/}}
{{range $key,$value:=.hobby}}
{{/* 简单数组循环遍历示例 */}}
{{range $key, $value := .hobby}} <!-- 遍历爱好列表 -->
<ul>
<li>{{$key}}--{{$value}}</li>
<li>{{$key}}--{{$value}}</li> <!-- 输出索引和值 -->
</ul>
{{end}}
{{range $key,$value:=.newsList}}
{{/* 结构体数组循环遍历示例 */}}
{{range $key, $value := .newsList}} <!-- 遍历文章列表 -->
<ul>
<li>{{$key}}--{{$value.Title}}--{{$value.Content}}</li>
<li>{{$key}}--{{$value.Title}}--{{$value.Content}}</li> <!-- 输出索引和文章属性 -->
</ul>
{{end}}
{{range $key,$value:=.newsList2}}
{{/* 空数组处理示例 - 当newsList2为空时显示提示信息 */}}
{{range $key, $value := .newsList2}}
<ul>
<li>{{$key}}--{{$value.Title}}--{{$value.Content}}</li>
</ul>
{{else}}
<li>没有数据</li>
<li>没有数据</li> <!-- 当数组为空时执行 -->
{{end}}
{{/*结构结构*/}}
{{with .news}}
{{.Title}}
{{.Content}}
{{/* 结构体数据访问示例 - 使用with语句简化结构体属性访问 */}}
{{with .news}} <!-- 针对news结构体设置上下文 -->
{{.Title}} <!-- 直接访问Title属性等同于.news.Title -->
{{.Content}} <!-- 直接访问Content属性等同于.news.Content -->
{{end}}
<br>
{{/* 自定义模板函数使用示例 */}}
{{.data}} <!-- 输出原始时间戳 -->
{{UnixToTime .data}} <!-- 使用自定义函数将时间戳转换为格式化日期 -->
</body>
</html>
{{end}}