templ templ v0.3
官方文档

为 Go 量身打造的 HTML 模板语言

类似 JSX 的声明式组件语法,直接编译为原生无反射的流式 Go 函数,附带开箱即用的专业 LSP 语言服务器。

开始探索工坊
$ go install github.com/a-h/templ/cmd/templ@latest
/
Task Runner: xc compatible
/
Coverage: 67.0% statements
/
Health Grade: Go Report Card A+
templ-workspace / interactive-studio
Parser: v2.goexpression Compiler: templ.ComponentFunc Alloc: 0-alloc byte-stream
card.templ
提示: 鼠标悬停在关键字上查看真实 LSP 浮窗
1234567891011121314
func Header(name string, count int) templ.Component
Header 生成类型安全的高性能导航状态条组件。在编译期验证所有参数类型,零反射直接输出缓冲字节流。

README.md 全流程任务流水线有向无环图 (DAG)

17 个任务 · 4 阶段有向闭环

点击任意节点激活全链路依赖追踪(自动高亮前置依赖与下游触发目标),支持拓扑级串行模拟执行

构建与版本 代码生成 测试与质检 发布与文档 | 前置依赖 下游解锁
初始版本与代码生成 (Root & Codegen)
阶段入口
version-set
0.3.%d (基准版本)
generate
templ generate (核心生成)
版本与生成代码就绪,进入二进制构建与代码规范闭环
二进制构建与代码校验 (Build & Verify)
双路验证
主执行程序
build
go build cmd/templ
install-snapshot
安装到 $GOPATH/bin
代码纯净校验
fmt
gofmt + templ fmt
ensure-generated
git diff --exit-code (锁依赖)
编译与一致性检查通过,启动全套测试与覆盖率质检
质量体系与测试覆盖率 (GOCOVERDIR 矩阵)
核心质量门禁
回归测试与插桩覆盖率
test-short
快速测试 (-short)
test
单元与集成全集
专项极限验证与代码规范
lint
golangci-lint 严格套件
benchmark
-bench=. -benchmem 0内存分配
test-fuzz
语法与表达式模糊测试
test-cover-watch
gotestsum 实时热重载
质检全部达标,准许打包多平台快照、推送版本与发布文档
发布部署与多端文档 (Release & Docs)
终态交付
跨平台发布链
build-snapshot
goreleaser 本地快照构建
push-release-tag
version push v* (触发 CI 发布)
官方文档生态
docs-run
docs 开发服务 (npm start)
docs-build
docs 生产构建 (npm build)
构建与版本 ⚪ 就绪

version-set

前置输入依赖 (Upstream):
无前置依赖 (流水线根任务)
下游解锁任务 (Downstream):
任务功能说明:

将 templ 的版本设置为当前版本。

README 执行命令定义 bash
version set --template="0.3.%d"
50,000
6 层
基准测试命令 (Benchmark Command): go test ./... -bench=. -benchmem
单核每秒渲染吞吐 (Ops / sec) 6.7x 倍速
templ (原生编译流) 1,842,910 ops/s
html/template (标准库反射) 274,800 ops/s
templ 吞吐量是标准库的 6.7 倍,大幅降低高并发负载下的 CPU 使用率与云端算力成本。
单次调用堆内存分配 (Allocations / op) 零逃逸 0-Alloc
templ (零反射缓冲切片) 0 - 1 allocs/op
html/template (AST 动态重构) 16 allocs/op
零堆内存逃逸。从源头上消除 Go 垃圾回收 (GC Stop-the-world) 导致的偶发尾延迟 (p99 latency)。
零反射编译架构 · Go 生态官方推荐实践

将 HTML 组件像普通 Go 函数一样调用,兼具静态语法树检查与纳秒级极速流式响应,无需任何外部运行时依赖。

单次渲染耗时542 ns
堆内存逃逸0 B/op
吞吐提升+570%
cmd/templ/ide-demo.gif (VS Code + Neovim LSP 实机录屏)
templ 官方 IDE 开发演示动图

双语言混合上下文感知

在编写 HTML 标签或属性时,键入 { } 插槽即刻唤出全功能 Go 变量与函数自动补全,LSP 实时无缝双向切换。

符号重构与编译诊断

在普通 Go 文件中修改结构体或函数签名,所有 .templ 引用处同步更新,错误即时下划线标红。

自动化格式化 (templ fmt)

配合编辑器保存时自动触发 templ fmt,严格对齐 HTML 与 Go 混合缩进,杜绝全团队格式争论。

BUILT FOR GO DEVELOPERS

专为现代 Go 团队工程效率打造

摒弃传统模板语言的脆弱与黑盒体验,提供如同编写普通 Go 代码般严密的静态保障与速度。

编译期绝对类型安全

JSX 风格语法深度集成 Go 类型系统。组件入参、条件分支与循环完全静态推导,杜绝运行时空指针和字段拼写隐患。

templ UserBadge(u User) {
  <span>{ u.Name }</span>
}

零运行时反射与极速流式写入

直接将组件编译为原生 Go 函数与缓冲字节流。无需动态 AST 解析与反射分发,单核渲染压测性能提升高达 10 倍。

0-alloc
单次渲染堆内存分配

开箱即用的独立 LSP 语言服务

官方支持 VS Code、Neovim 与主流开发工具。提供即时补全、悬浮签名、跨文件符号跳转以及保存时自动 templ fmt

LSP: templ-lsp v2 · Ready
README.MD SPECIFICATION

官方 17 项全流程工程任务库

完整涵盖开发构建、覆盖率分析、代码格式化、质量检查及发版的全部 17 个标准化命令

任务标识 分类 作用说明 核心执行命令 操作

5 分钟快速上手指南

只需 4 步即可将类型安全的 HTML 组件接入标准 Go HTTP 服务

安装命令行工具

通过 Go 官方包管理器拉取最新 templ CLI:

go install github.com/a-h/templ/cmd/templ@latest

编写组件模板

新建 page.templ,编写强类型组件声明:

templ Hello(name string) { <h1>你好,{ name }</h1> }

自动生成 Go 代码

运行 generate 命令,或开启实时热更新监视:

templ generate --watch

挂载 HTTP 路由

利用 templ.Handler 注册至标准 net/http 路由器:

http.Handle("/", templ.Handler(Hello("世界")))
ESC
templ IDE 动图全屏
已复制到剪贴板