using Luban.Job.Cfg.Datas; using Luban.Job.Cfg.Defs; using Luban.Job.Cfg.Utils; using Scriban; using System.Collections.Generic; namespace Luban.Job.Cfg { public static class RenderExtension { public static string RenderCode(this Template template, object model, Dictionary extraModels = null) { var ctx = new TemplateContext(); var env = new TTypeTemplateExtends { ["x"] = model }; if (extraModels != null) { foreach ((var k, var v) in extraModels) { env[k] = v; } } ctx.PushGlobal(env); return template.Render(ctx); } public static string RenderData(this Template template, DefTable table, List exportDatas, Dictionary extraModels = null) { var ctx = new TemplateContext(); var env = new DTypeTemplateExtends { ["table"] = table, ["datas"] = exportDatas, }; if (extraModels != null) { foreach ((var k, var v) in extraModels) { env[k] = v; } } ctx.PushGlobal(env); return template.Render(ctx); } } }