@ clean-jsdoc-主题/用途
每种其他包装进口的共享核心:界定
战地边界和双方使用的弹道规则,加上
纯 运行时逻辑——选择验证,构建报告和诊断
脊椎骨 脊椎骨 脊椎骨 它保持浏览器安全( 刚导入到浏览器中) : 注射数字 :
网络fetch)和 node:zlib gzip 尺寸器由呼叫者传递,
从来没有进口到这里.
里面的东西
src/
├── doclet-schema.ts # JSDoc doclet shape (TDoclet, kinds, params, meta, …)
├── salty.ts # salty (taffy) collection helpers + types
├── site/ # the setu↔dwar contract (types-first)
│ ├── page.ts # Page (+ PageKind, 'source' body), Frontmatter, Heading
│ ├── manifest.ts # SiteManifest, NavNode, SearchEntry, ExtractManifest, BuildSpec
│ ├── render.ts # OutputFile, RenderOptions, RenderResult, RenderError, RenderWarning
│ ├── theme.ts # ThemeTokens, ThemeColors, ThemeConfig, ComponentOverrides
│ ├── site-name.ts # SiteName (text | logo set) + siteNameText / resolveSiteLogo
│ ├── islands.ts # IslandName union + IslandPropsMap
│ └── slug-rules.ts # slugifyHeading / slugifyPath / slugifySourcePath
└── config/ # PURE opts validation + build report (network/zlib injected)
├── diagnostics.ts # Diagnostic model + DiagnosticBag + formatDiagnostics
├── opts-schema.ts # zod schemas + THEME_OPT_KEYS
├── validate-opts.ts # validateThemeOpts → { value, diagnostics }
├── site-name.ts # validateSiteName (shape only)
├── fonts.ts # validateFonts (heading/body existence-checked; per-locale keys)
├── locales.ts # validateLocales (opts.locales/defaultLocale → ValidatedLocales)
├── google-fonts.ts# createGoogleFontResolver (injectable fetch; fail-open)
├── suggest.ts # near-miss "did you mean X?" key suggestions
├── report.ts # formatBuildReport (per-route sizes + optional gzip)
└── format.ts # humanFileSize, byteLength, ANSI helpers
公共 API
包件为型号一等;从管子再出出:
import type {
SiteManifest,
Page,
PageKind,
NavNode,
SearchEntry,
Frontmatter,
Heading,
OutputFile,
RenderOptions,
RenderResult,
RenderError,
ThemeConfig,
ThemeTokens,
ThemeColors,
ComponentOverrides,
SiteName,
IslandName,
IslandPropsMap,
TDoclet,
} from '@clean-jsdoc-theme/utils';
import {
// slug rules (shared by setu + dwar)
slugifyHeading,
slugifyPath,
slugifySourcePath,
// opts validation + build report (the bridges call these)
validateThemeOpts,
formatBuildReport,
DiagnosticBag,
formatDiagnostics,
// the i18n contract (setu emits, aadesh reads)
toExtractManifest,
} from '@clean-jsdoc-theme/utils';
阻塞帮助
slugifyHeading(text, registry?)——标题正文 锚地编号. 通过共享Map以解析页面上的 ids 相撞(-1, (中文(简体) ),-2) (中文(简体) ).slugifyPath(parts)长名部件 URL 路径段 .slugifySourcePath(path)源文件路径 – 其source/<file>slug.
选择验证+报告config/(中文(简体) )
validateThemeOpts(input)→{ value, diagnostics }——正常化+验证 主题选项(zod schemas,一个活的 Google-Font 存在检查,未知密钥) "你的意思是?"建议). 桥很早就叫这个, 字体/ typo 不好 警告,除非strict升级.formatBuildReport(input)– Next.js 风格的每行大小表(gzip 缩放器) 注入,因此本模块保持浏览器安全.DiagnosticBag编号 :formatDiagnostics诊断脊椎被setu重用, 和bhasha的验证原始.
I18n/建筑合同
ExtractManifest + 键 toExtractManifest(manifest) (aadish在摘录中的内容)
模式)和 BuildSpec (每个地方都会变光) 住在这里 所以setu,the
桥,和aadish都同意的形状.
为什么它存在
Setu-ddwar合同就住在这里一次 所以双方都一样
形状和永远不能漂移。 弹道规则共享的原因相同: setu
生成导航/TOC锚地,并释放导出的标题代号——使用一个
执行保证双方同意。 这个 config/ 逻辑住在这里( 而非
因此 JSDoc 和 TypeDoc 验证选项并打印报告
同样的.
贡献者
感谢所有帮助建立干净的jsdoc主题的人.
许可证
麻省理工学院.