表格不能直接加itemscope和itemtype,必须用等语义容器包裹;itemprop须置于纯文本元素或中,地址等嵌套对象需显式声明子itemscope,且所有属性必须严格符合Schema.org规范。

将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
表格本身不能直接加 itemtype,必须用语义容器包裹
直接在 <table> 上写 <code>itemscope itemtype="https://schema.org/Event" 是无效的——<table> 不是合法的微数据作用域容器。浏览器和 Google Rich Results Test 会跳过整块结构。真正能承载 <code>itemscope 和 itemtype 的,是 <div>、<code><section></section>、<article></article> 这类通用容器,或语义明确的标签如 <figure></figure>(仅限图片)、<aside></aside>(需上下文匹配)。
常见错误包括:
– <table itemscope itemtype="https://schema.org/Product">
<br>– <code><tbody itemscope itemtype="https://schema.org/Organization"><ul><li>正确做法:用 <code><div itemscope itemtype="https://schema.org/Event"> 包裹整个 <code><table>,再在表内用 <code>itemprop 标注字段
itemtype 应选 https://schema.org/Organization;若展示多条同类型记录(如会议日程),优先用 https://schema.org/Event 并配合嵌套 itemprop="event"
<table> 当作用域容器,哪怕它视觉上“看起来像一个整体”——微数据解析器不认这个逻辑
<h3>
<code>itemprop 必须落在文本内容或 <meta> 上,不能只挂 <td>
<p><code><td itemprop="name">张三</td> 看似合理,但实际提取出的值可能含空格、换行或不可见字符,导致 Google 拒绝识别。更糟的是,如果 <td> 里嵌了 <code><strong></strong> 或 <span></span>,textContent 会混入多余空白,价格、日期等字段直接失效。
- 安全写法:确保
itemprop元素的textContent是干净纯文本,例如<td><span itemprop="name">张三</span></td> - 隐藏值(如 SKU、内部 ID)必须用
<meta itemprop="sku" content="A2890">,且<meta>必须与itemscope在同一父级元素下 - 避免在
<td> 上直接写 <code>itemprop后又塞图标、按钮或链接——只要innerHTML≠textContent,结构化数据就不可靠表格里的地址、联系人等嵌套对象必须显式声明子
itemscope表格某列显示“北京市朝阳区建国路1号”,不能直接
<td itemprop="address">北京市朝阳区建国路1号</td>。Schema.org 要求address是PostalAddress类型对象,不是字符串。漏掉这层嵌套,Google 地图卡片就不会出现地址标记。立即学习“前端免费学习笔记(深入)”;
- 正确结构:
<td itemprop="address" itemscope itemtype="https://schema.org/PostalAddress"> <span itemprop="addressLocality">北京市</span><span itemprop="addressRegion">朝阳区</span><span itemprop="streetAddress">建国路1号</span> </td> - 关键字段不能缺:LocalBusiness 的
address至少要含addressLocality、addressRegion、streetAddress;否则富媒体结果会降级 - 嵌套必须“紧贴”:
itemprop="address"和itemscope itemtype="https://schema.org/PostalAddress"必须出现在同一个 HTML 元素上,隔一层<div> 就断链 <h3>表格标题和表头单元格(<code><th>)不能当 <code>itemprop容器用<th> 是内联语义元素,设计上不承载作用域。你在 <code><th itemprop="name">姓名</th>上加itemprop,解析器会忽略——它只把<th> 当作列标识,不是数据载体。 <ul><li>表头信息(如“产品名称”“单价”)属于结构描述,不是实体属性,不该标 <code>itemprop;真正要标的是<td> 里的具体值 <li> <code><caption></caption>可以加itemprop,但前提是它被包在带itemscope的容器里,且该属性确属父实体(例如itemprop="description"描述整个事件表格) - 想让搜索引擎理解“这是一张价格对比表”,应通过父级
itemtype(如https://schema.org/ComparisonTable)声明,而不是靠<th> 标记 嵌套层级和 URL 大小写是硬门槛,错一个字符或漏一层 <code>itemscope,整块结构化数据就归零。别依赖“看起来渲染正常”来判断是否生效——必须用 Google Rich Results Test 实时验证。
- 正确结构:


















