# @clean-jsdoc-theme/dwar 中文文档

规范地址：https://npmcn.com/package/%40clean-jsdoc-theme/dwar/

版本：5\.2\.1
npm 元数据更新时间：2026-10-24T11:25:03.388Z
中文译文更新时间：2026-11-10T00:47:03.829Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40clean-jsdoc-theme/dwar
原文对照：https://npmcn.com/package/%40clean-jsdoc-theme/dwar/?lang=original
项目主页：https://github.com/ankitskvmdam/clean-jsdoc-theme#readme
源码仓库：https://github.com/ankitskvmdam/clean-jsdoc-theme

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

- 包体积（解压后）：339 kB，6 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：9 个
- peer 依赖：preact ^10\.22\.0
- 首次发布：2026-06-10T15:31:47.189Z
- 最新版本发布：2026-10-24T11:25:02.957Z
- 近 30 天下载量：21765（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：18（近 12 个月 18 个）

## 中文简介

纯站点管理 → HTML/CSS/JS 纯洁-jsdoc-主题渲染器

## 安装

```sh
npm install @clean-jsdoc-theme/dwar
```

也可以使用：`pnpm add @clean-jsdoc-theme/dwar`、`yarn add @clean-jsdoc-theme/dwar`、`bun add @clean-jsdoc-theme/dwar`

## README

# @ clean-jsdoc-主题/战争

纯站点管理 → HTML/CSS/JS 渲染器. 通过 Preact 组件编译 MDX 从 `@clean-jsdoc-theme/rang`,服务器发送每个页面,将岛屿捆绑在 一个拆分的建筑(共享块+每个内容覆盖的条目块) 并发布CSS.

## 公共 API

-   `render(manifest, opts): Promise<RenderResult>` —— 软件包唯一的导出: 一个纯的async函数返回一个内存 `RenderResult` (单位:千美元)`OutputFile[]`, (中文(简体) ), `SearchEntry[]`, (中文(简体) ), `errors`, (中文(简体) ), `stats`) (中文(简体) ). 呼叫者坚持文件本身。 未编译的页面被跳过并报告于 `RenderResult.errors`从来没有扔.

## 使用量

```ts
import { render } from '@clean-jsdoc-theme/dwar';
import { generateSite } from '@clean-jsdoc-theme/setu';
import { writeFile, mkdir } from 'node:fs/promises';
import { dirname, join } from 'node:path';

const manifest = generateSite(saltyCollection);

const result = await render(manifest, {
  theme: {
    tokens: {
      colors: {
        bg: '#ffffff',
        bgMuted: '#f5f5f5',
        fg: '#111111',
        fgMuted: '#666666',
        accent: '#0070f3',
        accentFg: '#ffffff',
        border: '#e5e5e5',
      },
      fonts: { heading: 'Source Serif 4', body: 'Roboto', mono: 'ui-monospace' },
      shiki: { light: 'github-light', dark: 'github-dark' },
      siteName: 'My Docs',
    },
    basePath: '/',
  },
});

const outDir = './dist';
for (const file of result.files) {
  const target = join(outDir, file.path);
  await mkdir(dirname(target), { recursive: true });
  await writeFile(target, file.contents);
}
```

## 什麽 `render()` 发射

