# mm 模板语法指南

## 规则（Rules）

模板引擎支持在 HTML 中嵌入动态数据，数据来源为 `viewBag`（视图数据）和 `globalBag`（全局数据）。

## 方法（Methods）

### 步骤1：输出变量

```html
<!-- 转义输出（防止XSS） -->
${viewBag.title}

<!-- 原始HTML输出（不转义） -->
${@viewBag.content}

<!-- 多语言文本 -->
${viewBag.lang.hello}

<!-- URL查询参数 -->
${viewBag.query.page}

<!-- 全局配置 -->
${globalBag.conf.site_name}
```

### 步骤2：条件判断

```html
<!--{ if(viewBag.user) }-->
  <p>欢迎，${viewBag.user.name}</p>
<!--{ else }-->
  <a href="/login">登录</a>
<!--{ /if }-->
```

### 步骤3：循环遍历

```html
<!--{ loop articleList item index }-->
  <div class="item">
    <span>${index + 1}.</span>
    <a href="${item.url}">${item.title}</a>
  </div>
<!--{ /if }-->
```

### 步骤4：嵌入子视图

```html
<!-- 嵌入其他模板文件 -->
${@view('./header.html')}

<!-- 嵌入挂件 -->
<!-- #main -->
```

## 技巧（Tips）

- `$to_time(时间戳)` 格式化时间，`$to_status(值)` 格式化状态
- Vue 集成：模板中可直接使用 `v-model`、`@click`、`v-if`、`v-for` 等指令
- 插值表达式：`{{ o.name }}`、`{{ $to_time(o.time) }}`
- CSS 框架类名：`mm_warp`（容器）、`mm_row`（行）、`mm_col`（列）、`mm_card`（卡片）、`mm_btn`（按钮）
