当前位置:网站首页>Art-template 中文文档[详细篇]
Art-template 中文文档[详细篇]
2022-07-30 05:40:00 【星月前端】
1.语法

art-template 支持标准语法与原始语法。标准语法可以让模板易读写,而原始语法拥有强大的逻辑表达能力。
标准语法支持基本模板语法以及基本 JavaScript 表达式;原始语法支持任意 JavaScript 语句,这和 EJS 一样。
2.输出
标准语法
{
{value}}
{
{data.key}}
{
{data['key']}}
{
{a ? b : c}}
{
{a || b}}
{
{a + b}}
原始语法
<%= value %> <%= data.key %> <%= data['key'] %> <%= a ? b : c %> <%= a || b %> <%= a + b %>
模板一级特殊变量可以使用 $data 加下标的方式访问:
{
{$data['user list']}}
3.原文输出
标准语法
{
{@ value }}
原始语法
<%- value %>
原文输出语句不会对
HTML内容进行转义处理,可能存在安全风险,请谨慎使用。
4.条件
标准语法
{
{if value}} ... {
{/if}}
{
{if v1}} ... {
{else if v2}} ... {
{/if}}
原始语法
<% if (value) { %> ... <% } %>
<% if (v1) { %> ... <% } else if (v2) { %> ... <% } %>
5.循环
标准语法
{
{each target}}
{
{$index}} {
{$value}}
{
{/each}}
原始语法
<% for(var i = 0; i < target.length; i++){ %> <%= i %> <%= target[i] %> <% } %>
target支持array与object的迭代,其默认值为$data。$value与$index可以自定义:{ {each target val key}}。
6.变量
标准语法
{
{set temp = data.sub.content}}
原始语法
<% var temp = data.sub.content; %>
7.模板继承
标准语法
{
{extend './layout.art'}}
{
{block 'head'}} ... {
{/block}}
原始语法
<% extend('./layout.art') %>
<% block('head', function(){ %> ... <% }) %>
模板继承允许你构建一个包含你站点共同元素的基本模板“骨架”。范例:
<!--layout.art-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>{
{block 'title'}}My Site{
{/block}}</title>
{
{block 'head'}}
<link rel="stylesheet" href="main.css">
{
{/block}}
</head>
<body>
{
{block 'content'}}{
{/block}}
</body>
</html>
<!--index.art-->
{
{extend './layout.art'}}
{
{block 'title'}}{
{title}}{
{/block}}
{
{block 'head'}}
<link rel="stylesheet" href="custom.css">
{
{/block}}
{
{block 'content'}}
<p>This is just an awesome page.</p>
{
{/block}}
渲染 index.art 后,将自动应用布局骨架。
8.子模板
标准语法
{
{include './header.art'}}
{
{include './header.art' data}}
原始语法
<% include('./header.art') %>
<% include('./header.art', data) %>
data数默认值为$data;标准语法不支持声明object与array,只支持引用变量,而原始语法不受限制。- art-template 内建 HTML 压缩器,请避免书写 HTML 非正常闭合的子模板,否则开启压缩后标签可能会被意外“优化。
9.过滤器
注册过滤器
template.defaults.imports.dateFormat = function(date, format){/*[code..]*/};
template.defaults.imports.timestamp = function(value){return value * 1000};
过滤器函数第一个参数接受目标值。
标准语法
{
{date | timestamp | dateFormat 'yyyy-MM-dd hh:mm:ss'}}
{ {value | filter}} 过滤器语法类似管道操作符,它的上一个输出作为下一个输入。
原始语法
<%= $imports.dateFormat($imports.timestamp(date), 'yyyy-MM-dd hh:mm:ss') %>
如果想修改
{ {}}与<%%>,请参考 解析规则。
---------个人博客地址:星月前端博客 – 星月 --------
星月前端博客
https://xingyue.vercel.app/
记录前端学习笔记,欢迎收藏或者提意见。
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系
边栏推荐
- Record Breaker (Google Kickstart2020 Round D Problem A)
- 【Typescript】学习笔记(三)之接口与泛型的使用
- Qt实现单击或双击QTableWidge/View表头进行排序
- Navicat connection MySQL error: 1045 - Access denied for user 'root'@'localhost' (using password YES)
- 初识C语言
- [Other] DS5
- Introduction to Oracle Patch System and Opatch Tool
- String类型字符串获取第一次或者最后一次出现的下标
- Frobenius norm(Frobenius 范数)
- 秒杀项目的总结及面试常见问题
猜你喜欢
随机推荐
Navicat cannot connect to mysql super detailed processing method
torch.load()
Detailed MySQL-Explain
417.太平洋大西洋水流问题
flask的笔记
Qt对动态库(*.dll)的封装以及使用
“tensorflow.keras.preprocessing“ has no attribute “image_dataset_from_directory“
瑞吉外卖项目:新增菜品与菜品分页查询
信号量解决生产者消费者问题
650.只有两个键的键盘(动态规划)
MySQL stored procedure
相对路径和绝对路径的区别
It is enough for MySQL to have this article (37k words, just like Bojun!!!)
839. Simulated heap
安装pytorch
别找了,你要的C语言“数组”在这里
分支和循环语句
net start mysql MySQL 服务正在启动 . MySQL 服务无法启动。 服务没有报告任何错误。
C语言:快速排序三种方法(递归)
flask使用token认证









![[Other] DS5](/img/20/6863bb7b58d2e60b35469ba32e5830.png)