-   `<slug>/index.html` 百分比 `Page`每一个 `<head>` 包括水分前的主题脚本( 在样式表链接之前) 防止 FOUC; 内置标题控制器 + 岛屿加载器脚本 `</body>`。 。 。 .
-   `<slug>/index.md` 每个内容页——页面的MDX正文逐字记录,与HTML(用于LLMs +复制页按钮)合用. 源查看器的页面没有发出任何消息.
-   `_assets/styles.${buildId}.css` ——主题 `:root` 编号 : `[data-theme="dark"]` 符号块外加预建的静态公用层 .
-   `_assets/search-index.${buildId}.json` 模糊的搜索索引 `cmdk` 岛取来.
-   `_islands/<name>.js` 百分比 `IslandName` ——内容被遮住的条目块从一个分块的建筑上分出,共享一个共同的Preact + Rang块.
-   每页 `<script data-island-props>{ "i0": …, "i1": …, … }</script>` 携带连环岛道具.
-   A 类 **复制页** {\\fn华文楷体\\fs20\\bord1\\shad1\\1che0e0e0\\2ch000000}被活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活 **预览/下一页** (单位:千美元)`PageNav`下方的内容页——每道门由 `ThemeConfig` (单位:千美元)`copyPage` 编号 : `pageNav`),从不出现在源页面.
-   `RenderResult.search` 一个 `SearchEntry` 每个非隐藏页,准备下游索引.

对a **本地化** 建筑(`RenderOptions.locale`),SSR树被包裹在一 bhasha (英语) `LanguageProvider`,一个 `__i18n` 每个岛根的有效载荷种子(无) 水分漂移, `<html lang>` 财务报告和审定财务报表 `hreflang` 候补已设置 语言切换器已挂载。 没有的建筑 `locale` 字节与 从前.

`kind: 'source'` 页面全部跳过 MDX : 原始来源留在 SSR 中 `<pre>` (关闭JSON有效载荷) `code-viewer` 摩纳哥从一个CDN 懒惰的岛屿 来增强它.

## 管道安装

```
SiteManifest ──► dwar.render ──► OutputFile[] ──► caller writes ──► static site
                     │
                     ├── MDX via @mdx-js/mdx + rang.defaultMdxComponents
                     ├── SSR via preact-render-to-string + rang.Layout
                     ├── Island markers wrapping rang.ISLAND_REGISTRY entries
                     ├── Islands bundled via esbuild (shared chunk + per-island entry)
                     └── CSS: per-theme token block + prebuilt utility layer
```

## 页:1

-   `render()` 实值 **纯**: 无 `fs`,没有 `process.cwd`没有伐木。 坚持不懈是召唤者的责任. 一个磁盘触摸是选择入岛缓存(`RenderOptions.islandCacheDir`; 省略该词和 `render()` 完全不碰磁盘.
-   **CSS在矮人自己的建设时间编译一次.** `scripts/build-css.mjs` 运行 Tailwindow v4 CLI 运行于 Rang's + Dwar 源头,并将结果输入 `src/generated/utility-css.ts`尾风从不冲向消费者 `jsdoc` 建造,所以 `render()` 保持纯度, 用户不需要 Tailwind 配置; 只有 `:root` 编号 : `[data-theme="dark"]` 每个符号块被释放 `ThemeConfig` 在时间.
-   一个防守 `{@link Foo}` → `` `@link Foo` `` 预处理器在 `src/mdx.ts` 用作安全网。 setu 现在解决了上游的链接,所以只有真-不可解的标记到达了这个代码,其中的内置-代码倒计时会持续编辑页面.

## 贡献者

感谢所有帮助建立干净的jsdoc主题的人.

[![Contributors](https://contrib.rocks/image?repo=ankitskvmdam/clean-jsdoc-theme)](https://github.com/ankitskvmdam/clean-jsdoc-theme/graphs/contributors)

## 许可证

麻省理工学院.

## 常见问题

### @clean-jsdoc-theme/dwar 是什么？

纯站点管理 → HTML/CSS/JS 纯洁-jsdoc-主题渲染器

### 如何安装 @clean-jsdoc-theme/dwar？

在项目目录运行 npm install @clean-jsdoc-theme/dwar，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：preact（^10\.22\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @clean-jsdoc-theme/dwar 支持 TypeScript 吗？

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

### @clean-jsdoc-theme/dwar 支持 ESM 还是 CommonJS？

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

### @clean-jsdoc-theme/dwar 可以商用吗？

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

### @clean-jsdoc-theme/dwar 的下载量有多少？

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

### @clean-jsdoc-theme/dwar 还在维护吗？

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

