# @dani-builder/site-templates 中文文档

规范地址：https://npmcn.com/package/%40dani-builder/site-templates/

版本：0\.8\.0
npm 元数据更新时间：2026-11-04T18:06:29.241Z
中文译文更新时间：2026-11-11T10:17:11.245Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dani-builder/site-templates
原文对照：https://npmcn.com/package/%40dani-builder/site-templates/?lang=original
项目主页：https://github.com/HJ-company/daniworks-builder-v2/tree/main/packages/site-templates#readme
源码仓库：https://github.com/HJ-company/daniworks-builder-v2

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：4.5 MB，62 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.13
- 运行依赖：2 个
- 首次发布：2026-10-07T10:24:48.407Z
- 最新版本发布：2026-11-04T18:06:28.969Z
- 近 30 天下载量：3134（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：18（近 12 个月 18 个）

## 中文简介

可再用 Daniworks Builder 站点模板 出货单、调色板和可移植种子合同.

## 安装

```sh
npm install @dani-builder/site-templates
```

也可以使用：`pnpm add @dani-builder/site-templates`、`yarn add @dani-builder/site-templates`、`bun add @dani-builder/site-templates`

## README

# @dani-buildinger/ site-templates (中文(简体) )

便携式脚手架的初始 CMS 内容 `business-basic` 模板和 `open-atelier` 主题, 最初基于 Figma v3. `forest-stay`, (中文(简体) ), `logistics`,以及 `ceramics` 选择组成; `pine`, (中文(简体) ), `ocean`,以及 `clay` 独立选择颜色。 用户品牌颜色覆盖调色板颜色, 覆盖主题默认值。 选择调色板绝不改变种子数据.

