日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一篇文章了解Liquid模版引擎

發布時間:2023/12/4 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一篇文章了解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模版引擎的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。