标签:git tput html 就是 family output text www htm
今天弄了一个配置随着使用环境动态切换的功能,一个基本的思路是:
这里面就涉及到了一个字符串模板的功能,关于模板语法,我选择的是最近比较流行的"Mustache"语法 ,基本格式就是基于双大括号的文本插值,
????<span>Message: {{ msg }}</span>
Mustache的特点是比较简单易读易用,就算运维人员也不难理解和使用。
至于到了实现,本身只是实现一个简单的花括号插值还是比较简单的,自己实现也没几行代码,但考虑到以后的扩展性,还是使用支持完整的Mustache语法的引擎吧,官方的C#解析库是stubble,一个基本示例如下:
????var stubble = new
StubbleBuilder().Build();
????var output = stubble.Render("hi {{name}}", new {name = "world"});
也能接受Dictionary类型作为参数,非常方便。
????var output = stubble.Render("hi {{name}}",
????????new
Dictionary<string, object>()
????????{
????
???????? ["name"] = "world"
????????});
其他的例子这里就不介绍了,如果感兴趣可以查看其官方示例。
另外一个比较流行的Mustache库是Nustache,体积要小些,接口也要简单点,
????var output = Render.StringToString("hi {{name}}", new {name = "world"});
不过它有两个问题。
基于以上两个原因,我觉得还是官方推荐的stubble更合适些。
除此之外,我在搜索字符串模板的时候,找到了另一个比较流行的模板liquid,语法用起来也非常类似
????Template template = Template.Parse("hi {{name}}"); // Parses and compiles the template
????template.Render(Hash.FromAnonymousObject(new { name = "tobi" })); // => "hi tobi"
感兴趣的朋友可以参考下如下文章:DotLiquid模板引擎简介
?
标签:git tput html 就是 family output text www htm
原文地址:https://www.cnblogs.com/TianFang/p/11915101.html