主要观点:作者在有限业余时间喜欢用 C 写 Web 应用,输出 HTML 时需处理字符串转义,于是开发了简单模板引擎。目标是简单易实现和使用、无意外、无运行时模板评估。模板以“块”为基本抽象,可编译为 C 函数,有多种特殊构造如“{!...!}”(包含 C 代码)、“define”(创建块)等,还提供“printf”“if”“for”等控制结构及控制转义的语法,模板编译器将其编译为 C 代码,使用时需编译模板文件并使用运行时库初始化,当前实现有去除行首尾空白等不足,目前未设中央仓库,作者已用其写了一些东西,当前模板相关代码累计约 3600 行。
关键信息:
- 用 C 写 Web 应用及输出 HTML 时的转义问题。
- 开发的简单模板引擎的目标和特点。
- 模板引擎的基本抽象“块”及各种特殊构造。
- 编译后的 C 代码形式及运行时要求。
- 当前实现的不足和未设中央仓库的情况。
重要细节: - 定义块需有“tp”变量,“finally”部分用于资源清理。
- 模板是 yacc 语法,可方便添加特殊语法。
- 运行时模板库需“write(2)”样函数和缓冲区,模板不分配内存。
- 当前模板相关代码累计约 3600 行,实际代码量约 1K 多(含注释和空白)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。