解释hy(Xcms)内容管理系统中,后台manager文件夹中所有ftl页面中指令标签的调用,全部都用@ms.打头的原因
这几天在研究hy中标签库的写法(类似于freemarker),对于他的后台页面都是ftl格式的,我非常好奇,
大概看完了所有manager文件下的代码,于是便产生了一个疑问,就是它定义的所有标签必须用@ms.打
头,标签必须正确闭合!他是怎么做到所有标签调用都必须@ms.打头的?我查了一下freemarker中import的用法,写了Demo测试,发现import 可以给标签空间起一个别名,但是写2个或以上的import,别名就不能一样!所以就更加好奇它的实现原理。先给大家看看它的后台所有ftl:
如上图所示,所有的标签调用都是用@ms.打头,也没有使用<#include “ui/index.ftl”/> 或者
<#import”ui/index.ftl” as ms/>最终在它的配置文件中找到了答案,如下所示:
他这样引用写的很好!让所有macro中定义的指令都统一用@ms. 调用。接下来我们看看
macro.ftl.如下图:
最后,由上图所示,在macro.ftl 中用include将index.ftl包含进来,而在index.ftl 中又使用include将其他所有的ftl包含进来了。这样的话,再在配置文件中配置一下就可以使用了。
解释hy(Xcms)内容管理系统中,后台manager文件夹中所有ftl页面中指令标签的调用,全部都用@ms.打头的原因相关推荐
- idea中各种标记文件夹的含义
idea中各种标记文件夹的含义 在idea中标记文件夹 各个文件夹的含义 Source roots:通过将文件夹加入这种类别,来告诉IntelliJ IDEA,这个文件夹和它的子文件夹中包含源码,在构 ...
- python中临时文件及文件夹使用
python中临时文件及文件夹使用 文章目录 python中临时文件及文件夹使用 一.简介 二.临时文件夹 2.1 获取临时文件夹 2.2 生成临时文件夹 三.临时文件 3.1 生成不自动删除(关闭时 ...
- php免写代码系统,drycms: 基于php7(swoole)+mysql的智能内容管理系统,后台不需要写代码,支持docker部署。...
项目介绍 DRYCMS是一款基于PHP7(swoole)+MYSQL的智能内容管理系统,后台几乎不需要写代码,支持docker部署. 您可以照着文档里面的实践->多级分类操作一遍,然后就知道后台 ...
- 实验6-cp –r系统命令的实现--源路径(目录)中的所有文件和子目录,以及子目录中的所有内容,全部拷贝到目标路径(目录)中--操作系统实验
实验目的 掌握Linux目录操作方法,包括打开目录.关闭目录.读取目录文件 掌握Linux文件属性获取方法,包括三个获取Linux文件属性的函数.文件属性解析相关的宏 掌握POSIX与ANSI C文件 ...
- ASP.NET Core 中的 wwwroot 文件夹
在本文中,我将讨论ASP.NET Core应用程序中的 wwwroot 文件夹.请阅读我们之前讨论过ASP.NET Core 请求处理管道的文章.在本文的最后,您将了解 wwwroot 文件夹及其需求 ...
- 通过从备份中排除这些文件夹来节省Time Machine驱动器上的空间
Are you getting notifications about a full Time Machine drive? Do you feel like your backups are tak ...
- Python目录下中没有Script文件夹
其中需要将C:\python27\Scripts 和 C:\python27 添加到系统路径中. 计算机属性-远程设置-高级(环境变量)-系统变量PATH后面添加Scrips的路径 而我的Python ...
- sd卡有多个android文件夹,android - 如何adb拉出SD卡中存在的文件夹的所有文件
android - 如何adb拉出SD卡中存在的文件夹的所有文件 我的SD卡中有一个文件夹:/mnt/sdcard/Folder1/Folder2/Folder3/*.jpg Folder1和Fold ...
- java递归删除文件夹_如何使用递归删除Java中的目录/文件夹
java递归删除文件夹 Earlier we learned how to create a file in java and how to delete a file in java. Here w ...
最新文章
- glob.glob 函数读取文件
- C#面向对象(四)虚方法实现多态
- Outlook数据提取工具readpst
- UnsatisfiedLinkError解决办法
- Python中的负索引是什么?
- mysqldump表损坏问题
- wxWidgets:实现框架构造器
- boost::phoenix模块使用 istreambuf_iterator 测试 lambda 函数对象
- [渗透攻防] 一.从数据库原理学习网络攻防及防止SQL注入
- cookie 跨域问题
- Docker:尝试篇
- Sql server2005中如何格式化时间日期
- R语言与回归分析几个假设的检验
- 一分钟了解自动化测试
- javaweb时间插件
- 最全支付系统设计包含:账户,对账,风控...
- centos7 定时清理内存
- 扩容内存卡用mydisktest失效,教你怎么用USBoot恢复出真实容量
- java 生成word 分页,jsp转word + 分页
- upyun java_又拍云Java SDK
热门文章
- Mal-PEG12-acid,357277-61-3溶解性:水、DMSO、DCM、DMF
- n行Python代码系列:四行程序实现两个视频同屏播放
- MySQL数据库原理习题---SQL复杂查询
- 计算机主板上主要有哪些芯片,电脑主板上主要的芯片及作用
- Java基础 时间相关类小结[Timestamp,Date,Calendar]
- windowsXP远程桌面连接失败 “由于账户限制,无法登录”
- Word控件Spire.Doc 转换教程(二十八):将 Word 转换为 PCL
- 如何创建在线商城详细教程, 无代码拖放式网站建设工具, 使用US Domain Center最流行的在线建站平台
- Python爬取糗事百科段子+定时发送QQ邮箱
- telegram bot自动发送消息