生态Web 与网络

言标:中文 HTML 超集

使用默认自动转义的插值、条件、循环、包含、继承和过滤器编写言枢页面。

言标是言枢内建的模板子项目。普通 HTML 保持原样,动态内容和控制流使用独立定界符;模板文件以.yb.html结尾。

插值

<h1>{{ 页面.标题 }}</h1>
<a href="{{ 文章.url }}">{{ 文章.title }}</a>

点路径读取嵌套典,不存在的路径输出空串。普通插值始终 HTML 转义,因此<标签>会输出为&lt;标签&gt;

可用过滤器:

{{ 名称|默认:匿名 }}
{{ 名称|大写 }}
{{ 名称|小写 }}
{{ 文章列|长度 }}
{{ 数据|JSON }}

JSON结果仍会 HTML 转义,适合展示而不是生成可执行脚本。

条件与循环

{% 若 已登录 %}
  <p>欢迎,{{ 用户.姓名 }}</p>
{% 否则 %}
  <p>请登录</p>
{% 终若 %}

{% 逐 文章 于 文章列 %}
  <article data-index="{{ 循环.索引 }}">{{ 文章.title }}</article>
{% 终逐 %}

若 非 已归档表示取反。循环元数据包含从 1 开始的序号、从 0 开始的索引首项末项

包含与继承

{% 含 partials/header.yb.html %}

基础模板:

<!doctype html>
<main>{% 块 主体 %}<p>默认内容</p>{% 终块 %}</main>

子模板:

{% 承 base.yb.html %}
{% 块 主体 %}<h1>{{ 标题 }}</h1>{% 终块 %}

一个模板只能承一个基础模板;多层继承保留最下层的同名块覆盖。{# ... #}用于不输出的注释。

可信 HTML

 数据  {「正文」:言枢.言标.信任HTML(已审计源码)};

只有显式言标安全HTML实例可以绕过插值转义。它是信任升级,不是清洗器,不能接收用户、接口、数据库或文件中的未审计数据。

文件与资源边界

  • 单模板最大 256 KiB;
  • 包含/继承最大 16 层;
  • 拒绝循环包含与继承;
  • 拒绝绝对路径、反斜杠、NUL、空段、...
  • 词法、结构、过滤器、路径和资源错误使用稳定YANBIAO_*前缀。

言标不解析或清洗 CSS、JavaScript、SVG,也不替代 CSP 与业务 URL 规则。完整实现参考见言枢博客