被打包的种子数据在脚手架上提供了初始的CMS内容. 外部 显示其副本、照片、FAQ、导航、页脚、块布置,以及 图片内容符合. 他们可以写一个 `TemplateSeed`,用 `collectSeedValidationErrors(manifest, compositionId, seed)`,并传递作为 选项 `seed` 改为 `createTemplatePreview`。预览根据支持的构建者合同验证所提供的种子 并严格对其他成分进行表征验证. 选择 `seed` (或通过) `undefined`)使用被包装的成分种子. 建造者拥有共享渲染和种子合同; 制造者, 块、 符号和图案缺陷返回到 Builder。 见 [ADR 0008 (韩语)](https://npmcn.com/package/docs/decisions/0008-site-templates-seed-is-scaffold-initial-content.md) 编辑 [撰写实例](https://npmcn.com/package/docs/guides/static-template-preview.md#%EC%99%B8%EB%B6%80-%EC%A0%84%EC%8B%9C-%EC%BD%98%ED%85%90%EC%B8%A0-%EC%9E%91%EC%84%B1)。 。 。 .

| 合同 | 上一个实例 | 最后 v3 捆绑 |
| --- | --- | --- |
| 模板版本 | 0.1.0 (中文(简体) ) | 6.2.4 国家 |
| 路线/区块 | 9个/27个通用区块 | 9/41个源区块(13/14/14) |
| 相片/装订 | 4个占位符路径 | 15个包装的 JPEG 场景 / 23个装订 |
| FAQ 文档 | 2个共享字符串答案 | 9个工业FAQs,有订购的块串和排序命令 |
| 贝壳 | 普通开口 | solgyeol / haeon / heukbit 酸盐 |

Npm包版本与模板版本分开发布管理. 对表单、可移植种子或包装资产字节的任何更改均要求 新模板版本和新条目 `test/template-fingerprints.json`保留 以前的指纹条目保持不变. `test/template-version.test.ts` 执行 此版本和指纹规则 。 添加种子属性时, 重新检查 `builderVersion` 与引入这些属性的释放相对应. 构建器兼容性是 `>=0.16.0 <3` 因为有种子的家庭使用 `Page.directAccess`,在Builder 0.16.0中被引入. `requiredComponents` 财务报告和审定财务报表 `requiredVariants` 来源于最终种子,而不是完整的Figma块画廊.

客户依赖使用 `workspace:^`,作为 caret 范围出版:相容 构建器/客户端的固定组补丁不发布此软件包或CLI. 0.x 一个0.x 客户端小过此范围,仍会触发模板和CLI补丁. 一个 明确的模板更新还发布CLI,其模板依赖性仍然存在 没错 采用这种依赖性政策将模板和CLI发布一次.

```ts
import {
  getSiteTemplate,
  collectSeedValidationErrors,
  collectTemplateValidationErrors,
} from '@dani-builder/site-templates';

const template = getSiteTemplate('business-basic');
const seed = template.compositions['forest-stay'].seed;
const colors = template.palettes.clay.brandColors;
const errors = collectTemplateValidationErrors(template);
// For externally authored content, validate only that supplied TemplateSeed:
const seedErrors = collectSeedValidationErrors(template, 'forest-stay', seed);
```

每个页面存储 `route`: 家有弹子 `home` 但决心 `/`; 其他路线 为: `/about` 财务报告和审定财务报表 `/contact`。保留块顺序、文本、明确无效、空 `ctaText`,和部分锚。 联络英雄故意使形象无效 两个链接, 有块 `headerMode: 'none'`。特性链接可能无效。 每个 突出显示项目需要图像; 每个非虚拟共享图像都有 `{ media: { assetKey }, alt, fit }`。直接上传字段,例如页脚/导航 标志使用赤色 `{ assetKey }` 或无效。 资产支助`image/jpeg`和 巴布亚新几内亚`image/png`包括透明的PNG品牌; SVG被排除在外 便携式种子合同。 可选 `global.favicon` 使用相同的赤裸的参考. 输入或无效外观值项目为无效 。 预览媒体保存 MIME 层面,产生 `.jpg` 或者说 `.png` 从MIME。 所有标本都保留 无效:使用站名作为文本品牌倒置.

命令包含 FAQ 块 `{ relationKey }` 参考文献 `seed.faqs`; 答题 和内容机构使用现有的段落/文本块形状. 特征和要闻中的描述保留了现有的丰富文本字符串 合同。 没有CMS数字身份证,文档身份证,出版时间戳, Figma hashes, 取景器状态,窗体占位符,或作者信封被种子.

`navigation.groups` 映射到现有内容管理系统 `globalNavigation` 字段。 组 `href`儿童联系, `primaryLink`, (中文(简体) ), `secondaryLink`, (中文(简体) ), `mainLogo`, (中文(简体) ), `darkLogo`,以及 `align` 直接映射到它们现有的计划字段。 组链接为空 两个简单的菜单条目。 首要行动目标 `/contact#inquiry`; 菜单 链接保存 `/#services` 财务报告和审定财务报表 `/about`页脚 `organization` 拥有这个行业 单词标记( e)`solgyeol`, (中文(简体) ), `haeon`,或 `heukbit`),匹配 `global.sitename`; 韩语 行业名称仍然是组成名称. `businessInfo` 保留描述 和标有标本的法律通知. `sitemap` 有两组命令: `둘러보기` 与家庭/大约/接触和 `문의하기` 单曲 `mailto:` 联络. `otherLinks` 财务报告和审定财务报表 `socialLinks` 为空。 这使用已存在的页脚计. 当前共享页脚将 businessInfo 置于其联系区域;种子确实 不为 Figma 的单独描述/复制右侧位置引入演示文稿字段.

0.2.1版本还删除了Pine和Clay home/关于CTA的正文 已确认的 Figma v3 节点; 这四个节点 `ctaText` 值为无效。 其余 复制、目的地、15个场景、23个媒体捆绑、41个街区和9个财务问题 确定的命令和内容。 现有0.2.0项选择仍然是 导入时有明确的版本冲突; 使用新的脚手架或一致的备份 而不是覆盖客户编辑.

所有的相片都是虚构的品牌 说明性样本在录制的 Unsplash 下 执照 资产元数据包含精确的源 URL,作者,许可证 URL, alt,, 样本通知 MIME 和实际尺寸 源URL是归属元数据; 运行时间渲染可以与被打包的文件一起线下工作.

