一键导入
add-options-subpage
在扩展的选项页面中添加一个新的子页面。包含路由配置、Vue 页面创建和侧边栏导航集成的完整流程。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
在扩展的选项页面中添加一个新的子页面。包含路由配置、Vue 页面创建和侧边栏导航集成的完整流程。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
代码生成后执行自动化质量检查。运行 Prettier 格式化、ESLint 检查修复和 TypeScript 类型检查。
以持续追问的方式"拷问"用户的设计方案或计划,沿决策树逐一解决每个分支的依赖关系,直到达成共识。当用户想要压力测试方案、被"盘问"设计思路,或提到"拷问我"/"grill me"/"审查方案"/"盘问方案"/"帮我梳理"等表达时使用。
添加一个新的 Content Script,注入到过早客论坛页面中。包含脚本创建、Vue 应用挂载和在主入口注册的完整流程。
为项目端到端地添加一个完整的新功能。覆盖从需求分析到代码生成、测试验证的全部流程,涉及 Content Script、Vue 组件、选项配置、国际化等多个层面。
为过早客论坛页面添加新的 HTML 解析函数,从论坛 HTML 中提取结构化数据。遵循项目现有的正则解析模式。
为项目添加国际化翻译。使用 vue-i18n 管理中文和英文翻译,包含翻译 key 设计、文件更新和使用方式。
基于 SOC 职业分类
| name | add-options-subpage |
| description | 在扩展的选项页面中添加一个新的子页面。包含路由配置、Vue 页面创建和侧边栏导航集成的完整流程。 |
在执行本 Skill 前,先阅读以下知识库文件以获取必要的背景知识:
.codebuddy/knowledge/architecture.md - 理解 storage.sync 跨标签页同步机制和 Pinia Store 模式.codebuddy/knowledge/external-integrations.md - 了解 Element Plus 组件库和 UnoCSS 图标的使用方式选项页面是一个 Vue SPA(Single Page Application),使用 vue-router 的 hash 模式管理路由。子页面通过左侧导航栏切换。
src/
├── router/index.ts # 路由配置
├── options.html / options.ts # SPA 入口
├── layout/
│ ├── OptionsAside.vue # 侧边栏导航
│ └── OptionsHeader.vue # 顶部标题栏
├── views/
│ ├── basic-setting/ # 基本设置子页面
│ │ ├── BasicSetting.vue # 设置页面入口
│ │ └── *.vue # 各设置项
│ ├── bili-images/
│ │ └── BiliImages.vue
│ └── blocked-topics/
│ └── BlockedTopics.vue
└── i18n/locales/
├── zh.json # 中文翻译
└── en.json # 英文翻译
在 src/constants/index.ts 中添加路由名称和路径:
// 路由名称枚举
export const enum OptionsRouteNames {
BasicSetting = 'basicSetting',
BlockedTopics = 'blockedTopics',
BiliImages = 'biliImages',
ImageHosting = 'imageHosting',
ChangeLog = 'changeLog',
About = 'about',
// 新增
MyFeature = 'myFeature',
}
// 路由路径映射
export const OptionsRoutePaths: Record<OptionsRouteNames, string> = {
[OptionsRouteNames.BasicSetting]: '/basic-setting',
[OptionsRouteNames.BlockedTopics]: '/blocked-topics',
[OptionsRouteNames.BiliImages]: '/bili-images',
[OptionsRouteNames.ImageHosting]: '/image-hosting',
[OptionsRouteNames.ChangeLog]: '/change-log',
[OptionsRouteNames.About]: '/about',
// 新增
[OptionsRouteNames.MyFeature]: '/my-feature',
};
在 src/router/index.ts 中添加新路由:
{
path: OptionsRoutePaths[OptionsRouteNames.MyFeature],
name: OptionsRouteNames.MyFeature,
component: () => import('@/views/my-feature/MyFeature.vue'),
meta: {
title: OptionsRouteNames.MyFeature,
icon: 'i-mdi-star-outline', // @unocss-include - UnoCSS 图标类名
},
},
可用图标来自 Iconify/MDI,在文件头部添加 // @unocss-include 注释确保 UnoCSS 识别图标类名。
在 src/views/my-feature/ 中创建 MyFeature.vue:
<script setup lang="ts">
import { ref } from 'vue';
import { useStorageStore } from '@/stores/storage';
import type { OptionsKey } from '@/constants';
const storage = useStorageStore();
const listData = ref([]);
const loadData = async () => {
// 加载数据
};
</script>
<template>
<div class="my-feature-page">
<h2>功能标题</h2>
<!-- 功能 UI -->
</div>
</template>
<style lang="scss" scoped>
.my-feature-page {
// 样式
}
</style>
在 src/i18n/locales/zh.json 和 en.json 中添加翻译:
{
"options": {
"myFeature": "我的功能"
}
}
侧边栏导航文本通过路由 meta 的 title 自动读取国际化翻译:
options.{routeName}MyFeature → key 为 options.myFeaturesrc/layout/OptionsAside.vue 会自动读取 routes 数组渲染导航菜单,无需手动修改侧边栏。
只需确保:
meta.titlemeta.iconOptionsAside.vue 遍历所有含 meta 的路由自动渲染导航菜单,无需手动修改侧边栏。
import { useStorageStore } from '@/stores/storage';
const storage = useStorageStore();
const options = computed(() => storage.options);
// 读取特定选项
const myOption = computed(() => {
return storage.options?.[OptionsKey.MyFeature];
});
import { setStorage } from '@/utils';
const updateSetting = async () => {
const newOptions = { ...storage.options };
newOptions[OptionsKey.MyFeature] = { checked: newValue };
await setStorage({ options: newOptions });
};
如需使用 Markdown 作为页面内容(如 ImageHosting、ChangeLog、About),直接在路由 component 中导入 .md 文件:
{
path: OptionsRoutePaths[OptionsRouteNames.MyFeature],
name: OptionsRouteNames.MyFeature,
component: () => import('@/markdown/MyFeature.md'),
meta: {
title: OptionsRouteNames.MyFeature,
icon: 'i-mdi-information-outline',
},
},