-
-
Notifications
You must be signed in to change notification settings - Fork 555
template
luban使用scriban 模板引擎来生成代码,也使用这个模板来生成自定义的文本型数据文件。
模板文件在 Luban.Servers/Templates目录下。
尽管可以直接修改Luban.Server/Templates目录下的模板文件,但每次更新Luban.Server会覆盖自己的实现,不是很方便。 Luban.Server支持模板搜索路径, Luban.Server命令行参数" -t, --template_search_path path" 用于指定优先搜索路径。
为了优化性能,Luban.Server在运行时加载模板文件后,会保留模板缓存。在调试模板时,缓存机制导致不会重新加载模板文件,需要频繁重启,不太方便。可以通过参数 "--disable_cache" 禁用缓存。
自定义代码模板示例暂时请参见 CustomTemplates。 生成脚本示例参见 脚本目录 下的 gen_template_xxxx.bat 文件。
每个模板的默认提供的环境变量是不同的,代码和数据模板的环境变量不同,数据模板也分为convert模板(源数据格式到源数据格式的转换)和 data模板(源数据格式到导出格式的转换)。
- x 类型定义。 对于enum是DefEnum,对于bean是DefBean,对于table是DefTable
- assembly 当前定义集合。注意不是c#的dll assembly,而是当前你在配置中定义的所有类型信息的集合
- table 所在的DefTable的类型定义。
- data 当前记录的对应的DType数据
- assembly 当前定义集合。
- table 所在的DefTable的类型定义。
- datas 当前表的所有导出数据DType列表,即 List,DType 类型。
- assembly 当前定义集合。
当生成参数 --gen_types中包含 data_template时,为自定义数据模板模式,需要配合 --template_name <template_name> 来指定模板名(注意,模板名不要包含.tpl后缀),在
例如 "--gen_types data_template --template_name lua" 则会从搜索路径查找 config/data/lua.tpl 文件。
示例模板文件在 CustomTemplates/data 下。
luban会智能从 template_name 参数中猜测文件类型,默认给一个输出文件名。如果猜测失败,又没有指定 --data_file_extension 选项,则会报错。 像 lua2, lua,lua_test,my_lua_template 都会猜测为lua类型。