复制包装 `assets/business-basic` 输入您主机的目录 `public/site-templates/business-basic` 目录。 每一笔资产,解决 `asset.src` 替换 `assets/` 与 `/site-templates/`; 举例来说 `assets/business-basic/pine-cabin.jpg` 变成 `/site-templates/business-basic/pine-cabin.jpg`。公共子路径导出 `@dani-builder/site-templates/assets/business-basic/pine-cabin.jpg` 允许工具 以通过 `import.meta.resolve()` 无根 文件系统假设. `files` 包括 npm 沥青球中的所有资产.

DEV-257 上传/重用 Strapi 中的文件,解决逻辑媒体/FAQ/页面密钥, 地图导航组,应用地语感知链接并写 CMS 文档. DEV-270 将这个种子转换成无 CMS 预览读取模型并供应其 资产 URL 解析器。 渲染者行为,形式提交,CLI/进口者执行, 静态浏览器的核查属于这些后续任务.

## 静态前端预览

这个 `./preview` 条目将相同的可移植种子投射到现有的 `@dani-builder/strapi-client/types` 前端的合同。 它不执行采集, CMS写作,或环境外观,不需要Strapi或Next.js运行时间.

```ts
import { businessBasicTemplate } from '@dani-builder/site-templates';
import { createTemplatePreview } from '@dani-builder/site-templates/preview';
// showcaseSeed is a TemplateSeed authored by your host project.
import { showcaseSeed } from './content.js';

const preview = createTemplatePreview({
  manifest: businessBasicTemplate,
  seed: showcaseSeed, // Optional; defaults to the selected composition seed
  selection: {
    templateId: 'business-basic',
    templateVersion: businessBasicTemplate.version, // Not the npm package version
    themeId: 'open-atelier',
    compositionId: 'forest-stay',
    paletteId: 'clay',
  },
  builderVersion: '0.16.0', // Explicit target Builder version
  resolveAsset: (asset) => ({
    url: `/static/templates/${asset.src}`,
    // Optional width, height, alternativeText override registry metadata.
  }),
  brandColors: { primary: '#123456', text: null }, // null falls back to palette
});

const home = preview.pages.find(({ route }) => route === '/')?.page;
// Pass home.blocks to BlockRenderer; preview.navigation/global/footer to your shell.
```

`pages` 包含命令 `{ route, page: PageDocument }` 条目。 结果也是 包含 `FaqDocument[]`, (中文(简体) ), `NavigationDocument`, (中文(简体) ), `GlobalDocument`, (中文(简体) ), `Footer`,则 选中 `TemplateTheme`, (中文(简体) ), `BrandColors`,并抄送选集. FAQ 关系 保留种子顺序; `global.home` 包含引用页面。 导航组 变成 `globalNavigation`链接保留树脂、锚地、标签和 `newWindow`· ; 一个逻辑的页面链接,而不对其页面路径进行href解析。 主机链接 适配器拥有预览前缀和地盘,并处理内部路径,碎片, `mailto:`, (中文(简体) ), `tel:` 和不重写种子数据的外部 URL.

解析器是同步的并收到单独的资产副本. 还原根 相对或 HTTP( S) URL, 带有可选正整数尺寸和可无效 `alternativeText`。登记维度/备选案文是默认值;空备选案文尚存 有意为之. 按用途计算 `shared.image.alt` 与上传的替代文本分开. 解析器出错,元数据无效,ID未知,模板版本不匹配, 不支持的构建器版本, 已损坏或错误的类型 refs, 无效的构建器 组件会因出错而失败。 npm semver范围包括正常的放出前规则. 支持的可移动块家庭是英雄,内容,亮点,特征, CTA,FAQ,问询形式,滑动器,便通网,测试,定价,统计,团队, 和标志云。 新增家庭采用完整的现有建设者计划:

| 块 | 支持的变体/列 |
| --- | --- |
| 幻灯片 | `cover-flow`, (中文(简体) ), `card-slider` |
| 丁型电网 | 2, 3 (默认), 4列 |
| 证词 | `centered`, (中文(简体) ), `side-by-side`, (中文(简体) ), `card-grid`, (中文(简体) ), `subtle-grid` |
| 定价 | `two-column`, (中文(简体) ), `three-column`, (中文(简体) ), `single`, (中文(简体) ), `with-comparison` |
| 数据 | `simple`, (中文(简体) ), `card-grid`, (中文(简体) ), `split` |
| 团队 | `grid`, (中文(简体) ), `large-image`, (中文(简体) ), `compact` (图片可选) |
| 标志-云 | `inline`, (中文(简体) ), `grid`, (中文(简体) ), `split`, (中文(简体) ), `marquee` |
| 反恐中心 | `inline-spread`, (中文(简体) ), `inline-centered`, (中文(简体) ), `inline-stacked`, (中文(简体) ), `card-stacked`, (中文(简体) ), `card-centered`, (中文(简体) ), `card-horizontal` |

滑行项目需要与媒体共享图像;而标志项目则需要标识媒体. 证明要求 `quote`,定价等级要求 `planName` 财务报告和审定财务报表 `price`数据 需求 `value`,而团队成员要求 `memberName`. 可选媒体可以是无效的. 本托横跨和柱子以及证收率都强制实施"计划整数范围". 嵌入可重复字段、链接、媒体引用、enum和默认使用相同 作为现有区块的合同,产生的DTO直接转到BlockRender. 验证通过 `collectSeedValidationErrors` 财务报告和审定财务报表 `collectTemplateValidationErrors`没有CMS的身份证。 独立种子验证器 仅对照所支持的构建器组件和enum检查所提供的种子 合同,与清单无关 `requiredComponents` 财务报告和审定财务报表 `requiredVariants`。 。 。 . 这些名单继续限制着名单中的种子 `collectTemplateValidationErrors`。它的字符串组成 ID 标签错误并确实 不在清单中添加成分。 预览选择和构建器版本检查仍然 当提供种子覆盖时适用。 API都没有变异的标本或种子.

可选组件/介质/链接字段正常化为可重复的无效字段 空数组,缺席时会应用schema默认值. 无核前端 变量字段在缺/不缺时使用第一个 schema enum; CTA 保存为无效 变相. 所需的图像媒体和突出显示图像不能为无效 。 用户颜色 胜过调色板颜色,这些颜色会回到主题默认调色板上。 变化 调色板只更改选择和颜色.

身份为: **只预览**永远不适合CMS写作. `documentId`用户 `preview:<template>:<version>:<composition>:<logical-path>`数字标识为负数 并按稳定种子转序的逻辑路径确定分配, 没有调色板输入或散列。 媒体的使用 `provider: 'template-preview'`,没有 格式,大小 0(未知),和固定 `2000-01-01T00:00:00.000Z` 时间戳。 副本 使用同一逻辑文档保存其ID。 整个结果与 输入和 JSON 可往返; 不包含解析器功能或登记册.

## 常见问题

### @dani-builder/site-templates 是什么？

可再用 Daniworks Builder 站点模板 出货单、调色板和可移植种子合同\.

### 如何安装 @dani-builder/site-templates？

在项目目录运行 npm install @dani-builder/site-templates，或使用 pnpm add / yarn add / bun add。

### @dani-builder/site-templates 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @dani-builder/site-templates 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @dani-builder/site-templates 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.13。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @dani-builder/site-templates 可以商用吗？

@dani-builder/site-templates 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @dani-builder/site-templates 的下载量有多少？

根据 npm 官方下载统计，@dani-builder/site-templates 在 2026/10/11 – 2026/11/09 这 30 天内被下载 3,134 次，日均约 104 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dani-builder/site-templates 还在维护吗？

最新版本 0\.8\.0 发布于 2026/11/05（6 天前）；至今共发布 18 个版本，其中过去 12 个月发布了 18 个；首次发布于 2026/10/07。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

