Skip to content
雲里
里雾

remark 插件通过 hProperties 注入 HTML 属性

astro 开发 更新于 2026/3/23

在 remark 插件中修改 MDAST 节点的 data.hProperties,可在 build 时向生成的 HTML 元素注入任意属性(包括 data-* 属性),供客户端脚本读取。

概述

这是 unified 生态的标准接口:remark 节点上的 data.hProperties 会在转换为 HAST(HTML AST)时合并到 HTML 元素的属性集合中。

适合将服务器端计算的数据(查表结果、聚合信息等)嵌入 HTML 标签,避免 client-side fetch。

用法

// 在 remark 插件中修改节点
node.data = node.data || {};
node.data.hProperties = {
  ...node.data.hProperties,
  "data-card-title": cardData.title,
  "data-card-content": cardData.content,
  "data-card-status": cardData.status,
  "data-card-tags": JSON.stringify(cardData.tags),
};

最终渲染为:

<a class="wiki-link"
   data-card-title="幂等性"
   data-card-content="在分布式系统中..."
   data-card-status="growing"
   data-card-tags='["分布式","API设计"]'>幂等性</a>

客户端读取:

link.dataset.cardTitle           // "幂等性"
JSON.parse(link.dataset.cardTags) // ["分布式","API设计"]

注意事项

参见

参考