当前位置: 首页 > 软件库 > 程序开发 > 模板引擎 >

GKTemplate

采用 Go 开发的 DedeCMS 模板解析器
授权协议 Mulan PSL
开发语言 Google Go
所属分类 程序开发、 模板引擎
软件类型 开源软件
地区 国产
投 递 者 富涛
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

是否还记得,在PHP流行的年代,有一款开源免费的网站内容管理系统DedeCMS风靡全国。买域名,买空间主机,下载程序安装,设置好栏目,换上模板,添加采集规则,诺大一个门户瞬间就搭建好了。

SEO成就了DedeCMS的疯狂,但也是因为这样的疯狂让DedeCMS错过了移动互联网。全新的互联网时代,前后端分离,让模版解析渲染变得不再那么重要。

作为DedeCMS的核心开发者之一,也从PHP转到了Go,为了致敬DedeCMS,决定采用Go开发了一个类DedeCMS模板解析引擎的库。扩展库将骄傲地采用中国首个开源协议“木兰宽松许可证”进行发布。

项目名称叫GoKeep,寓意是能够将开源开发继续下去。

背景

GKTemplate是一个Go语言开发的模板引擎,由于Go语言内置的模板引擎自由度过高,导致开发使用相对比较困难,对界面模板制作要求会比较高,GKTemplate是一款基于标签、属性机制的模板引擎,在牺牲部分自由度、性能的前提下,优化模板语义机制,使得开发、制作模板变得更为轻松简单。

特点

  • UTF-8编码支持:模板引擎要求采用UTF-8编码,便于界面能够国际化支持;

  • 简单明了属性标记:类似XML结构的属性标记,上手简单,制作模板轻松自如;

  • 错误定位:模板标签错误定位,方便模板制作开发调试;

  • 标签化语义:类似XHTML标签语义,降低模板制作难度,减少开发制作成本;

  • 自由扩展:留有丰富的标签开发接口,方便进行二次扩展;

  • 缓存机制:模板解析进行缓存,模板解析性能达到最高;

  • 协程并发:采用Go协程机制,标签解析可并发操作,模板渲染性能最高;

  • 最小依赖:模板引擎只依赖Go默认库,不依赖任何第三方库;

用途

GKTemplate主要用于采用Go编写的HTTP Server中需要自定义呈现数据结构页面,同时也适用于采用模板机制生成例如:静态文件、静态文本等。

性能

该模板引擎性能稳定,符合开发者及用户使用要求,详细可参考模板引擎benchmark测试样例。

使用方法

执行go get -u -v github.com/gokeeptech/gktemplate

使用方法可以参考examples目录中的例子。

 相关资料
  • 门户首页 模板文件对应的是模板目录/portal/index.html,这个页面没有被控制器 assign任何变量,模板开发者完全可以用 portal:articles等其它模板标签制作此页面 文章列表 默认模板文件(可以增加更多) 默认模板文件对应的是模板目录/portal/list.html 控制器 assign 过的变量 $category这个变量是就是一个文章分类对象,可以当成数组直接用

  • 模板解析器类可以解析你的视图文件中的伪变量。它可以解析简单的变量或者以变量作为标签的结构。如果你以前没有用过模板引擎,那么伪变量如下所示:<html> <head> <title>{blog_title}</title> </head> <body> <h3>{blog_heading}</h3> {blog_entries} <h5>{title}</h5> <p>{body}</p> {/bl

  • 模板解析类可以对你视图文件中的伪变量进行简单的替换,它可以解析简单的变量和变量标签对。 如果你从没使用过模板引擎,下面是个例子,伪变量名称使用大括号括起来: <html> <head> <title>{blog_title}</title> </head> <body> <h3>{blog_heading}</h3> {blog_e

  • 问题内容: 我使用以下代码来解析html模板。它运作良好。 和html模板test.html。 但是当我将html文件移动到另一个目录时。然后使用以下代码。输出始终为空。 谁能告诉我怎么了?还是无法使用html / template包? 问题答案: 出问题的是您的程序(程序包)找不到文件。当您指定相对路径(您是相对路径)时,它们将解析到当前工作目录。 您必须确保html文件/模板在正确的位置。例如

  • DedeCMS常用SQL语句收录: 在DedeCMS V5.3系统中,我们很多地方需要用到SQL语句,例如批量修改(替换)内容、数据内容调用等,在系统模板中有一个专门用于调用数据的模板标签{dede:sql/}我们可以参考帮助中心的模板标签说明学习下这个标签如何使用。 当然我们在使用SQL语句和学习SQL语句的之前需要对织梦的数据库结构有一个大致的了解,我们可以通过帮助中心的数据库说明,来简单的了

  • PyCharm 是否可以解析 Django 模板中的引用?即,一些代码完成支持,当 Ctrl 单击模板变量时,我们应该转到相关的 python 对象。 Jetbrains网站对Django模板有一些令人印象深刻的魔力: 代码补全适用于Django标签、过滤器、模板变量和从视图方法传递的参数。 对Dobbs博士的评论证实了这一功能。但我似乎无法实现: 我已经从我的 virtualenv 设置了正确的