ITPub博客

首页 > 数据库 > 数据库开发技术 > 一篇文章了解Liquid模版引擎

一篇文章了解Liquid模版引擎

原创 数据库开发技术 作者:后端Q 时间:2022-02-25 00:00:00 0 删除 编辑

背景


平常比如开发个代码生成器一般是定一个模板,然后里面很多变量,根据数据生成文件。这时候模版引擎就派上了用场。


下面我们来介绍下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();        }



原文作者:后端Q;如有侵权,请联系管理员删除。

上一篇: CodeSmith简单用法
请登录后发表评论 登录
全部评论

注册时间:2023-01-22

  • 博文量
    1540
  • 访问量
    726079