2 Star 13 Fork 5

智赢科技 / Liquid主题引擎

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Liquid主题引擎

介绍

使用 C# 开发的基于 Liquid 语言的多主题引擎。

渲染一个主题视图

//主题文件存放地址
var themeRootPath = Path.GetFullPath(Path.Combine("wwwroot", "themes"));
var fileProvider = new PhysicalFileProvider(themeRootPath);
//主题引擎配置
var themeEnginOptions = new LiquidThemeEngineOptions();
themeEnginOptions.FileProvider = new LiquidThemeFileProvider(fileProvider);//配置主题文件所在的位置
//主题名称(主题目录名称)
var theme = "default";
//视图名称,对应 templates 目录下的文件
var view = "index";
//视图模型,可以在模板中使用
var model = new
{
    Id = 123,
    Age = 10,
    CreatedTime = DateTime.Now
};
//创建一个模板上下文
var context = new LiquidThemeTemplateContext(themeEnginOptions, theme, model);
//设置多语言环境
context.CultureInfo = new CultureInfo("zh-hans");
//设置模板变量
context.SetValue("title", "标题的取值");
//渲染结果
var html = await LiquidThemeViewRender.RenderAsync(theme, view, context);
Console.WriteLine("渲染结果:{0}", html);

Liquid 语言文档

Liquid 模板语言中文文档

Liquid template language

主题结构

一个主题包含以下几个文件夹:

  • assets
  • config
  • layout
  • locales
  • sections
  • snippets
  • templates

assets 文件夹

资源目录。主题所需的 css、js、图片等文件存放在这个文件中,通过 asset_url 标签获取访问路径。

如果 assets 目录下有一个名为 logo.png 的文件,在模板中可以通过以下代码显示该图片:

<img src="{{ 'logo.png' | asset_url }}">

config 文件夹

主题配置文件目录。包含以下三个文件:

  • settings_schema.json
  • settings_presets.json
  • settings_data.json

settings_schema.json

该文件保存主题元信息和设置定义信息,内容为 JSON 数组字符串。

主题元信息包括:主题名称、作者、版本等。当 name=theme_info 时代表该条数据是主题辕信息。

settings_presets.json

主题预设设置,保存由开发者预定义的主题设置。可以有多套,设置一个主题的多个不同风格。用户可以快速选择一个风格。

settings_data.json

当前使用的主题设置。

layout 文件夹

保存主题的布局文件,当模板未通过 layout 标签指定布局文件时,会默认使用 theme 。布局文件中可以使用 render_body 标签输出模板内容。

locales 文件夹

多语言文件保存于此。

sections 文件夹

模板节保存于此。需要在 settings_data.json 中引用该文件夹中的文件,并通过 section 标签渲染一个模板节。

snippets 文件夹

代码段保存于此。可以在模板中使用 render 标签调用该目录下的文件。

templates 文件夹

模板文件保存于此。

MIT License Copyright (c) 2021 Soar360 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
C# 等 4 种语言
MIT
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/zyingnet_kf/liquid-theme-engine.git
git@gitee.com:zyingnet_kf/liquid-theme-engine.git
zyingnet_kf
liquid-theme-engine
Liquid主题引擎
master

搜索帮助