了解Liquid模版引擎
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解Liquid模版引擎相关的知识,希望对你有一定的参考价值。
背景
平常比如开发个代码生成器一般是定一个模板,然后里面很多变量,根据数据生成文件。这时候模版引擎就派上了用场。
下面我们来介绍下Liquid。什么是Liquid 呢,就像java、c#等编程语言一样,Liquid也是一种独立的语言,没什么大差别,基本功能都有。动态生成文件,可以输出变量,操作数组等,这些都能达到。
官方的介绍
Liquid 是一门开源的模板语言,由 Shopify 创造并用 Ruby 实现。它是 Shopify 主题的骨骼,并且被用于加载店铺系统的动态内容。
Liquid 语法
Liquid 代码可分为 对象(object)、标记(tag) 和 过滤器(filter)。
对象
对象 告诉 Liquid 在页面的哪个位置展示内容。对象和变量名由双花括号标识: 和 。
标记(tag)
标记(tag) 创造了模板的逻辑和控制流。他们由单括号加百分号标识:% 和 %。
过滤器
过滤器 改变 Liquid 对象的输出。他们被用在输出上,通过一个 | 符号分隔。
开原地址 :
https://github.com/Shopify/liquid
c#专用Dot Liquid
那么基于c#的有没有对应的liquid插件呢,还真有。Dot Liquid.
DotLiquid相比于Mvc默认模板引擎Razor的好处有:
因为不需要编译到程序集再载入
首次渲染速度很快
不会导致内存泄漏
使用方法
1、nuget安装 using DotLiquid;
2、定义实体,继承: Drop是关键
public class DotLiquidMdDrop : Drop
private readonly Questions questions;
public List<Answer> answer
get return questions.Answer;
public DotLiquidMdDrop(Questions questionsPara)
questions = questionsPara;
3、这里我们造一些测试数据,并且调用
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult DotLiquidDemo1(string template)
string test = GetInterIDList(template);
ViewData["template"] = Template.Parse(test).Render(Hash.FromAnonymousObject(
new
questions = new List<DotLiquidMdDrop>()
Getmork()
, Getmork()
, Getmork()
// , new DotLiquidMdDrop(new Questions() Answer =new List<Answer> () new Answer() option = "Aa", optiontext = "选项内容1111" , new Answer() option = "Aa", optiontext = "选项内容1111" )
));
return View();
以上是关于了解Liquid模版引擎的主要内容,如果未能解决你的问题,请参考以下文章