--- url: /prompts/get-domains.md --- # 拓展 `getDomains` 函数 请深度思考。 ## 术语说明 * `本包` : 即 `packages\domains\package.json` 。名为 `@ruan-cat/domains` 。 * `projectLikeDomainSet` : `packages\domains\src\domains.ts` 的变量。 ## 需求 请阅读 `packages\domains\src\utils.ts` 的 `getDomains` 函数。 请拓展该函数,我希望实现函数多态。 1. 函数的返回值都是 `string[]` 。 2. 函数有两种入参。 3. 第一种入参是传递 projectName,这个功能已经实现了。请你原样保留该处理逻辑。 4. 第二种入参是传递一个对象。该入参方式是没有实现的,请你替我实现。具体入参写法如下: ```ts interface GetDomainsParamsWithAlias { /** 项目名称 */ projectName: ProjectName; /** 项目别名 */ projectAlias?: string; } ``` 需要你实现的逻辑是,根据 projectName 和 projectAlias 来查询 projectLikeDomainSet 的域名,然后拼接生成出完整的域名。 1. 如果存在 projectName,不存在 projectAlias: 那就查询 projectLikeDomainSet 内对应的 projectName,并生成拼接出全部的域名。 2. 如果存在 projectName,也存在 projectAlias: 那就在查询到对应项目的域名基础上,再去查询 projectAlias 对应的域名配置。如果查询不到,那就用 consola 输出警告,提示用户找不到 projectAlias 项目别名所对应的配置,默认返回 projectName 所对应的全部域名配置。 ## 编写测试用例 1. 请你使用 vitest 来编写测试用例。 2. 请你使用 vitest 的 `import { test, describe } from "vitest";` 来编写。我希望测试用例格式为 describe 和 test。 3. 测试用例的文件格式为 `*.test.ts` 。 ### 测试用例地址 请在 `packages\domains\src\tests` 目录内编写测试用例。 ### 配置文件与运行命令 1. 请你阅读 `configs-package\commitlint-config\package.json` 的测试命令。并在`本包`内编写相同的测试命令。 2. 在本包模仿照抄 `configs-package\commitlint-config\vitest.config.ts` 文件即可。 ## 依赖项管理 涉及到的依赖项,按照这样的方式管理。 1. 将 vitest 安装为 devDependencies 。 2. 将 consola 安装为 dependencies 。 ## 编写更新日志 在 .changeset 目录内,为 getDomains 函数的更新,编写更新日志。 `@ruan-cat/domains` 发版标签为 minor 。 --- --- url: /prompts/make-dynamic-routes.md --- # 生成基于 vitepress 的动态路由 请深度思考。 我希望用现有的数据,制作出基于 vitepress 动态路由的页面。 ## 术语说明 * **目标文件夹** : `packages\domains\docs\domain` * **模板文档** :`packages\domains\docs\domain\[project].md` * **路径加载器** :`packages\domains\docs\domain\[project].path.ts` * **域名集信息** : `packages\domains\src\domains.ts` 即全部要被展示出来的信息。 * **组件文件夹** : `packages\domains\docs\.vitepress\components` * **渲染用组件** : 存储在 `组件文件夹` 的组件。在 `模板文档` 内使用。并在组件内部使用 `域名集信息` 的数据。 ## 具体要求 1. 请阅读 https://vitepress.dev/zh/guide/routing#dynamic-routes 文档。明白 vitepress 动态路由的知识点。 2. 在 `目标文件夹` 内实现基于动态路由的文档。 3. 阅读 `域名集信息` 。明确清楚那些信息要被展示出来。 4. 新建 `模板文档` 和 `路径加载器` 。 5. 根据 域名集信息 的内容,请充分发挥你的创造力,想象力。制作出合适的 vue 组件,使得域名信息可以美观的展示出来。 ## `路径加载器` 的编写规范 1. 路径加载器,返回值必须包含一个 project 字段。这个值应该来自于 packages\domains\src\types.ts 的 projects 数组。 2. project 字段应该是项目的名称。 3. `路径加载器` 应该返回 project 字段。 ## 渲染用途的 vue 组件编写规范 你应该主动的设计合适的组件,用于展示 `域名集信息` 。制作出合适的 vue 组件,使得域名信息可以美观的展示出来。 ### 开发大致步骤 1. 必须使用 useData 函数来获取 `路径加载器` 提供的数据。用 `import { useData } from 'vitepress'` 的方式导入,比获取数据。请阅读文档: https://vitepress.dev/zh/reference/runtime-api#usedata 2. 在 `渲染用组件` 内,先通过 路径加载器 获取 project 字段。 3. 然后再利用 project 字段查询项目信息、渲染 `域名集信息` 信息。 4. 请充分发挥想象力,编写美观好看的展示组件。 ### 代码规范 1. 用 typescript 2. 不使用 props 3. 用 setup 组合式 api 4. script 脚本在前面, template 模板在后面。 ## `模板文档` 的规范 模板文档不应该直接使用任何传递下来的变量。应该将 `路径加载器` 获取的数据,传递给 vue 组件。 ## 001 优化动效 * https://vue-bits.dev/animations/electric-border --- --- url: /use.md --- # 以依赖包的方式使用本库 本包本质上是对域名的整理,并将自己常用域名整理成一个类似于常量的包,对外使用。主要用于部署工具读取要部署的目标域名。 ## 安装依赖 ```bash pnpm i -D @ruan-cat/domains ``` ## 阅读源码 因为本包仅仅是一个封装常量的包,所以请直接阅读源码,导入模块即可。 ## 推荐用法 ::: details 使用 getDomains 函数 ```ts import { getDomains } from "@ruan-cat/domains"; const domains = getDomains("ruan-cat-notes"); console.log(domains); ``` ::: ### 类型 ::: details ```ts /** * 顶级域名 * @description * 阮喵喵的顶级域名 * * 目前阮喵喵仅仅是购买了两个顶级域名 未来不太可能继续购买额外的顶级域名了 */ export type TopLevelDomain = "ruancat6312.top" | "ruan-cat.com"; /** * 部署平台 * @description * 该域名所部署的平台。目前仅支持 cloudflare 和 vercel。 */ export type DeployPlatform = "cloudflare" | "vercel"; /** * 域名配置信息 * @description * 每一个域名配置信息 */ export interface Domain { /** * 顶级域名 * @description 每一个域名都必须配置一个明确的顶级域名 否则无法确定域名归属 */ topLevelDomain: TopLevelDomain; /** * 二级域名 * @description 二级域名必须配置 */ secondLevelDomain: string; } /** 项目信息 */ export interface Project { /** * 项目的代号名称 * @description 只能填写英文、数字、横杠线。不能包含空格 */ name: string; /** * 项目的描述 * @description * 填写简单的描述即可 可以不写 */ description?: string; /** * 项目展示顺序 * @description * 数值越小排序越靠前;不填写时会在文档导航中排到最后 */ order?: number; } /** * 项目列表 * @description * 项目列表 新建一个项目时 就在这里添加一个项目 */ export const projects = [ { name: "utils", description: "工具包项目", order: 1 }, { name: "ruan-cat-notes", description: "阮喵喵笔记,个人笔记项目", order: 2 }, { name: "gh", description: "github贡献表,个人pr贡献在线查询项目", order: 3 }, { name: "vue-element-cui", description: "组件库项目,对业务向常用组件做二次封装的项目", order: 4 }, { name: "gzpc", description: "广州普查,广州智能决策智慧城市驾驶舱,高德地图大屏项目", order: 5 }, { name: "domain", description: "域名列表,个人全部可对外展示的域名列表站点", order: 6 }, { name: "vitepress-preset", description: "vitepress配置预设", order: 7 }, { name: "claude-notifier", description: "claude code通知工具", order: 8 }, { name: "vercel-deploy-tool", description: "vercel部署工具", order: 9 }, { name: "09oa", description: "dfsw 09OA技术验证项目" }, { name: "10wms", description: "hgxy 10WMS招标客户演示demo项目" }, { name: "10wms-doc", description: "hgxy 10WMS招标demo项目 客户要求开发团队内部文档-前端团队" }, { name: "11comm", description: "hgxy 11智慧社区项目(客户违约)" }, { name: "11comm-doc", description: "hgxy 11智慧社区项目(客户违约) 前端文档" }, { name: "01s-doc", description: "dfsw-01s实习生团队 01s文档" }, { name: "rmmv-notes", description: "rmmv笔记项目" }, { name: "drill-doc", description: "钻头文档" }, { name: "rmmv-api-doc", description: "rmmv api文档" }, { name: "sundry", description: "杂项项目" }, ] as const; /** 项目名称列表 */ export type ProjectName = (typeof projects)[number]["name"]; /** 项目条目 */ export type ProjectItem = Project & { name: ProjectName; }; /** * 项目化的域名配置 项目展示风格的 域名配置类型 * @description * 基础的配置 提供基础说明 */ export interface ProjectLikeDomain extends Domain { /** * 项目名称 * @description * 每一个配置的域名 都必须要说明清楚所归属的项目 */ projectName: ProjectName; /** * 域名之间的排序 * @description * 项目化的域名,之间需要配置排序值来严格区分优先级 * 排序值越小 优先级越高 */ order: number; /** * 域名说明 * @description * 填写简单的描述即可 可以不写。不是所有的域名都必须要写清楚自己的特殊用途。 */ description?: string; /** * 项目别名 * @description * 某些域名很特殊 需要被特殊索引 故需要配置一个别名 来方便索引 */ projectAlias?: string; /** * 部署平台 * @description * 指明该域名部署在哪个平台上,目前可选的平台有 cloudflare 和 vercel。 */ deployPlatform?: DeployPlatform; } /** 项目化的域名 不包含项目名称 */ export type ProjectLikeDomainWithoutProjectName = Omit; /** * 项目化的域名集合 * @description * 设计成用项目名称作为key 便于查询阅读 */ export type ProjectLikeDomainSet = Record; ``` ::: ### 域名集 ::: details ```ts import { type ProjectLikeDomainSet } from "./types.ts"; /** * 项目化的域名集合 * @description * 设计成用项目名称作为key 便于查询阅读 */ export const projectLikeDomainSet: ProjectLikeDomainSet = { /** 大项目 09OA项目 */ "09oa": [{ topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s-09oa", order: 1 }], /** 大项目 10WMS项目 */ "10wms": [{ topLevelDomain: "ruancat6312.top", secondLevelDomain: "10wms", order: 1 }], /** 大项目 10WMS项目 前端文档 */ "10wms-doc": [ { topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s-10wms-doc", order: 1 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s-10wms-frontend-docs", order: 2 }, ], /** 大项目 11智慧社区项目 */ "11comm": [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s-11comm", order: 1, deployPlatform: "vercel", projectAlias: "11commAdmin", description: `admin管理后台的入口。与 ruancat6312.top 域名的内容并不完全等价。 vercel 项目名称:11comm-admin`, }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s-11", order: 2, deployPlatform: "cloudflare", description: `admin管理后台的入口,但是已经废弃,因为部署nitro接口遇到环境变量获取问题,故未来不考虑继续维护cloudflare worker的部署了。 与 ruancat6312.top 域名的内容并不完全等价`, }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s-11-server", order: 3, deployPlatform: "vercel", projectAlias: "11commNitroServer", description: `整个11comm项目admin和app两个前端应用的,公共nitro接口后端服务。 vercel 项目名称:11comm-nitro-server`, }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s-11-app", order: 4, deployPlatform: "vercel", projectAlias: "11commAppH5", description: `11comm App H5 前端生产环境。 vercel 项目名称:11comm-app-h5`, }, // 这个配置已经过时了 认定为需要被废弃掉 { topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s-11-app-server", order: 5, deployPlatform: "vercel", projectAlias: "11commAppNitroServer", description: `11comm App Nitro 服务端接口生产环境。在 vercel 平台内完成部署,高频更新。vercel 项目名称:11comm-app-nitro-server。 该域名未来需要废弃掉,因为不考虑为app做一个独立的接口服务了。`, }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s.11.app", order: 6, description: `微信小程序备案用的【H5前端app页面】,说是不给增加短横杠。经过实际实验不行,因为 ruan-cat.com 这个一级域名本身就提供了短横杠。这是不可理喻的。 傻逼腾讯。 尝试使用 web-view 来实现小程序套壳H5,但是我的账号是个人账号,没有权限使用 web-view 功能。故备案域名设计无效。`, }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s.11.app", order: 7, description: `微信小程序备案用的【H5前端app页面】,说是不给增加短横杠。 尝试使用 web-view 来实现小程序套壳H5,但是我的账号是个人账号,没有权限使用 web-view 功能。故备案域名设计无效。`, }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s.11.app.server", order: 8, description: `微信小程序备案用的【nitro服务端接口】,说是不给增加短横杠。 尝试使用 web-view 来实现小程序套壳H5,但是我的账号是个人账号,没有权限使用 web-view 功能。故备案域名设计无效。`, }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s-11", order: 9 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s-11comm", order: 10 }, ], /** 大项目 11智慧社区项目 前端文档 */ "11comm-doc": [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s-11comm-doc", order: 1, deployPlatform: "cloudflare", description: "本域名主要用于 cloudflare worker 部署,与 ruancat6312.top 域名的内容并不完全等价。是高频更新的。", }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s-11comm-doc", order: 2 }, ], /** 01星球文档 */ "01s-doc": [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s-doc", order: 1, deployPlatform: "cloudflare", description: "本域名是主域名,作为主要的域名使用。在cloudflare worker内配置了自动部署。", }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "docs-01-star", order: 2, deployPlatform: "cloudflare", description: "本域名是别名。在cloudflare worker内指向同一个内容。不属于301重定向写法。", }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "docs-01-star", order: 3 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "01s-doc", order: 4, description: "本域名是别名。旨在于统一域名的编写格式。", }, ], /** 工具包项目 */ utils: [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "utils", order: 1 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "utils", order: 2 }, ], /** vitepress配置预设 */ "vitepress-preset": [ { topLevelDomain: "ruancat6312.top", secondLevelDomain: "vip", order: 1 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "vitepress", order: 2 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "vitepress-preset", order: 3 }, ], /** claude code 通知工具 */ "claude-notifier": [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "ccntf", order: 1, deployPlatform: "vercel", description: "本域名在cloudflare CDN 内配置了二级域名。由 github workflow + vercel 流水线完成部署。低频更新。", }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "claude-notifier", order: 2, deployPlatform: "vercel", description: "和 ccntf 域名指向同一个内容,使用相同的配置。", }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "ccntf", order: 3 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "claude-notifier", order: 4 }, ], /** 域名列表 */ domain: [ { topLevelDomain: "ruancat6312.top", secondLevelDomain: "dm", order: 1 }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "dm", order: 2 }, ], /** vercel部署工具 */ "vercel-deploy-tool": [ { topLevelDomain: "ruancat6312.top", secondLevelDomain: "vercel-deploy-tool", order: 1 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "vercel", order: 2 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "vc", order: 3 }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "vc", order: 4 }, ], /** 阮喵喵笔记 */ "ruan-cat-notes": [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "notes", order: 1, deployPlatform: "vercel", projectAlias: "notesVercel", description: `笔记项目 Vercel 流水线版本 在 vercel 流水线内部署的域名 这个域名会在 dev 分支触发的时候重新部署 - 更新速度:预期是高频触发,中速部署的域名 - cname:该域名有明确的cname配置,对接的是vercel提供的cname域名 - git日志:该站点会提供git修改日志,因为 vercel 流水线会提供git信息 - 无意义配置:本配置在此处仅仅是用来声明,目前暂时没有专门的域名配置`, }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "ruan-cat-notes", order: 2, deployPlatform: "cloudflare", projectAlias: "notesCloudflare", description: `笔记项目 Cloudflare 流水线版本 在 cloudflare pages 流水线内部署的域名 这个域名会在dev分支且notes目录下有变更时重新部署 - 更新速度:预期是高频触发,高速部署的域名 - cname:该域名有明确的cname配置,对接的是cloudflare pages提供的默认域名 - git日志:该站点没有git修改日志,因为 cloudflare worker 流水线不会提供git信息 - 无意义配置:本配置在此处仅仅是用来声明,目前暂时没有专门的域名配置`, }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "ruan-cat-notes", order: 3, deployPlatform: "vercel", projectAlias: "notesGithubWorkflow", description: `笔记项目 GitHub Workflow 流水线版本 在 github workflow 流水线内部署的域名 为了保证vercel静态文件上传时不会出现构建次数超出每个月100次的额度限制 该域名预期仅仅在main主分支被触发的时候完成更新 - 更新速度:预期是低频触发,低速部署的域名 - cname:该域名没有在平台内配置指定的cname,整个ruancat6312.top域名被vercel管控。vercel会实现自动域名 - git日志:该站点会提供git修改日志,因为 github action 流水线会提供git信息 - 有意义配置:该配置预期会给vercel部署工具直接使用`, }, ], /** github贡献表 */ gh: [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "gh", order: 1, deployPlatform: "vercel", description: `阮喵喵的github贡献表。目前只包括pr贡献,issue贡献暂时没有。 使用vercel部署,域名在cloudflare内以CDN方式配置。 本站点几乎是一次性完成的,未来几乎不会进一步更新。故配置了基于main主分支的低频更新。`, }, ], /** vue-element-cui 组件库项目 */ "vue-element-cui": [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "vec", order: 1, description: "组件库项目的文档。" }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "vue-element-cui", order: 2, description: "组件库项目的文档。", }, ], /** 广州普查 */ gzpc: [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "gzpc", order: 1, description: "广州普查,广州智能决策智慧城市驾驶舱,高德地图大屏项目", }, ], /** rmmv笔记项目 */ "rmmv-notes": [ { topLevelDomain: "ruancat6312.top", secondLevelDomain: "rpgmv-dev-notes", order: 1 }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "rpgmv-dev-notes", order: 2 }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "mv", order: 3 }, ], /** 钻头文档 */ "drill-doc": [ { topLevelDomain: "ruancat6312.top", secondLevelDomain: "small-alice-web", order: 1 }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "small-alice-web", order: 2 }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "drill", order: 3 }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "drill", order: 4 }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "smallalice-docs-ai-nitro-api", order: 5, deployPlatform: "vercel", description: `钻头文档(SmallAliceWeb)的 AI RAG Nitro 后端接口服务,部署在 Vercel。 负责将 Markdown 文档知识源接入 PostgreSQL/pgvector 与 OpenAI,提供词法检索 + 向量检索的混合搜索、带文档来源引用的流式 RAG 问答,并承载知识库准备、同步接口与检索评测等服务端能力。 对应 SmallAliceWeb 仓库的 packages/ai-rag-api 子包,是钻头文档 AI 能力对外提供 HTTP API 的服务端入口。`, }, ], /** rmmv api文档 */ "rmmv-api-doc": [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "rmmv-api-doc", order: 1, deployPlatform: "vercel", description: "使用vercel流水线部署的域名。", }, { topLevelDomain: "ruancat6312.top", secondLevelDomain: "rmmv-api-doc", order: 2, description: "目前没有配置工作流给该域名,未来看情况使用", }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "rmmv-api-doc", order: 3, deployPlatform: "vercel", description: "该域名在vercel内配置cname 在此处仅声明 不实际暴露出去使用", }, ], /** 杂项项目 */ sundry: [ { topLevelDomain: "ruan-cat.com", secondLevelDomain: "juejin", order: 1, deployPlatform: "cloudflare", description: "重定向到掘金文章主页。在cloudflare内用cloudflare worker函数实现301重定向配置。", }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "star", order: 2, deployPlatform: "cloudflare", description: `重定向到个人的github stars列表页。在cloudflare内用cloudflare worker函数实现301重定向配置。 重定向到 https://ruan-cat.github.io/stars-list/ 这个页面。`, }, { topLevelDomain: "ruan-cat.com", secondLevelDomain: "rmmv-api-doc", order: 2, deployPlatform: "vercel", description: "rmmv的api文档,用工具生成的文档。由于仓库庞大,故选择用vercel工作流克隆并部署文档。", }, ], }; ``` ::: --- --- url: /allocation-plan.md --- # 域名分配方案 ruancat6312.top 主要用于给 vercel 部署,特别是 vercel 的基于命令行部署。 ruan-cat.com 主要用于给 cloudflare worker 部署,部署后直接在 cloudflare 内绑定域名重定向。 ruan-cat.com 的域名也会以 cname 的方式,在 cloudflare 配置。cname 主要由 vercel 提供。 --- --- url: /prompts.md --- # 提示词 制作本库用到的一些提示词。仅作为阅读参考,与本库关联不大。 可以选择性的阅读。 ## 001 请深度思考。 1 阅读 packages\domains\main.ts domains 变量的 notesCloudflare notesVercel notesGithubWorkflow 三个属性,并认真阅读其 jsdoc 注释。 2 阅读 packages\domains\src\domains.ts 的 projectLikeDomainSet ,阅读属性 ruan-cat-notes 的内容。 3 为 projectLikeDomainSet 的 ruan-cat-notes 的 description ,增加上述的 jsdoc 内容。根据不同的 projectAlias 配置,将对应的 jsdoc 配置写入到 description 内。 4 写入时,请注意实现文本的换行效果。注意使用模板字符串。填写好模板字符串即可。 ## 002 增加 11comm 内增加 app 相关的域名,并提供别名配置 1. 阅读 `D:\code\github-desktop-store\11comm-app\docs\prompts\migrate-plan\01.md` 的 088 将项目部署到 vercel 平台内 ,这个章节。 2. 去更新维护 `packages\domains\src\domains.ts` 文件。 3. 我们增加了两个域名,都在 vercel 平台内完成部署,都是高频更新的。在 11comm 这个项目内,继续增加 order 为 3 4 的域名。且必须增加 alias 别名。在其他项目内要实现精准获取域名配置的。 4. 顺延 11comm 内原本 order 为 3 4 的域名。 5. 注意在 description 内说明清楚: * vercel 平台部署 * 高频更新 6. 最后编写更新日志,发版标签为 minor 更新。 ## 003 实现 vitepress 动态页面的排序 现在域名页的侧边栏排序,其排序不合适。我已经增加了 `packages\domains\src\types.ts` 的项目说明的 order 属性。我希望 domain 路由的侧边栏可以实现按照 order 来完成侧边栏排序。 涉及到的是 vitepress 动态侧边栏的知识点,你可能需要去看看: * `packages\domains\docs\.vitepress\config.mts` * `packages\domains\docs\domain\[project].paths.ts` 这两个文件可能需要更改,以便实现基于 order 字段的排序。 ### 上下文与知识 去用 context7 去看看 vitepress 动态页面的路由生成方案。看看具体的语法和细节。这个方案不是很大众的知识。 ### 调试 在 `packages\domains\package.json` 内,针对 `"docs:dev": "vitepress dev docs",` 命令。运行,并在谷歌浏览器 MCP 内自主调试。 ### 相同逻辑的代码分发 我不喜欢你最后实现两段完全相同的代码,请你将相同的代码逻辑整理起来。不要重复冗余。 --- --- url: /CHANGELOG.md --- # 更新日志 ## 2.7.0 ### Minor Changes * 1. 完善钻头文档 `smallalice-docs-ai-nitro-api.ruan-cat.com` 的域名配置说明,明确其部署于 Vercel,并对应 `SmallAliceWeb/packages/ai-rag-api` 的 AI RAG Nitro 服务端接口入口。 ([#129](https://github.com/ruan-cat/monorepo/pull/129)) 2. 补充该服务承载 Markdown 文档知识源接入、PostgreSQL/pgvector 与 OpenAI 混合检索、带来源引用的流式 RAG 问答、知识库同步与检索评测等能力的用途说明。 ## 2.6.0 ### Minor Changes * 1. 为 `11comm` 项目域名配置新增 `projectAlias` 字段,用于标注 Vercel 项目别名。 ([`1345b28`](https://github.com/ruan-cat/monorepo/commit/1345b28825c9b52c0e54ba34dd2c71a60b593dbc)) 2. 优化 `11comm` 项目域名的 `description` 文案,补充 Vercel 项目名称信息。 3. 移除过时的 TODO 注释,并更新废弃域名的说明注释。 ## 2.5.0 ### Minor Changes * 1. 新增 `DeployPlatform` 类型(`"cloudflare" | "vercel"`),并在 `ProjectLikeDomain` 接口中添加 `deployPlatform` 可选字段,用于标注域名的部署平台。 ([`51f2b20`](https://github.com/ruan-cat/monorepo/commit/51f2b20b09a9d315fdbc90fe2820caff0cb7ff24)) 2. 新增 VitePress 文档组件 `ProjectDomainDisplay.vue` 的平台徽章展示,使用 `@iconify/vue` 渲染 Vercel / Cloudflare 品牌图标。 3. 修复 `11comm` 项目中域名 `order` 字段重复问题,统一调整为 1→10 连续排序。 ## 2.4.0 ### Minor Changes * 1. 新增 `vue-element-cui` 和 `gzpc` 项目到 domains 配置 ([`4e63e12`](https://github.com/ruan-cat/monorepo/commit/4e63e128412e7a81003718c4e2b23a2b8a36e388)) 2. 为 `projects` 数组新增 `order` 字段并重新排序 ## 2.3.0 ### Minor Changes * 1. **全部子包已升级依赖**(工作区内各发布包同步刷新 `dependencies` / `devDependencies` 等声明,与当前 lockfile 对齐)。 ([`af5aa60`](https://github.com/ruan-cat/monorepo/commit/af5aa603fcdd2a5b8f5caa8b3f74bcb996500120)) 2. 根工作区同步升级 `packageManager`(pnpm)版本,便于团队统一工具链。 ## 2.2.0 ### Minor Changes * 1. 在 `11comm` 项目内,新增 order 3 和 order 4 两条域名配置:`01s-11-app.ruan-cat.com`(H5 前端,vercel 平台部署,高频更新,projectAlias: `11commAppH5`)和 `01s-11-app-server.ruan-cat.com`(Nitro 服务端接口,vercel 平台部署,高频更新,projectAlias: `11commAppNitroServer`)。 ([`ad9fb9e`](https://github.com/ruan-cat/monorepo/commit/ad9fb9edb64173dacf944c57f6aa0b6a6c6ca9f6)) 2. 原 `11comm` 内 order 3 和 order 4 的 `ruancat6312.top` 域名顺延为 order 5 和 order 6。 ## 2.1.0 ### Minor Changes * 1. 新增 `claude-notifier` 项目的 4 个预设域名:`ccntf.ruan-cat.com`、`claude-notifier.ruan-cat.com`、`ccntf.ruancat6312.top`、`claude-notifier.ruancat6312.top`。 ([`db2b873`](https://github.com/ruan-cat/monorepo/commit/db2b873909d6f16a6dd2e8ca2c9ee37f7b1c2684)) 2. 扩展 `@ruan-cat/domains` 的域名配置范围,便于直接查询和使用上述域名。 ## 2.0.1 ### Patch Changes * 1. 调整 `11comm` 项目域名条目的 `order` 排列顺序,使 `ruan-cat.com` 域名条目优先展示(order 1、2),`ruancat6312.top` 域名条目靠后展示(order 3、4)。 ([`d08a404`](https://github.com/ruan-cat/monorepo/commit/d08a404fdf7c56b69a06f0763781e7f0bc8c8c92)) 2. 更新 `11comm` 项目中 `01s-11comm` 域名条目的 `description` 字段,将部署平台说明从 `cloudflare worker` 修改为 `vercel`,与实际部署情况保持一致。 ## 2.0.0 ### Major Changes * **破坏性变更:修改 11comm 项目 `01s-11comm.ruan-cat.com` 域名的部署平台描述** ([`80189b4`](https://github.com/ruan-cat/monorepo/commit/80189b47b7e15a4c49ac0756c5174b1ea81bd7db)) 1. 将 `11comm` 项目中 `01s-11comm.ruan-cat.com` 域名的 `description` 字段,从 "本域名主要用于 cloudflare worker 部署" 更改为 "本域名主要用于 vercel 部署"。 2. 这是一个破坏性变更,因为该域名的实际部署平台发生了根本性变化——从 Cloudflare Worker 迁移到了 Vercel。依赖此域名描述信息进行部署判断或文档展示的下游消费者需要注意适配。 3. 受影响的域名条目:`{ topLevelDomain: "ruan-cat.com", secondLevelDomain: "01s-11comm", order: 4 }`。 ## 1.7.0 ### Minor Changes * 发包配置不提供 `typesVersions` ,不再对外提供该配置。类型导出由其他的配置实现。 ([`57f5fb8`](https://github.com/ruan-cat/monorepo/commit/57f5fb89ad4ede261820547821c903461c783281)) ## 1.6.0 ### Minor Changes * 全面调整全部包的 files 构建输出配置,统一排除规则,避免错误发布冗余文件 ([`a0004e3`](https://github.com/ruan-cat/monorepo/commit/a0004e395be907502350efbe335f81d10ac299b9)) ## 主要改进 * 优化 `files` 字段配置,更精确地控制发布到 npm 的文件列表 * 统一排除不必要的构建产物和缓存文件(如 `.vitepress/cache`、`.vitepress/dist` 等),统一排除掉 `.vitepress` 文件夹 * 排除测试文件和文档文件(`**/tests/**`、`**/docs/**` 等) * 使用 `dist/**` 替代 `dist/*` 以确保包含所有构建输出子目录 * 统一各包的文件排除规则格式 这些改动仅影响 npm 包的发布内容,不影响包的功能和 API,减少了包的体积并提升了发布质量。 ## 1.5.0 ### Minor Changes * 增加新的项目 `claude-notifier` ,claude code 通知工具。预期提供以下几个可用域名,优先级按**先后顺序**排列: ([`0bd0582`](https://github.com/ruan-cat/monorepo/commit/0bd0582cfd804ab3041c6399bf70d53f502a3fbf)) 1. [ccntf.ruan-cat.com](https://ccntf.ruan-cat.com/) 2. [claude-notifier.ruan-cat.com](https://claude-notifier.ruan-cat.com/) 3. [ccntf.ruancat6312.top](https://ccntf.ruancat6312.top/) 4. [claude-notifier.ruancat6312.top](https://claude-notifier.ruancat6312.top/) ## 1.4.0 ### Minor Changes * 新增域名 [01s-11comm-doc.ruan-cat.com](https://01s-11comm-doc.ruan-cat.com/) 。 ([`81d522e`](https://github.com/ruan-cat/monorepo/commit/81d522e84bb8d39c77e2b4c0ed812aa2cc4609af)) ## 1.3.1 ### Patch Changes * a6b2bdc: 更新文档。对 `ruan-cat-notes` 项目下的域名做更新说明。 ## 1.3.0 ### Minor Changes * * `getDomains` 获取域名函数,实现多态,支持通过项目别名查询域名。 ([`5dd81be`](https://github.com/ruan-cat/monorepo/commit/5dd81bed1f6d509965b03361f78be130a25f3e67)) * 项目 `ruan-cat-notes` 的域名调换,子域名 `notes` 现在换回 `vercel` 平台,而不是 `cloudflare worker` 平台实现部署。预期将恢复全套的 git 修改日志。 ## getDomains 函数支持通过项目别名查询域名 ### 新增功能 * 为 `getDomains` 函数新增了函数重载支持,现在可以传入对象参数 * 新增 `GetDomainsParamsWithAlias` 接口,支持通过 `projectName` 和 `projectAlias` 查询域名 * 当指定 `projectAlias` 时,函数会精确返回对应别名的域名配置 * 当找不到指定的 `projectAlias` 时,会通过 consola 输出警告并返回项目的所有域名 ### 原有功能保留 * 完全保留了原有的 `getDomains(projectName: string)` 用法,确保向后兼容 ### 新增测试 * 使用 vitest 编写了完整的单元测试,覆盖所有使用场景 * 测试包括:字符串参数、对象参数、有效别名、无效别名、边界情况等 ### 依赖变更 * 新增 `vitest` 作为开发依赖 * 将 `consola` 从开发依赖移至生产依赖 ### 使用示例 ```ts // 原有用法(保持不变) const domains1 = getDomains("ruan-cat-notes"); // 返回: ["notes.ruan-cat.com", "ruan-cat-notes.ruan-cat.com", "ruan-cat-notes.ruancat6312.top"] // 新用法:不带别名 const domains2 = getDomains({ projectName: "ruan-cat-notes" }); // 返回: ["notes.ruan-cat.com", "ruan-cat-notes.ruan-cat.com", "ruan-cat-notes.ruancat6312.top"] // 新用法:带别名 const domains3 = getDomains({ projectName: "ruan-cat-notes", projectAlias: "notesVercel", }); // 返回: ["notes.ruan-cat.com"] const domains4 = getDomains({ projectName: "ruan-cat-notes", projectAlias: "notesCloudflare", }); // 返回: ["ruan-cat-notes.ruan-cat.com"] ``` ## 域名 `notes.ruan-cat.com` 重返 vercel 平台 得益于在 vercel 平台内关闭 preview 预览分支的监听部署设置,现在大多数项目都不会占用,滥用,浪费掉宝贵的免费用户每日 100 次构建次数额度。 这使得我可以把全部的额度都用于文档项目的 dev 分支,实现高频高速的部署,且保证工作流环境提供 git 信息,使得每一个文章都能获取到历史修改记录。 ## 1.2.0 ### Minor Changes * 设置语义化的,统一规范的,便于记忆的域名。`https://01s-doc.ruan-cat.com/` 。 ([`69d3aae`](https://github.com/ruan-cat/monorepo/commit/69d3aaecaa634fc954bdf9cdfce04088a5456a8c)) ## 1.1.1 ### Patch Changes * 处理导入依赖找不到变量的故障。更新依赖包的导出范围,补充导出 `src/**/*.ts` 下面的全部 ts 文件。 ([`8c0b8b2`](https://github.com/ruan-cat/monorepo/commit/8c0b8b2632037b77b8e9ec8b0de1636b6d4b7619)) ## 1.1.0 ### Minor Changes * 增加杂项项目,用来存储各种不常用的域名。 ([`652862c`](https://github.com/ruan-cat/monorepo/commit/652862ce9bf378beb996663444068b72e693eea5)) ## 1.0.0 ### Major Changes * 1. 废弃掉 `projectNames` 常量和 `Domains` 类型。 ([`1422cfb`](https://github.com/ruan-cat/monorepo/commit/1422cfb62558c89f86884e3deea67046976b52c9)) 2. 更新默认导出的入口,不再是 `main.ts` ,而是 `src/index.ts` 。 3. 开发新函数 `getDomains` ,代替之前直接获取域名对象。 ## 0.10.0 ### Minor Changes * 增加域名 [rmmv-api-doc.ruancat6312.top](https://rmmv-api-doc.ruancat6312.top) 和 [rmmv-api-doc.ruan-cat.com](https://rmmv-api-doc.ruan-cat.com) 。 ([`05e1bf7`](https://github.com/ruan-cat/monorepo/commit/05e1bf79029dd502df89900f07c9d8b24606b0e9)) ## 0.9.0 ### Minor Changes * 增加发包配置 `!**/.vercel/**` 避免出现不小心把部署信息一起打包的情况。减少打包体积。 ([`b5b8d38`](https://github.com/ruan-cat/monorepo/commit/b5b8d3833553cdae070422233612a85066228e16)) ## 0.8.2 ### Patch Changes * 升级依赖。 ([`b95ea59`](https://github.com/ruan-cat/monorepo/commit/b95ea59110185efedc162a91bde541cca53a81fe)) ## 0.8.1 ### Patch Changes * 更新 package.json 的 home 首页,改成对应包的 url 可访问地址。 ([`76117bd`](https://github.com/ruan-cat/monorepo/commit/76117bd689a3e17948f834c1a0e60dd4a74c8ff3)) ## 0.8.0 ### Minor Changes * 增加 vercel 部署工具 的域名 ([`bdbd85f`](https://github.com/ruan-cat/monorepo/commit/bdbd85fac28b602c31b09b9c9c62670637bf1cdb)) ## 0.7.0 ### Minor Changes * 新增 10WMS 和 11 智慧社区项目的前端文档域名配置。 ([`10c4b82`](https://github.com/ruan-cat/monorepo/commit/10c4b8274d4d4b275dfd36832ea4abc1db9a338b)) ## 0.6.2 ### Patch Changes * 无意义的空包。测试用来触发 npx changelogithub 。 ## 0.6.1 ### Patch Changes * 杂项变更,发包仓库地址改名。 发包时,其 `repository.url` 从 `git+https://github.com/ruan-cat/vercel-monorepo-test.git` 更改成 `git+https://github.com/ruan-cat/monorepo.git` 。以便适应仓库名称改名的需求。 现在发包的 package.json 内,其 url 地址如下: ```json { "repository": { "url": "git+https://github.com/ruan-cat/monorepo.git" } } ``` ## 0.6.0 ### Minor Changes * 大项目 11 智慧社区项目 ## 0.5.0 ### Minor Changes * 重新设计了笔记项目域名的使用方式。废弃了 notes 变量。 ## 0.4.1 ### Patch Changes * github 仓库改名了。不再使用 `/vercel-monorepo-test/` 字符串,全部改成 `/monorepo/` 。对外不再称呼为测试性质项目,而是正式的工程项目。 ## 0.4.0 ### Minor Changes * 新增[vitepress-preset.ruancat6312.top](https://vitepress-preset.ruancat6312.top)域名。 ## 0.3.0 ### Minor Changes * 新增[dm.ruan-cat.com](https://dm.ruan-cat.com)域名。 ## 0.2.0 ### Minor Changes * 新增 `dm.ruancat6312.top` 和 `01s-10wms.ruancat6312.top` 域名。 > * [dm.ruancat6312.top](https://dm.ruancat6312.top) > * [01s-10wms.ruancat6312.top](https://01s-10wms.ruancat6312.top) ## 0.1.4 ### Patch Changes * 提供 keywords ,便于查找信息。 ## 0.1.3 ### Patch Changes * 增加 09OA 项目、01 星球、工具包、钻头文档的域名。 ## 0.1.2 ### Patch Changes * 增加笔记项目域名。发包增加 readme 文件。 ## 0.1.1 ### Patch Changes * 重新发包,处理 bug。疑似打包失败。 ## 0.1.0 ### Minor Changes * 初始化项目。