/** * 顶级域名 * @description * 阮喵喵的顶级域名 * * 目前阮喵喵仅仅是购买了两个顶级域名 未来不太可能继续购买额外的顶级域名了 */ type TopLevelDomain = "ruancat6312.top" | "ruan-cat.com"; /** * 部署平台 * @description * 该域名所部署的平台。目前仅支持 cloudflare 和 vercel。 */ type DeployPlatform = "cloudflare" | "vercel"; /** * 域名配置信息 * @description * 每一个域名配置信息 */ interface Domain { /** * 顶级域名 * @description 每一个域名都必须配置一个明确的顶级域名 否则无法确定域名归属 */ topLevelDomain: TopLevelDomain; /** * 二级域名 * @description 二级域名必须配置 */ secondLevelDomain: string; } /** 项目信息 */ interface Project { /** * 项目的代号名称 * @description 只能填写英文、数字、横杠线。不能包含空格 */ name: string; /** * 项目的描述 * @description * 填写简单的描述即可 可以不写 */ description?: string; /** * 项目展示顺序 * @description * 数值越小排序越靠前;不填写时会在文档导航中排到最后 */ order?: number; } /** * 项目列表 * @description * 项目列表 新建一个项目时 就在这里添加一个项目 */ declare const projects: readonly [{ readonly name: "utils"; readonly description: "工具包项目"; readonly order: 1; }, { readonly name: "ruan-cat-notes"; readonly description: "阮喵喵笔记,个人笔记项目"; readonly order: 2; }, { readonly name: "gh"; readonly description: "github贡献表,个人pr贡献在线查询项目"; readonly order: 3; }, { readonly name: "vue-element-cui"; readonly description: "组件库项目,对业务向常用组件做二次封装的项目"; readonly order: 4; }, { readonly name: "gzpc"; readonly description: "广州普查,广州智能决策智慧城市驾驶舱,高德地图大屏项目"; readonly order: 5; }, { readonly name: "domain"; readonly description: "域名列表,个人全部可对外展示的域名列表站点"; readonly order: 6; }, { readonly name: "vitepress-preset"; readonly description: "vitepress配置预设"; readonly order: 7; }, { readonly name: "claude-notifier"; readonly description: "claude code通知工具"; readonly order: 8; }, { readonly name: "vercel-deploy-tool"; readonly description: "vercel部署工具"; readonly order: 9; }, { readonly name: "09oa"; readonly description: "dfsw 09OA技术验证项目"; }, { readonly name: "10wms"; readonly description: "hgxy 10WMS招标客户演示demo项目"; }, { readonly name: "10wms-doc"; readonly description: "hgxy 10WMS招标demo项目 客户要求开发团队内部文档-前端团队"; }, { readonly name: "11comm"; readonly description: "hgxy 11智慧社区项目(客户违约)"; }, { readonly name: "11comm-doc"; readonly description: "hgxy 11智慧社区项目(客户违约) 前端文档"; }, { readonly name: "01s-doc"; readonly description: "dfsw-01s实习生团队 01s文档"; }, { readonly name: "rmmv-notes"; readonly description: "rmmv笔记项目"; }, { readonly name: "drill-doc"; readonly description: "钻头文档"; }, { readonly name: "rmmv-api-doc"; readonly description: "rmmv api文档"; }, { readonly name: "sundry"; readonly description: "杂项项目"; }]; /** 项目名称列表 */ type ProjectName = (typeof projects)[number]["name"]; /** 项目条目 */ type ProjectItem = Project & { name: ProjectName; }; /** * 项目化的域名配置 项目展示风格的 域名配置类型 * @description * 基础的配置 提供基础说明 */ interface ProjectLikeDomain extends Domain { /** * 项目名称 * @description * 每一个配置的域名 都必须要说明清楚所归属的项目 */ projectName: ProjectName; /** * 域名之间的排序 * @description * 项目化的域名,之间需要配置排序值来严格区分优先级 * 排序值越小 优先级越高 */ order: number; /** * 域名说明 * @description * 填写简单的描述即可 可以不写。不是所有的域名都必须要写清楚自己的特殊用途。 */ description?: string; /** * 项目别名 * @description * 某些域名很特殊 需要被特殊索引 故需要配置一个别名 来方便索引 */ projectAlias?: string; /** * 部署平台 * @description * 指明该域名部署在哪个平台上,目前可选的平台有 cloudflare 和 vercel。 */ deployPlatform?: DeployPlatform; } /** 项目化的域名 不包含项目名称 */ type ProjectLikeDomainWithoutProjectName = Omit; /** * 项目化的域名集合 * @description * 设计成用项目名称作为key 便于查询阅读 */ type ProjectLikeDomainSet = Record; /** * 项目化的域名集合 * @description * 设计成用项目名称作为key 便于查询阅读 */ declare const projectLikeDomainSet: ProjectLikeDomainSet; /** 获取域名的参数接口(带别名) */ interface GetDomainsParamsWithAlias { /** 项目名称 */ projectName: ProjectName; /** 项目别名 */ projectAlias?: string; } /** 根据项目名称获取域名数组 */ declare function getDomains(projectName: ProjectName): string[]; /** 根据项目名称和别名获取域名数组 */ declare function getDomains(params: GetDomainsParamsWithAlias): string[]; /** * 域名对象 * @description * 设计成简单的常量即可 无需额外的类型约束 * * 这些域名主要是用于 vercel 的基于文件结构的部署。目前没有其他的用途。 * * 其他域名仅用于声明,类似于文档说明。 * * 这是旧版本的配置 未来会废弃掉 */ declare const domains: { /** 大项目 09OA项目 */ readonly "09oa": readonly ["01s-09oa.ruancat6312.top"]; /** 大项目 10WMS项目 */ readonly "10wms": readonly ["01s-10wms.ruancat6312.top"]; /** 大项目 10WMS项目 前端文档 */ readonly "10wms-doc": readonly ["01s-10wms-doc.ruancat6312.top", "01s-10wms-frontend-docs.ruancat6312.top"]; /** 大项目 11智慧社区项目 */ readonly "11comm": readonly ["01s-11comm.ruancat6312.top", "01s-11.ruancat6312.top"]; /** 大项目 11智慧社区项目 前端文档 */ readonly "11comm-doc": readonly ["01s-11comm-doc.ruancat6312.top"]; /** 01星球文档 */ readonly "01s-doc": readonly ["docs-01-star.ruancat6312.top"]; /** 工具包项目 */ readonly utils: readonly ["utils.ruancat6312.top", "utils.ruan-cat.com"]; /** vitepress配置预设 */ readonly "vitepress-preset": readonly ["vip.ruancat6312.top", "vitepress.ruancat6312.top", "vitepress-preset.ruancat6312.top"]; /** 域名列表 */ readonly domain: readonly ["dm.ruancat6312.top", "dm.ruan-cat.com"]; /** vercel部署工具 */ readonly "vercel-deploy-tool": readonly ["vercel-deploy-tool.ruancat6312.top", "vercel.ruancat6312.top", "vc.ruancat6312.top", "vc.ruan-cat.com"]; /** * 笔记项目 `cloudflare`流水线版本 * @description * 在 cloudflare pages 流水线内部署的域名 * 这个域名会在dev分支 且notes目录下有变更时重新部署 * * - *更新速度*: 预期是`高频触发,中速部署`的域名。 * - *cname*: 该域名有明确的cname配置 对接的是`cloudflare pages`提供的默认域名。 * - *git日志*: 该站点没有git修改日志,因为 cloudflare worker 流水线不会提供git信息。 * - *无意义配置*: 本配置在此处仅仅是用来声明 目前暂时没有专门的域名配置。 */ readonly notesCloudflare: readonly ["ruan-cat-notes.ruan-cat.com"]; /** * 笔记项目 `vercel`流水线版本 * @description * 在 vercel 流水线内部署的域名 * 这个域名会在 dev 分支触发的时候重新部署 * * - *更新速度*: 预期是`高频触发,中速部署`的域名。 * - *cname*: 该域名有明确的cname配置 对接的是`vercel`提供的cname域名。 * - *git日志*: 该站点会提供git修改日志,因为 vercel 流水线会提供git信息。 * - *无意义配置*: 本配置在此处仅仅是用来声明 目前暂时没有专门的域名配置。 */ readonly notesVercel: readonly ["notes.ruan-cat.com"]; /** * 笔记项目 `github`流水线版本 * @description * 在 github workflow 流水线内部署的域名 * 为了保证vercel静态文件上传时 不会出现构建次数超出每个月100次的额度限制 * 该域名预期仅仅在main主分支被触发的时候 完成更新 * * - *更新速度*: 预期是`低频触发,低速部署`的域名。 * - *cname*: 该域名没有在平台内配置指定的cname 整个`ruancat6312.top`域名被vercel管控。vercel会实现自动域名。 * - *有意义配置*: 该配置预期会给vercel部署工具直接使用。 */ readonly notesGithubWorkflow: readonly ["ruan-cat-notes.ruancat6312.top"]; /** rmmv笔记项目 */ readonly "rmmv-notes": readonly ["rpgmv-dev-notes.ruancat6312.top", "rpgmv-dev-notes.ruan-cat.com", "mv.ruan-cat.com"]; /** 钻头文档 */ readonly "drill-doc": readonly ["small-alice-web.ruancat6312.top", "small-alice-web.ruan-cat.com", "drill.ruancat6312.top", "drill.ruan-cat.com"]; /** rmmv api文档 */ readonly "rmmv-api-doc": readonly ["rmmv-api-doc.ruancat6312.top"]; }; export { type DeployPlatform, type Domain, type GetDomainsParamsWithAlias, type Project, type ProjectItem, type ProjectLikeDomain, type ProjectLikeDomainSet, type ProjectLikeDomainWithoutProjectName, type ProjectName, type TopLevelDomain, domains, getDomains, projectLikeDomainSet, projects };