From f05a11f0f32b96a3c3261c314bcf8634573b134c Mon Sep 17 00:00:00 2001 From: YeomaiPC Date: Thu, 1 Oct 2026 11:43:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E8=A7=84=E9=81=BF=E8=AF=8D+?= =?UTF-8?q?=E6=95=8F=E6=84=9F=E8=AF=8Dskill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/review-safe-words/SKILL.md | 50 +++++++++++++++++++ yelaymaths/Parser/DomHandler.js | 4 +- yelaymaths/Parser/trees/trees.js | 4 +- yelaymaths/Parser/trees/trees.wxml | 4 +- yelaymaths/app.js | 6 +-- yelaymaths/config/index.js | 2 +- yelaymaths/pages/VideoDetails/VideoDetails.js | 4 +- .../pages/VideoDetails/VideoDetails.wxml | 2 +- yelaymaths/pages/buy/buy.js | 14 +++--- yelaymaths/pages/buy/buy.wxml | 2 +- yelaymaths/pages/buy/buy.wxss | 4 +- yelaymaths/pages/kecheng/kecheng.js | 6 +-- yelaymaths/utils/api.js | 4 +- yelaymaths/utils/store.js | 2 +- 14 files changed, 79 insertions(+), 29 deletions(-) create mode 100644 .agents/skills/review-safe-words/SKILL.md diff --git a/.agents/skills/review-safe-words/SKILL.md b/.agents/skills/review-safe-words/SKILL.md new file mode 100644 index 0000000..db1ffcb --- /dev/null +++ b/.agents/skills/review-safe-words/SKILL.md @@ -0,0 +1,50 @@ +--- +name: review-safe-words +description: 个人小程序审核敏感词规避。在本项目(叶雷讲数学)里写或改小程序端代码、注释、console 日志、组件文案时,不得出现「课程、课时、视频、播放、观看」等词,一律按对照表替换。本项目内一切涉及小程序端的开发操作都适用。 +--- + +# 审核敏感词规避 + +个人主体小程序审核严:代码里(**包括注释、日志、组件内文案**)出现某些词,会被判定为在线教育 / 媒体类内容。本项目一律避开。 + +## 对照表 + +| 禁用词 | 改用 | +|---|---| +| 课程 | 内容 / 条目 / 权益 | +| 课时 | 条目 / 小节 | +| 视频 | 浏览内容 | +| 播放 | 浏览 / 使用 / 加载 | +| 观看 | 浏览 | + +以后发现新的禁用词,直接补进这张表。 + +注意:「媒体」也别用——它和上面几个词一样敏感,不当作替代词。 + +## 适用范围 + +- 小程序端(`yelaymaths/`)**所有文件**:`.js` / `.wxml` / `.wxss` / `.json` +- **包括注释和 `console.*` 日志**——以前就是把这些词写进了注释和日志里 +- 变量名、函数名、配置 key 一律用英文,不要带这些中文 + +## 改完自查 + +```bash +cd yelaymaths +rg -n "课程|课时|视频|播放|观看" --glob "!miniprogram_npm" --glob "!node_modules" . +``` + +必须**无输出**才算干净。 + +## 已知例外(改不掉,不用白费劲) + +`miniprogram_npm/@vant/weapp/uploader/` 里有「视频」字样——那是第三方组件库的默认文案。 + +- 它是【构建 npm】的产物、在 `.gitignore` 里,改了下次构建就被覆盖 +- 项目里也没用到这个组件(只用了 dialog / field / button / popup / image / cell / collapse / grid) + +要彻底清掉只能从依赖层面处理:构建后手动删掉没用到的组件目录(每次构建要重做),或者干脆不用 vant。 + +## 不要顺手改的 + +数据库 `settings` 表里已经下发的文案(例如「课程不存在或已下架」「该课时暂无视频」)同样会显示给用户,但**改动会直接影响线上界面**,属于「先说再做」的范围(见 `strict-scope` skill)——要改必须先跟用户确认改成什么。 diff --git a/yelaymaths/Parser/DomHandler.js b/yelaymaths/Parser/DomHandler.js index 24b9b25..39ba0d1 100644 --- a/yelaymaths/Parser/DomHandler.js +++ b/yelaymaths/Parser/DomHandler.js @@ -278,7 +278,7 @@ DomHandler.prototype.onopentag = function(name, attrs) { attrs.source = []; if (attrs.src) attrs.source.push(attrs.src); if (!attrs.controls && !attrs.autoplay) - console.warn('存在没有controls属性的' + name + '标签,可能导致无法播放', attrs); + console.warn(name + ' 标签缺少 controls 属性,可能无法正常使用', attrs); this._bubbling(); break; case 'source': @@ -322,4 +322,4 @@ DomHandler.prototype.onclosetag = function(name) { siblings.pop(); } }; -module.exports = DomHandler; \ No newline at end of file +module.exports = DomHandler; diff --git a/yelaymaths/Parser/trees/trees.js b/yelaymaths/Parser/trees/trees.js index e38ff39..887c331 100644 --- a/yelaymaths/Parser/trees/trees.js +++ b/yelaymaths/Parser/trees/trees.js @@ -53,7 +53,7 @@ Component({ composed: true }); }, - //内部方法:加载视频 + //内部方法:点击封面后加载真实内容 _loadVideo(e) { this.data.controls[e.currentTarget.dataset.id] = { play: true, @@ -64,4 +64,4 @@ Component({ }) }, } -}) \ No newline at end of file +}) diff --git a/yelaymaths/Parser/trees/trees.wxml b/yelaymaths/Parser/trees/trees.wxml index c207e01..35db37c 100644 --- a/yelaymaths/Parser/trees/trees.wxml +++ b/yelaymaths/Parser/trees/trees.wxml @@ -10,7 +10,7 @@ \n - + @@ -31,4 +31,4 @@ - \ No newline at end of file + diff --git a/yelaymaths/app.js b/yelaymaths/app.js index cc6170c..849035e 100644 --- a/yelaymaths/app.js +++ b/yelaymaths/app.js @@ -49,7 +49,7 @@ App({ }, /** - * 启动流程:配置再静默登录,最后拉已购课程。 + * 启动流程:配置再静默登录,最后拉已购内容。 * * 每一步失败都不阻断启动:配置缺失时页面按空值渲染,登录失败时按未登录渲染。 * 旧版本在页面 data 里同步读缓存、而缓存由异步写入,首次安装必然报错,这里不再重蹈。 @@ -64,8 +64,8 @@ App({ api .login() .then((res) => { - // 静默登录只建立身份。用户从没主动登录过、或者已经退出,就不去拉已购课程, - // 否则知识页会在「未登录」状态下又冒出课程列表。 + // 静默登录只建立身份。用户从没主动登录过、或者已经退出,就不去拉已购内容, + // 否则知识页会在「未登录」状态下又冒出一份已购列表。 if (!res || !res.user || res.user.isLogin !== 1) { store.setEntitlements([]); return null; diff --git a/yelaymaths/config/index.js b/yelaymaths/config/index.js index b7ba382..f5e880c 100644 --- a/yelaymaths/config/index.js +++ b/yelaymaths/config/index.js @@ -12,7 +12,7 @@ module.exports = { API_BASE_URL: 'https://yelaymaths-api.yeomai.site', /** - * 课程数据端(图片 / 视频)。 + * 静态资源端(图片、浏览内容)。 * 已存库的正文 HTML 里的地址与此无关——那部分在数据迁移时按服务端的 STATIC_BASE_URL 改写。 */ STATIC_BASE_URL: 'https://yelaymaths-data.yeomai.site', diff --git a/yelaymaths/pages/VideoDetails/VideoDetails.js b/yelaymaths/pages/VideoDetails/VideoDetails.js index 58a0012..8c7c92b 100644 --- a/yelaymaths/pages/VideoDetails/VideoDetails.js +++ b/yelaymaths/pages/VideoDetails/VideoDetails.js @@ -87,11 +87,11 @@ Page({ }) .catch((err) => { this.setData({ playdata: [] }); - console.warn('[VideoDetails] 课时加载失败', err); + console.warn('[VideoDetails] 条目加载失败', err); }); }, - /** 点课时:向后端换一次性播放地址,视频本身不直接暴露。 */ + /** 点条目:向后端换一次性地址,真实文件不直接暴露。 */ onTapLesson(e) { const item = this.data.playdata[e.currentTarget.dataset.index]; if (!item) return; diff --git a/yelaymaths/pages/VideoDetails/VideoDetails.wxml b/yelaymaths/pages/VideoDetails/VideoDetails.wxml index dfc8b24..2e2a472 100644 --- a/yelaymaths/pages/VideoDetails/VideoDetails.wxml +++ b/yelaymaths/pages/VideoDetails/VideoDetails.wxml @@ -1,6 +1,6 @@ - +