@ doman数字/ graph
Schema.org 多曼数字客户端网站的实体图创建者:一个稳定
@id 词汇,常见实体类型的节点构建器(Organization,
WebSite,人物,地点,服务,文章,FAQPage,BreadcrumbList,项目列表,
ProstCatalog)和一个未解决的验证器 @id 参考文献
复制 @id在他们出发前.
读取 原则.md 在将它接入新重播之前, 或 扩展它. 校对:Portnoy 长期合同,防止投资组合重新流动 断开的计划岛屿.
为什么会这样
在整个投资组合中,结构化数据每笔重新执行。 这个
反复出现的缺陷 : provider 编号 : worksFor 编号 : publisher 筑巢为文字
对象代替 {'@id': ...} 参考文献,所以一个页面服务与
它所属的组织在任何事物的眼里都是断开的
分析图表。 这个软件包使连接的版本成为默认版本,并且
添加检查( e)findGraphIssues),当裁判不在场时,大声地失败了
解析或两个节点相撞 @id - 两个失败模式手写
JSON -LD继续运输.
在两个结构不同的地点生产
提取 : dd-templates (多尼切模板,每个作者人物节点,
/service-areas/ + 键 /blog/ 线路)和单商电工站点
(一个创始人, /electrician/ + 键 /guides/ 线路通. 都消耗这个软件包
零路由配置 - 每 @id 是根- 焦虑
(单位:千美元)${siteUrl}/#kind-slug),而不是从实体自己的页面路径来构建.
安装
pnpm add @domandigital/graph
公开在npm,Apache-2.0上,发布来源于被标记的发行.
无害环境管理和CJS共同建造船舶,每艘船舶都有自己的类型,因此在以下条件下工作:
两者 import 财务报告和审定财务报表 require。需要22.12节点或更新.
早期的版本被作为被贴在标签上的一种基特依赖被消耗. 狦琌
升级仍然这样做的还原器,替换
github:Doman-Digital/dd-graph#vX.Y.Z 具有正常分解范围的分解器.
您也可以放弃 resolve.preserveSymlinks: true 从 vitest.config.ts 若为
它被添加到这个软件包中: 它在pnpm左右工作,放一个字形 #
在 git 依赖的虚拟存储路径中, Vite 切换为 URL
碎片。 登记册安装没有 # {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}在路上 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}所以工作是..
现在死了.
使用量
import { createGraphIds, buildSpine, buildService, buildGraph, findGraphIssues } from "@domandigital/graph";
const ids = createGraphIds(siteUrl);
const graph = buildGraph([
...buildSpine(
{ name: "Acme Electrical", description: "...", url: siteUrl },
{ name: "Acme Electrical", url: siteUrl },
ids,
"Electrician",
),
buildService({ name: "Rewiring", slug: "rewiring", url: `${siteUrl}/services/rewiring` }, ids),
]);
// In CI or a test: fail the build if the graph doesn't resolve.
const issues = findGraphIssues(graph);
if (issues.length > 0) throw new Error(issues.join("\n"));
评论自己的生意赚不到钱
审查或 aggregateRating 发表于企业的
自己的网站,是谷歌所谓的自我服务。 谷歌的音乐
审查片段指南
将组织和地方商业审查明星限制在审查地点
其他项目 企业。 标记仍然有效,谷歌说
光靠这个你就不会有手动动作。 。 。 .
所以,如果你想,就放出来描述实体, 但永远不要卖或期望
星星从它.
通过网站自己的实体来拥有 findGraphIssues 报告情况:
findGraphIssues(graph, { siteEntityId: ids.org });
// [
// "self-serving review: aggregateRating on https://acme.example/#organization",
// "self-serving review: Review of https://acme.example/#organization (12×)",
// ]
这些线条是用于决定的,而不是建设失败:在
self-serving review: 如果网站有意保留标记,则前缀.
无 siteEntityId 输出不变.
FAQPage 页面
buildFAQPage 已贬值。 Google 停止显示 FAQ 丰富的结果
7 May 2026 (英语). 标记仍然有效 建造者仍然工作 所以
已有的页面不需要更改,但不要添加它需要搜索功能.
渲染器 graph 作为单一 <script type="application/ld+json"> 每页.
此包件不会为它运送反射/下个组件 -- -- 排放
战略next/script 对平原 <script>)是每个地点的选择 -- -- 但是
导出时 escapeJsonLdForScript(json) 因此 CMS 作者字符串( a)
质证引用,一个FAQ回答)不能从脚本标记中突出:
import { escapeJsonLdForScript } from "@domandigital/graph";
export function JsonLdScript({ graph }: { graph: JsonLdGraph }) {
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: escapeJsonLdForScript(JSON.stringify(graph)) }}
/>
);
}
什么留在消费者
- Niche/Business-type映射(如"saron")-
['BeautySalon', 'HealthAndBeautyBusiness', 'LocalBusiness']) (中文(简体) ). - CMS- 形状适配器( 将您的 Sanity/ CMS 文档形状映射到
OrganizationInput(见e/cn.4/sub.2/2000/l.31). aggregateRating出处/配对逻辑——是否允许你放出评分是遵守决定,而不是图形决定.- 实际
<script>排放成分.
发展
pnpm install
pnpm test # vitest
pnpm typecheck # tsc --noEmit
pnpm build # tsup -> dist/
CI在每一个推拉请求上都运行三个,跨越了22和24号节点.
词汇检查
src/__tests__/vocab.test.ts 用每个可选字段建立每个节点
检查每一个被发射的密钥 是一个真正的schema.org 属性 该节点的
@type 或其中一种超级类型, 相对于一个被钉住的词汇快照
(单位:千美元)src/__tests__/fixtures/schemaorg-vocab.json, schema.org 30.1 (英语). 类型脚本
无法做到这一点: 它错过了条件差内未知的密钥, 即
怎么样 PostalAddress.locality 运出而不是 addressLocality。 。 。 .
添加新内容后 @type 给一个建筑师,加进去 EMITTED_TYPES 内
scripts/snapshot-vocab.mjs 并重现快照:
pnpm run snapshot:vocab # pinned version
node scripts/snapshot-vocab.mjs 31.0 # move the pin, then update the test's version assertion
版本
Semver, 发布到 npm 在标签推。 弹出 version 内 package.json,承诺,
然后标记( e)git tag vX.Y.Z && git push --tags) (中文(简体) ). 发布工作流程检查
标记针对 package.json 并拒绝出版 如果他们不同意,然后建造
并且通过 npm 信任的出版来发布, 所以没有 npm 令牌存储在任何地方
每一次释放都附有出处证明.
消费者使用正常的分解范围. 因为现在还是这样 0.x,一个小起落
可以携带一个类型变化,该变化作为消费者的编译错误表面,即
系统的运作情况: v0.1.0 改为 v0.1.1 无效/ 未定义的修补
在被窃听后几分钟内.