2.4.2 • Published 4 months ago
mm_tpl v2.4.2
mm_tpl
这是超级美眉模板帮助类模块,用于MVC模式下的视图渲染。基于art-template模板引擎,提供了更强大的模板渲染功能。
安装
npm install mm_tpl
基本使用
1. 初始化模板引擎
const Tpl = require('mm_tpl');
const tpl = new Tpl({
// 可选配置参数
root: process.cwd(), // 根目录
default_dir: "./template/", // 默认模板目录
default_theme: 'default', // 默认主题
extname: ".html", // 模板文件扩展名
cache_root: './cache', // 缓存目录
cache_extname: '.cache.html' // 缓存文件扩展名
});
2. 基础模板渲染
// 简单变量替换
const result = tpl.render("<div>${message}</div>", {
message: "Hello World"
});
// 输出: <div>Hello World</div>
3. 循环渲染
// 数组循环
const arrayResult = tpl.render(`
<ul>
${loop arr value idx}
<li>${idx}: ${value}</li>
${/loop}
</ul>
`, {
arr: [123, 234]
});
// 对象循环
const objectResult = tpl.render(`
<dl>
${loop obj value key}
<dt>${key}</dt>
<dd>${value}</dd>
${/loop}
</dl>
`, {
obj: { name: "张三", age: 25 }
});
4. 视图渲染
// 设置全局变量
$.globalBag.siteName = "我的网站";
// 设置视图变量
tpl.viewBag.title = "首页";
// 渲染视图文件
const html = tpl.view("./views/index.html", {
user: { name: "张三" }
});
5. 缓存机制
// 使用缓存渲染视图
const html = tpl.view("./views/page", {
data: someData
}, {
cache: true, // 是否使用缓存
cache_filename: "./cache" // 缓存文件名
});
// 清除指定目录的缓存
tpl.clear_cache('./views/mall');
6. 钩子系统
添加函数钩子
$.hook.addFunc('list', async function(viewBag, req, type) {
// 处理列表逻辑
return someData;
});
添加动作钩子
$.hook.addAction('header', function(viewBag, param) {
return "<header>网站头部</header>";
}, 1, "headerAction");
添加过滤器钩子
$.hook.addFilter('content', function(viewBag, content, param) {
return content.replace("旧文本", "新文本");
}, 1, "contentFilter");
使用钩子
// 运行函数钩子
await tpl.runFunc('list', {
query: { page: 1 }
}, 'article');
// 在模板中使用动作钩子
${hook_action('header')}
// 在模板中使用过滤器钩子
${hook_filter('content', '原始内容')}
高级特性
1. 主题支持
// 设置当前主题
tpl.current_theme = "dark";
2. 模板规则
模块内置支持多种模板规则,包括:
- nativeRule: 原生语法规则
- artRule: art-template语法规则
- htmlRule: HTML注释语法规则
- jsRule: JavaScript语法规则
- pyRule: Python风格语法规则
3. 错误处理
const html = tpl.view("./template.html", data);
if (tpl.error) {
console.error("渲染错误:", tpl.error);
}
注意事项
- 确保模板目录具有正确的读写权限
- 使用缓存时注意及时清理过期缓存
- 钩子的优先级数值越小,执行顺序越靠前
- 建议在生产环境开启模板缓存以提高性能
许可证
MIT
2.4.1
4 months ago
2.4.0
4 months ago
2.4.2
4 months ago
2.3.9
9 months ago
2.3.0
12 months ago
2.3.2
11 months ago
2.3.4
11 months ago
2.3.3
11 months ago
2.3.6
11 months ago
2.2.7
1 year ago
2.3.5
11 months ago
2.2.6
1 year ago
2.3.8
11 months ago
2.2.9
1 year ago
2.3.7
11 months ago
2.2.8
1 year ago
2.2.5
2 years ago
2.2.4
2 years ago
2.2.1
2 years ago
2.2.0
2 years ago
2.2.3
2 years ago
2.2.2
2 years ago
2.1.6
2 years ago
2.1.5
2 years ago
2.1.8
2 years ago
2.1.7
2 years ago
2.1.9
2 years ago
2.1.4
4 years ago
2.1.3
4 years ago
2.1.2
4 years ago
2.1.1
5 years ago
2.0.8
5 years ago
2.1.0
5 years ago
2.0.6
5 years ago
2.0.5
5 years ago
2.0.4
5 years ago
2.0.3
5 years ago
2.0.2
5 years ago
2.0.1
5 years ago
2.0.0
5 years ago
1.2.9
5 years ago
1.2.8
5 years ago
1.2.7
6 years ago
1.2.6
6 years ago
1.2.5
6 years ago
1.2.4
6 years ago
1.2.3
6 years ago
1.2.2
6 years ago
1.2.1
6 years ago