.NETCore.NET5.NET6开源项⽬汇总13:模板引擎
系列⽬录
开源项⽬是众多组织与个⼈分享的组件或项⽬,作者付出的⼼⾎我们是⽆法体会的,所以⾸先⼤家要⼼存感激、尊重。请严格遵守每个项⽬的开源协议后再使⽤。尊重知识产权,共建和谐开源社区。
模板引擎可以⽣成特定格式的⽂档,⽤于软件开发中⽣成具有相对规则的代码⽂件,⽐如:数据访问层、业务逻辑层、UI层等,使⽤模板可以⼤⼤提⾼开发效率。
模板引擎的实现⽅式有很多,最简单的是“置换型”模板引擎,这类模板引擎只是将指定模板内容(字符串)中的特定标记(⼦字符串)替换⼀下便⽣成了最终需要的业务数据(⽐如⽹页)。置换型模板引擎实现简单,但其效率低下,⽆法满⾜⾼负载的应⽤需求(⽐如有海量访问的⽹站),因此还出现了“解释型”模板引擎和“编译型”模板引擎等。
1、Fluid 【最值得推荐】
Liquid 是⼀门开源的模板语⾔,由 Shopify 创造并⽤ Ruby 实现。它是 Shopify 主题的主要构成部分,
并且被⽤于加载店铺系统的动态内容。它是⼀种安全的模板语⾔,对于⾮程序员的受众来说也⾮常容易理解。从 2006 年起,Liquid 就被 Shopify 所使⽤,现在更是被⼤量 web 应⽤所使⽤。
Fluid 是⼀个基于 Liquid 模板语⾔的开源 .NET 模板引擎。官⽹⽂档⾮常详细、简单易容、是最值得推荐的模板引擎。
NuGet:
GitHub:
英⽂⽂档:
中⽂⽂档:
2、Scriban【推荐】
Scriban是⼀种⽤于.NET的快速、强⼤、安全和轻量级脚本语⾔和引擎,它主要是为⽂本模板开发的,具有⽤于解析Liquid模板的兼容模式。
特征
⾮常⾼效、快速的解析器和轻量级的运⾏时。CPU 和垃圾收集器友好。检查以获取更多详细信息。
由提供完整抽象语法树的 Lexer/Parser 提供⽀持,快速、通⽤且健壮,⽐基于正则表达式的解析器更⾼效。
⽤于错误报告的精确源代码位置(路径、列和⾏)
将 AST 写⼊脚本⽂本表⽰,使⽤,允许在内存中操作脚本并将它们重新保存到磁盘,对于往返脚本更新场景很有⽤liquid使⽤Template.ParseLiquid⽅法兼容提供许多扩展点的可扩展运⾏时
虽然该liquid语⾔不如 scriban 强⼤,但此模式允许轻松迁移liquid到不同scriban语⾔
使⽤模式,您可以liquid使⽤Template.ToText解析为的模板将脚本转换为抄写员脚本Template.ParseLiquid
由于 Liquid 语⾔没有严格定义,并且实际上有各种版本的 Liquid 语法,因此在使⽤带有 scriban 的液体模板时存在⼀些限制,请参阅⽂档中的获取更多详细信息。
⽀持async/await评估脚本(例如Template.RenderAsync)
包括if/ else/ for/ while、( x = 1 + 2)、条件...等。
( myvar | string.capitalize)(javascript/json 之类的对象x = {mymember: 1})和(例如x = [1,2,3,4])
通过func语句直接进⼊语⾔,并允许函数指针/委托通过alias @ directive
将来⾃运⾏时 API 的与⽤于与 .NET 对象交互的进⾏绑定。
允许将传递给函数,通常由wrap语句使⽤
⼏个:⽽不必包含每⼀⾏{{...}}
和,允许您控制公开的对象和函数
语法着⾊
可以安装的以获取 scriban 脚本(不含 HTML)和 scriban html ⽂件的语法着⾊。
⽂档
有关语⾔语法的说明,请参阅⽂档。
有关的列表,请参阅⽂档。
有关⽤于编译和运⾏模板的 .NET 运⾏时 API 的说明,请参阅⽂档。
有关模板⽀持的更多详细信息,请参阅⽂档。
有关⼀些幕后细节,请参阅我的博客⽂章“”。
⼆进制⽂件
Scriban 可⽤作 NuGet 包:
与以下 .NET Standard 2.0+ 兼容(3.0 中的新增功能)
为了⽀持较旧的框架(.NET 3.5、4.0、4.5、.NET Standard 1.1、1.3,它们仅在不再受⽀持的较旧的 Scriban 2.x 中提供。
另外, NuGet包提供了签名的程序集。
源嵌⼊
从 Scriban 3.2.1+ 开始,该软件包附带了源代码,以便您可以将 Scriban 的使⽤内化到您的项⽬中。这在您⽆法轻松使⽤ NuGet 引⽤(例如 Roslyn 源⽣成器)的环境中⾮常有⽤。
相关项⽬
: 液体模板引擎的 .NET 端⼝
.NET 液体模板引擎
:.NET 的⽆逻辑模板
: handlebars.js 的 .NET 端⼝
:使⽤ Scriban 模板将 CSV/JSON/YAML 模型转换为代码的 UI 和 CLI ⼯具
在线演⽰
ASP.NET Core ⽰例:
GitHub:
asp 源代码3、NVelocity
NVelocity是⼀个⾮常不错的模板引擎,可以⽤来⽣成⽂件、页⾯等相关处理,⾮常⾼效和⽅便。它原先是在⽹站上维护,不过从0.41后,该⽹站就不再进⾏NVelocity更新了,现在可以在⽹站deplex/上获得最新版本的更新。
官⽹:
4、VTemplate
VTemplate模板引擎也简称为VT,是基于.NET的模板引擎,它允许任何⼈使⽤简单的类似HTML语法的模板语⾔来引⽤.NET⾥定义的对象。当VTemplate应⽤于web开发时,界⾯设计⼈员可以和程序开发⼈员同步开发⼀个遵循MVC架构的web站点,也就是说,页⾯设计⼈员可以只关注页⾯的显⽰效果,⽽由程序开发⼈员关注业务逻辑编码。VTemplate将.NET程序代码从web页⾯中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在ASP.NET WebForm开发之外⼜提供了⼀种可选的⽅案。 VTemplate也可以作为动态⽂本⽣成⼯具,⽣成HTML、XML、邮件、程序源代码或其它⽂本等。
VTemplate 开源地址
URL:
SVN:
参考⽰例 VTemplate.WebTester 项⽬:
参考博客:
5、Mustachio
Mustachio 是⼀款轻量级且强⼤的模板引擎,可以⽤在⽹页渲染、代码⽣成器等需要模板引擎的场景。我⽤它是⽤在配置⽂件模板化的场景,在配置⽂件⾥⾯编写⼀些模板语法,然后从 Cloud 拉取键值配置数据,来渲染配置⽂件,最后加载到程序中。和 Razor ⽐起来,它⾮常的简单和轻,如果有这⽅⾯的需求可以考虑选择它。
GitHub:
6、RazorEngine
Razor Engine,之前仅仅是ASP.NET MVC的⼀种View引擎,⽬前已经完全成为⼀种可以独⽴使⽤的模版引擎,并且已经成为了CodePlex上⼀个开源的项⽬()。对于使⽤过ASP.NET MVC Razor视图引擎的朋友们⼀定已经领略过它的灵活性和易⽤性。T4模板采⽤的就是该引擎。
GitHub:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论