当前位置: 首页 > article >正文

Scriban:高效、强大的.NET开源模板引擎,可用于邮件、文档生成!

现在前后端分离已经非常流行,我们已经很少关注模板生成引擎了。但在一些场景,比如邮件、文档生成,还是需要模板生成引擎的。

下面推荐一个轻量级且高效的文本模板生成引擎。

01 项目简介

Scriban是一个基于.NET的开源模板语言引擎,旨在简化文本生成任务。

Scriban主要功能与特性:

1、简洁的语法

该模板引擎使用简单、语法简洁。

例如,使用{{ variable }}输出变量,{% if condition %}…{% endif %}进行条件判断,{% for item in collection %}…{% endfor %}用于循环操作。

2、高性能

采用了编译到IL(中间语言)的方式,而非简单的字符串替换,这在处理大量数据时能够显著提升性能。

3、类型安全

Scriban能够利用静态类型检查,避免运行时错误,提高代码质量。

4、丰富的内置函数和过滤器

除了基本的变量和控制结构外,还提供了许多内置函数和过滤器,如字符串操作、日期格式化等,以增强模板的功能。

5、自定义标签和对象

允许开发者扩展其功能,创建自己的标签和对象,以满足特定需求。

6、兼容性与扩展性

Scriban具有用于解析Liquid模板的兼容模式,使得从Liquid迁移到Scriban变得容易。

7、跨平台

可以在Windows、Linux、MacOS等平台上运行。

02 使用方法

1、简单使用

// 解析scriban 模板
var template = Template.Parse("Hello {{name}}!");

//结果:Hello World!
var result = template.Render(new { Name = "World" });

2、liquid模板

// 解析 liquid 模板
var template = Template.ParseLiquid("Hello {{name}}!");

//结果:Hello World!
var result = template.Render(new { Name = "World" });

3、循环生成文本

//循环模板
var template = Template.Parse(@"
<ul id='products'>
  {{ for product in products }}
    <li>
      <h2>{{ product.name }}</h2>
           Price: {{ product.price }}
           {{ product.description | string.truncate 15 }}
    </li>
  {{ end }}
</ul>
");
var result = template.Render(new { Products = this.ProductList });

03 项目地址

https://github.com/scriban/scriban

- End -

推荐阅读

Asp.net动态Web API的教程!

Kiota:基于OpenAPI的HTTP客户端代码生成器

盘点下5个Winform UI开源控件库

Open-Xml-PowerTools:支持DOCX、PPTX、XLSX等文件的合并、拆分和互相转换的.Net开源工具

一个C#开源工具库,集成了超过1000个扩展方法


http://www.kler.cn/news/284367.html

相关文章:

  • 数据结构—栈和队列
  • git 更改分支名称
  • 每日OJ_牛客_数据库连接池(简单模拟)
  • 迁移学习之领域自适应(domain adaptation)
  • 护网中经常使用的一些工具(非常详细)零基础入门到精通,收藏这一篇就够了
  • 数据结构-manacher算法
  • .NET8 Web 利用BAT命令 一键部署 IIS - CI-CD基础
  • vscode里调试python3.6的配置
  • LlamaIndex 工作流
  • 皕盛电商平台:为合作伙伴提供广阔的发展空间
  • 华为管理工程与管理工程部
  • 3 Python开发工具:VSCode+插件
  • OSI七层模型中的数据链路层
  • 设计模式 15 解释器模式
  • uni-app开发日志:将schema2code生成的新增页和修改页整合成一页
  • 8种数据结构
  • 【RabbitMQ】应用
  • 纯vue实现笔记系统
  • 【python】Gpt-embedding文本建模
  • 【面试题系列Vue06】Vue 单页应用与多页应用的区别
  • 【单片机原理及应用】实验:数码管的中断控制
  • customRef 与 ref
  • docker仓库的工作原理
  • Apache CloudStack Official Document 翻译节选(十)
  • 零基础转行学网络安全怎么样?
  • sheng的学习笔记-AI-基于分歧的方法
  • 高性价比百元学生党蓝牙耳机怎么选?2024四款年度耳机推荐揭秘!
  • redis作为缓存,mysql的数据如何与redis同步
  • 力扣52-最大子序和(java详细题解)
  • AI产品经理系列:如何应对AI时代?