proger / htmlki
无缝模板化,秉承HTML精神。
dev-master
2021-01-27 17:42 UTC
This package is not auto-updated.
Last update: 2024-09-28 16:31:00 UTC
README
HTMLki 采用非主流方法。与发明另一个PHP或Mustache不同,它为古老的HTML注入了新特性——循环、变量、本地化、自定义标签等,而不会破坏其原有的简洁形式。
<ul $menu>
<li "$classes">
<img $icon src=$icon>
<a "$url" target=$target>$caption</a>
</li>
</endul>
这里我们看到的是
- 一个循环:如果
$menu中至少有一个项目,则输出<ul> - 一个“if”:如果
$icon不为假值,则输出<img> - 一些属性魔法:
<li "classes">(<li class="classes">),<a "url">(<a href="url">) - 反XSS:
$caption是一个变量,默认是转义的
它没有依赖,可以在 PHP 5.6 及以上版本 中直接使用。
[ 完整文档 ]
用法
适用于Composer,在 Packagist 上通过 proger/htmlki 可用。
独立
// Configure your autoloader to load the HTMLki namespace from class/HTMLki/. echo HTMLki\HTMLki::template(HTMLki\HTMLki::compile('<radio>')); //=> <input type="radio">
功能
因为HTMLki是加强版的HTML,任何带有HTML/PHP语法方案的文本编辑器在大多数情况下都能正确高亮显示。
HTMLki为HTML注入了
- XSS防护 - 默认输出HTML转义
- 循环和条件 - 如上面的示例:
<ul $list>和<if $a == 3> - 属性魔法 - 自动扩展
<form file>为<form enctype="multipart/form-data">,<div "span-6">为<div class="span-6">等 - 标签魔法
- 快捷方式(
<radio>到<input type="radio">) - 多标签(
<thead/tr>到<thead><tr>) - 单标签(
<textarea />到<textarea></textarea>) - 等等
- 快捷方式(
- 语言行 - 简单地是任何用双引号包围的文本:
<b>"Hello!"</b> - 表达式和变量 - 如
{ date('d.m.y') } - PHP代码 - 正如你所猜测:
<?='string'?>- 短PHP标签自动扩展,因此你不必关心任何特定的php.ini设置 - 函数标签 - 以自定义标签的形式,如
<include> - 输入检查 - 清楚地看到模板接受什么:
$>currentPage@1 int <= $lastPage - 大多数构造可以转义,例如
""Not a language.",{{ not_an_expr }}和$$notAVar - 这个列表并不完整 - 请参阅 文档 了解所有增强功能
上面的内容不需要任何额外的集成代码。然而,你可以通过添加特定标签、属性等处理程序来调整HTMLki,使其成为适用于特定应用的理想标记。
例如,HTMLki 可以自动将 src、href 和 action 属性扩展为完整的 URL,或者有像 <errors> 这样的标签,输出与某些输入字段(文本区域、选择框等)关联的错误列表。