bf8f973e91
fix: 修复 Mermaid 容器语法的换行符和特殊字符问题
...
## 问题描述
用户报告 Mermaid 图表仍然渲染失败:
1. `flowchart TDStart` - `TD` 和 `Start` 之间没有换行符(有两个空格)
2. 箭头符号变成全角 `–>` 而不是 `-->`
## 根本原因分析
### 问题 1: 换行符丢失
WP-Markdown 可能将整个容器语法内容放在**一个** `<p>` 元素中:
```html
<p>::: mermaid<br>flowchart TD<br>Start --> End<br>:::</p>
```
而不是多个独立的 `<p>` 元素。之前的代码只处理了多元素的情况。
### 问题 2: 特殊字符转换
WordPress 的自动格式化功能会将某些字符转换为排版字符:
- `--` → `–` (U+2013 EN DASH)
- `---` → `—` (U+2014 EM DASH)
- `->` → `→` (U+2192 RIGHTWARDS ARROW)
这些字符在 Mermaid 语法中有特殊含义,必须保持原样。
## 修复方案
### 1. 支持单元素容器语法
在 `extractContainerContent()` 函数中添加检测逻辑:
```javascript
// 检查是否整个内容都在一个元素中
if (startText.includes(':::') && startText.lastIndexOf(':::') > 10) {
// 整个容器语法在一个元素中
let fullText = this.htmlToText(startHTML);
// 移除开始和结束标记
fullText = fullText.replace(/^:::\s*mermaid\s*/i, '').trim();
fullText = fullText.replace(/:::\s*$/, '').trim();
// 创建容器并返回
}
```
### 2. 增强 htmlToText() 函数
添加更多字符转换规则:
```javascript
// HTML 实体
.replace(/–/g, '-') // EN DASH
.replace(/—/g, '--') // EM DASH
.replace(/→/g, '->') // RIGHTWARDS ARROW
.replace(/–/g, '-') // EN DASH (named entity)
.replace(/—/g, '--') // EM DASH (named entity)
.replace(/→/g, '->'); // RIGHTWARDS ARROW (named entity)
// Unicode 字符
.replace(/–/g, '-') // U+2013 EN DASH
.replace(/—/g, '--') // U+2014 EM DASH
.replace(/→/g, '->'); // U+2192 RIGHTWARDS ARROW
```
### 3. 添加详细调试日志
```javascript
this.logDebug('检查元素,textContent: ' + startText.substring(0, 50));
this.logDebug('innerHTML: ' + startHTML.substring(0, 100));
this.logDebug('检测到单元素容器语法');
this.logDebug('转换后的完整文本: ' + fullText.substring(0, 200));
this.logDebug('移除标记后的代码: ' + fullText.substring(0, 200));
```
## 处理流程
### 单元素容器语法
```
1. 检测到 ::: mermaid 开始标记
2. 检查 textContent 中是否包含结束标记 :::
3. 如果包含,说明整个内容在一个元素中
4. 提取 innerHTML
原始: "::: mermaid<br>flowchart TD<br>Start –> End<br>:::"
5. 使用 htmlToText() 转换
- <br> → \n
- – → -
- → → ->
结果: "::: mermaid\nflowchart TD\nStart --> End\n:::"
6. 移除开始和结束标记
结果: "flowchart TD\nStart --> End"
7. 创建容器元素存储代码
```
### 多元素容器语法(保持原有逻辑)
```
1. 检测到 ::: mermaid 开始标记
2. 遍历后续兄弟元素
3. 收集所有内容直到 ::: 结束标记
4. 使用 \n 连接所有行
5. 创建容器元素存储代码
```
## 测试验证
### 测试用例 1: 单元素容器语法
```html
<p>::: mermaid<br>
flowchart TD<br>
A[开始] –> B[处理]<br>
B –> C[结束]<br>
:::</p>
```
预期结果:
```
flowchart TD
A[开始] --> B[处理]
B --> C[结束]
```
### 测试用例 2: 多元素容器语法
```html
<p>::: mermaid</p>
<p>flowchart TD</p>
<p>A --> B</p>
<p>:::</p>
```
预期结果:
```
flowchart TD
A --> B
```
### 测试用例 3: 复杂流程图(AI 评论审核)
- 100+ 个节点
- 多行文本(`<br/>` 标签)
- 箭头符号(`-->`, `-->`)
- 样式定义(`style` 语句)
## 影响范围
- 仅影响 Markdown 容器语法(`::: mermaid ... :::`)
- 不影响其他格式(`<div class="mermaid">`, `<pre><code>` 等)
- 向后兼容,支持单元素和多元素两种情况
## 相关文件
- `argontheme.js` - 修改 `extractContainerContent()` 和 `htmlToText()`
- `tests/test-ai-comment-flow.md` - 测试文档
## 技术细节
### WordPress 自动格式化
WordPress 的 `wptexturize()` 函数会自动转换以下字符:
- `--` → `–` (EN DASH)
- `---` → `—` (EM DASH)
- `->` → `→` (RIGHTWARDS ARROW)
- `(c)` → `©` (COPYRIGHT SIGN)
- `(r)` → `®` (REGISTERED SIGN)
- `(tm)` → `™` (TRADE MARK SIGN)
这些转换对于普通文本是有益的,但对于代码块(如 Mermaid)是有害的。
### 解决方案
1. **禁用自动格式化**(不推荐)
- 会影响整个网站的排版
- 需要修改 WordPress 核心代码
2. **在提取时反转换**(推荐)✅
- 只影响 Mermaid 代码块
- 不影响其他内容
- 易于维护
### 字符映射表
| 原始字符 | HTML 实体 | Unicode | 显示 |
|---------|----------|---------|------|
| `-` | `-` | U+002D | - |
| `--` | `–` / `–` | U+2013 | – |
| `---` | `—` / `—` | U+2014 | — |
| `->` | `→` / `→` | U+2192 | → |
## 注意事项
1. **性能影响**:增加了字符串替换操作,但性能影响可忽略
2. **安全性**:只处理 Mermaid 代码块,不执行任何脚本
3. **兼容性**:支持所有现代浏览器
4. **调试**:添加详细日志,便于排查问题
## 后续优化
1. 考虑使用 DOMParser 解析 HTML,更可靠
2. 添加更多特殊字符的转换规则
3. 支持自定义字符映射表
4. 添加单元测试
## 参考资料
- [WordPress wptexturize() 函数](https://developer.wordpress.org/reference/functions/wptexturize/ )
- [Unicode 字符表](https://unicode-table.com/ )
- [Mermaid 语法文档](https://mermaid.js.org/intro/syntax-reference.html )
2026-01-24 20:56:43 +08:00
20f2483257
docs: 添加 Mermaid 修复总结文档
2026-01-24 20:52:20 +08:00
759804dee7
docs: 更新 Mermaid 使用指南和添加换行符测试页面
2026-01-24 20:51:17 +08:00
b4ba37a6c5
fix: 修复 Mermaid 容器语法换行符丢失问题
...
## 问题描述
用户提供的 AI 评论审核流程 Mermaid 图表渲染失败,错误信息显示:
- `flowchart TDStart` - `TD` 和 `Start` 之间缺少换行符
- 箭头符号被转换成全角 `–>` 而不是 `-->`
## 根本原因
WP-Markdown 插件将容器语法 `::: mermaid ... :::` 转换为 HTML 时:
1. 每一行代码都被包裹在 `<p>` 标签中
2. 行内的换行使用 `<br>` 标签表示
3. 使用 `textContent` 或 `innerText` 提取时,`<br>` 标签被忽略或转换为空格
4. 导致多行代码被合并成一行,Mermaid 语法解析失败
## 修复方案
### 1. 新增 `htmlToText()` 辅助函数
```javascript
htmlToText(html) {
// 将 <br> 和 <br/> 转换为换行符
let text = html.replace(/<br\s*\/?>/gi, '\n');
// 移除其他 HTML 标签
text = text.replace(/<[^>]+>/g, '');
// 解码 HTML 实体
text = text
.replace(/ /g, ' ')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, "'");
return text;
}
```
### 2. 改进 `extractContainerContent()` 函数
- 使用 `innerHTML` 而不是 `textContent` 或 `innerText`
- 调用 `htmlToText()` 将 `<br>` 标签转换为换行符
- 保留所有换行符和空行
- 添加详细的调试日志
### 3. 处理流程
```
1. 检测到 ::: mermaid 开始标记
2. 提取 innerHTML(包含 <br> 标签)
3. 使用 htmlToText() 转换:
- <br> → \n
- 移除其他 HTML 标签
- 解码 HTML 实体
4. 收集所有行内容
5. 使用 \n 连接所有行
6. 创建容器元素存储完整代码
```
## 测试验证
### 测试用例 1:简单流程图
```markdown
::: mermaid
flowchart TD
A[开始] --> B[处理]
B --> C[结束]
:::
```
### 测试用例 2:复杂流程图(AI 评论审核)
- 包含 100+ 个节点
- 包含多行文本(`<br/>` 标签)
- 包含箭头符号(`-->`, `-->`)
- 包含样式定义(`style` 语句)
### 预期结果
- ✅ 所有换行符正确保留
- ✅ 箭头符号不被转换
- ✅ 多行文本正确显示
- ✅ 样式定义正确应用
## 影响范围
- 仅影响 Markdown 容器语法(`::: mermaid ... :::`)
- 不影响其他格式(`<div class="mermaid">`, `<pre><code>` 等)
- 向后兼容,不影响现有功能
## 相关文件
- `argontheme.js` - 修改 `extractContainerContent()` 和新增 `htmlToText()`
- `tests/test-ai-comment-flow.md` - 测试文档
- `docs/mermaid-usage-guide.md` - 使用指南
## 技术细节
### HTML 结构示例
WP-Markdown 生成的 HTML:
```html
<p>::: mermaid<br>
flowchart TD<br>
Start([用户提交评论]) --> PreProcess[预处理]<br>
:::</p>
```
### 提取过程
1. **原始 HTML**: `::: mermaid<br>flowchart TD<br>Start --> End<br>:::`
2. **htmlToText()**: `::: mermaid\nflowchart TD\nStart --> End\n:::`
3. **移除标记**: `flowchart TD\nStart --> End`
4. **最终代码**:
```
flowchart TD
Start --> End
```
## 注意事项
1. **性能影响**:使用 `innerHTML` 和正则替换,性能影响可忽略
2. **安全性**:只处理 Mermaid 代码块,不执行任何脚本
3. **兼容性**:支持所有现代浏览器
4. **调试**:添加详细日志,便于排查问题
## 后续优化
1. 考虑支持更多 Markdown 容器语法(如 `::: warning`, `::: tip` 等)
2. 优化正则表达式性能
3. 添加单元测试
2026-01-24 20:49:32 +08:00
b6d9f8c47e
fix: 修复容器语法和 WP-Markdown 的两个关键问题
...
- 修复 WP-Markdown document.write 重复输出问题
- 改进容器语法检测,支持跨多个元素收集内容
- 解决空行导致内容被分割成多个元素的问题
2026-01-24 20:41:08 +08:00
0ac57949ae
fix: 修复代码高亮和容器语法的两个关键问题
...
- 代码高亮排除 mermaid 代码块,避免干扰渲染
- 容器语法正确处理空行,不再截断内容
- 添加测试页面验证修复效果
2026-01-24 20:14:48 +08:00
4c0569afaf
feat: add WP-Markdown special format support
...
- Detect script tags with document.write() in extractMermaidCode
- Extract Mermaid code from document.write() content
- Support escape character decoding (backslash-n, quotes, etc)
- Add comprehensive test file for WP-Markdown format validation
- Requirements: 10.5
2026-01-23 23:49:24 +08:00
f36a96d3b6
feat: 实现 Mermaid 插件兼容层
...
- 添加插件检测函数(WP Githuber MD、Markdown Block、Code Syntax Block)
- 实现 Mermaid 库加载状态检测
- 添加重复加载防护逻辑,避免与插件冲突
- 在设置页显示插件兼容性状态
- 修改库加载逻辑,当检测到插件时跳过加载
- 在 JavaScript 端添加库加载状态标记
- Requirements: 9.1, 9.2, 9.3, 9.4, 9.5
2026-01-23 23:36:12 +08:00
4a59640998
feat: add Mermaid chart styles
2026-01-23 23:27:06 +08:00
1d5899ce7e
feat: 实现 Mermaid 库加载失败的降级处理机制
...
- 添加多 CDN 备选方案(jsdelivr、unpkg、本地镜像)
- 实现递归加载逻辑,主 CDN 失败时自动尝试备用 CDN
- 添加 onerror 事件处理,捕获库加载失败
- 所有 CDN 失败时显示友好的错误提示
- 在错误提示中保留原始代码供用户查看
- 添加详细的控制台日志输出
- 创建 PHP 和 HTML 测试文件验证功能
- 暴露 MermaidRenderer 到全局作用域供降级处理使用
Requirements: 1.4, 2.3, 7.1, 7.2, 7.3, 7.4, 7.5
2026-01-23 23:12:05 +08:00
43b695bd66
feat: 实现 Mermaid JavaScript 渲染引擎
...
- 在 argontheme.js 中添加完整的 Mermaid 渲染引擎模块
- 实现 Mermaid 配置初始化函数(支持主题自动切换)
- 实现主题获取函数(根据页面 darkmode 类返回对应主题)
- 实现代码块检测器(支持 div.mermaid、pre code.language-mermaid、pre[data-lang]、code.mermaid 四种格式)
- 实现批量渲染函数(一次 DOM 遍历,批量渲染所有图表)
- 实现错误处理机制(显示友好错误提示,保留原始代码)
- 实现样式增强(淡入动画、响应式 SVG)
- 实现主题切换监听器(监听 argon:theme-switched 事件和 darkmode class 变化)
- 实现图表重新渲染功能(主题切换时自动重新渲染)
- 实现渲染缓存机制(避免重复渲染)
- 添加调试日志系统(支持 debugMode 配置)
- 在 DOMContentLoaded 事件中自动初始化
- 暴露 ArgonMermaidRenderer 到全局(用于 PJAX 等场景)
- Requirements: 2.1, 2.5, 10.1, 10.2, 10.3
2026-01-23 23:02:25 +08:00
f9485b50a8
feat: 实现 Mermaid 库加载器
...
- 添加 argon_has_mermaid_content() 函数检测页面是否包含 Mermaid 代码块
- 支持多种格式:div.mermaid、code.language-mermaid、pre[data-lang=mermaid]、code.mermaid
- 添加 argon_get_mermaid_library_url() 函数根据配置返回 CDN 或本地路径
- 支持 jsdelivr、unpkg、自定义 CDN 和本地镜像
- 添加 argon_get_mermaid_fallback_urls() 函数提供备用 CDN 列表
- 添加 argon_enqueue_mermaid_scripts() 函数按需加载 Mermaid 库
- 检测文章内容和评论内容中的 Mermaid 代码块
- 实现异步加载(async 属性)
- 通过 wp_localize_script 传递配置到前端
- 添加单元测试文件 test-mermaid-loader.php
- Requirements: 1.1, 1.2, 1.3, 1.5, 8.2
2026-01-23 22:54:44 +08:00
8ed0ec1717
feat: 在设置页添加 Mermaid 配置选项
...
- 新增第 15 个一级分类:Mermaid 图表
- 包含 3 个子分类:基本设置、外观设置、高级选项
- 添加 6 个配置项:
* 启用 Mermaid 支持开关
* CDN 来源选择(jsDelivr/unpkg/自定义/本地)
* 自定义 CDN 地址输入框
* 图表主题选择(auto/default/dark/forest/neutral)
* 使用本地镜像开关
* 调试模式开关
- 在 argon_update_themeoptions() 函数中添加选项保存逻辑
- 更新后续分类编号(高级设置 1516,评论设置 1617,验证码设置 1718,反馈与安全 1819)
- Requirements: 5.1, 5.2, 5.3, 5.4
2026-01-23 22:49:00 +08:00
c7ef81842a
feat: 添加 Mermaid 配置管理系统
...
- 在 functions.php 中添加 9 个核心配置管理函数
- argon_get_mermaid_option: 获取配置选项(支持简短名称和完整名称)
- argon_update_mermaid_option: 保存配置选项
- argon_validate_mermaid_cdn_url: 验证 CDN URL 格式(必须是有效 URL 且以 .js 结尾)
- argon_get_mermaid_theme: 获取当前主题对应的 Mermaid 主题
- argon_get_mermaid_default_config: 获取默认配置
- argon_validate_mermaid_settings: 验证配置选项(CDN 来源、主题名称、布尔值)
- argon_init_mermaid_config: 初始化默认配置(不覆盖已有配置)
- argon_get_all_mermaid_options: 获取所有配置选项
- argon_update_mermaid_settings: 批量更新配置(包含验证)
- 创建单元测试文件验证配置管理功能
- 满足 Requirements 5.1, 5.2, 5.3, 5.4, 5.5
2026-01-23 22:41:59 +08:00
54cbb400b9
feat: 移除 Mermaid 支持并创建需求文档
...
- 从 settings.php 移除 Mermaid 设置项和选项保存逻辑
- 从 functions.php 移除 Mermaid 代码块预处理函数
- 从 footer.php 移除 Mermaid 加载和渲染代码
- 从 style.css 移除 Mermaid 图表样式
- 删除本地镜像文件 assets/vendor/external/mermaid/
- 创建 mermaid-support-requirements.md 需求文档
原因:WP-Markdown 编辑器保存的 Markdown 源文件中 Mermaid 代码是一整行,
没有真正的换行符,导致 Mermaid 解析器持续报错。所有尝试的解决方案均失败。
需求文档中详细说明了问题原因和推荐的替代方案。
2026-01-23 22:11:09 +08:00
5704531a4d
fix: correct condition check in argon_format_mermaid_code
2026-01-23 22:00:21 +08:00
ccd3cfa877
feat: add PHP preprocessing for Mermaid code blocks
...
- Add argon_format_mermaid_code filter in functions.php
- Decode WP-Markdown escape characters in PHP
- Auto-add newlines for single-line mermaid code
- Simplify JavaScript rendering logic
- Use data-mermaid-code attribute for preprocessed code
- Remove debug console.log statements
2026-01-23 21:56:30 +08:00
b6dc205f90
fix: simplify newline insertion - split and rejoin
2026-01-23 21:51:32 +08:00
0f698213b7
fix: improve newline insertion logic for mermaid
2026-01-23 21:48:48 +08:00
27a3afbf94
fix: auto add newlines for single-line mermaid code
2026-01-23 21:47:30 +08:00
715d6b81a9
debug: verify code before mermaid render
2026-01-23 21:43:44 +08:00
facbf1eae7
fix: use mermaid.render instead of init for WP-Markdown format
2026-01-23 21:37:11 +08:00
2383c9f09d
debug: add char code inspection
2026-01-23 21:32:53 +08:00
d11336dd35
debug: add detailed logging for WP-Markdown format
2026-01-23 21:29:46 +08:00
a5a8225ff2
fix: 修复页面底部显示 JavaScript 代码的问题
...
- 将注释中的 <script> 标签改为字符串拼接形式,避免浏览器提前关闭 script 标签
- 这是导致页面底部出现一坨 JavaScript 代码文本的根本原因
2026-01-23 21:24:24 +08:00
ae4554bcfa
fix: 修复 Mermaid 渲染错误 - 改为立即渲染每个图表而非批量渲染 - 修复 className.indexOf 错误 - 添加详细的错误日志 - 缩短日志输出的代码长度
2026-01-23 21:18:45 +08:00
2659bb9131
fix: 支持 WP-Markdown 的 Mermaid 渲染格式 - 添加对 script 标签包裹格式的支持 - 解码 document.write 中的转义字符 - 处理 \\n 为真实换行符 - 同时保持对标准格式的兼容
2026-01-23 21:15:40 +08:00
3a4136acbf
fix: 优化 Mermaid 换行符处理 - PHP 端添加关键字后自动插入换行符 - 使用 data-mermaid-code 属性传递原始代码 - JS 端优先读取 data 属性 - 添加更详细的调试日志
2026-01-23 19:21:05 +08:00
b7aac3633e
fix: 在 PHP 端处理 Mermaid 代码块换行符 - 在 the_content_filter 中添加 Mermaid 预处理 - 使用正则表达式匹配代码块 - 解码 HTML 实体并重新编码 - 确保换行符在输出时保留
2026-01-23 19:17:57 +08:00
c96e0bdfa3
fix: 使用递归文本节点提取保留换行符 - 添加 getTextWithLineBreaks 函数递归提取文本节点 - 处理 BR 标签为换行符 - 添加换行符检测日志 - 添加错误捕获避免渲染失败
2026-01-23 19:15:24 +08:00
bdfb07980a
fix: 优化 Mermaid 代码块识别逻辑 - 使用 textContent 替代 innerHTML 避免 HTML 标签干扰 - 添加 Mermaid 关键字验证,只处理有效的图表代码 - 添加重复处理检测,防止多次渲染 - 延迟渲染确保 DOM 完全加载 - 适配 WP-Markdown 编辑器
2026-01-23 19:12:00 +08:00
6f21bbf690
fix: 过滤 Mermaid 代码块中的 script 标签 - 添加 script 标签检测,防止误识别页面中的其他脚本 - 修复 Parse error TAGSTART 错误
2026-01-23 19:08:38 +08:00
48911f8af6
fix: 修复 Mermaid 渲染方法错误 - 将 mermaid.run() 改为 mermaid.init() - Mermaid 10.x 版本使用 init 方法触发渲染 - 修复 mermaid.run is not a function 错误
2026-01-23 19:04:29 +08:00
a5521b5fb2
fix: 修复 Mermaid 图表解析错误
...
- 使用 innerHTML 替代 textContent 获取代码内容
- 添加 HTML 实体解码逻辑(< > & 等)
- 确保保留代码块中的换行符
- 修复 'Parse error on line 1' 错误
2026-01-23 19:02:08 +08:00
ddb6e24b3b
feat: 为 Mermaid 添加本地镜像支持
...
- 在设置页添加'使用本地镜像'复选框
- 下载 Mermaid 10.x 库文件到 assets/vendor/external/mermaid/
- 修改 footer.php 支持本地镜像优先加载
- 添加 argon_mermaid_use_local 选项保存逻辑
- 添加 README.md 说明本地镜像使用方法
- 与 Mathjax/Katex 保持一致的实现方式
2026-01-23 18:57:00 +08:00
7feca8f17d
feat: 为 Mermaid 添加本地镜像支持
...
- 在设置页添加'使用本地镜像'复选框选项
- 修改 footer.php 添加本地镜像判断逻辑
- 下载 Mermaid 10.x 本地镜像文件到 assets/vendor/external/mermaid/
- 本地镜像文件大小约 3.3MB
- 勾选后优先使用主题内置版本,提升加载速度
- 添加 argon_mermaid_use_local 选项保存逻辑
2026-01-23 18:55:08 +08:00
627a57c5e9
feat: 添加 Mermaid 图表支持
...
- 在设置页功能增强分类中添加 Mermaid 图表设置项
- 支持启用/禁用 Mermaid 渲染
- 支持自定义 CDN 地址(默认 jsdelivr)
- 提供 4 种主题选择(默认/森林/暗色/中性)
- 在 footer.php 中添加 Mermaid 库加载和初始化逻辑
- 自动识别 language-mermaid 和 mermaid 类的代码块
- 在 style.css 中添加 Mermaid 图表样式
- 支持响应式布局和夜间模式
- 使用方式:在代码块中指定语言为 mermaid
2026-01-23 18:50:50 +08:00
468f2a0a93
fix: 删除 AI 审查设置中重复的抽查概率设置项
...
- 删除独立的'抽查基础概率'设置项(已在'检测策略'中包含)
- 优化设置页结构,避免重复配置
- 保持功能不变,只是移除了重复的UI元素
2026-01-23 18:35:40 +08:00
a38f168909
refactor: 移除智能预审查,改为先保存后检测
...
- 移除所有智能预审查相关的设置和代码
- 评论先保存到数据库并标记为待审核状态
- AI 检测在评论保存后异步进行
- 检测完成后根据结果更新评论状态
- 避免误杀正常评论,提升用户体验
- 所有需要检测的评论都会显示为审核中
2026-01-23 18:32:54 +08:00
244b1725af
feat: 优化 AI 审查设置页结构
...
- 将设置项合并为 4 个逻辑分组:检测策略、关键字管理、AI 配置、处理规则
- 检测策略:整合实时检测模式、抽查概率、智能预审查
- 关键字管理:整合 AI 学习开关和手动添加关键字
- AI 配置:整合 Prompt 模式、置信度阈值
- 处理规则:整合自动处理方式、检测范围、白名单
- 优化界面布局,使用统一的样式和间距
- 添加清晰的标签和分组,提升可读性
2026-01-23 18:19:45 +08:00
fa54d0a673
fix: 优化 Prompt 模式设置,避免与检测提示词冲突
...
- 将自定义检测提示词移到 Prompt 模式选项内部
- 只有选择「自定义 Prompt」时才显示文本输入框
- 添加平滑的显示/隐藏动画效果
- 优化界面布局,提升用户体验
2026-01-23 18:06:20 +08:00
777e98e17e
fix: 修正关键字必查模式的检测逻辑
...
- 关键字必查模式:只检测触发关键字的评论
- 智能抽查模式:关键字触发或随机抽查
- 全量检测模式:检测所有评论,关键字触发时优先标记
- 优化检测逻辑,使各模式职责更清晰
2026-01-23 18:01:10 +08:00
97836994e5
feat: 添加 AI 垃圾评论检测的设置页选项
...
- 关键字必查:触发关键字后立即 AI 审核
- AI 主动学习:自动分析管理员决策并优化关键字
- 学习到的关键字:显示 AI 学习的关键词统计
- 智能预审查:在评论保存前进行 AI 审查
- 添加同步检测函数支持预审查功能
2026-01-23 17:54:16 +08:00
225a9257ae
feat: AI 垃圾评论检测增强 - 关键字必查和主动学习
...
- 新增关键字必查机制:触发关键字后立即同步 AI 审核
- 新增 AI 主动学习功能:自动分析误判和漏判,优化关键字列表
- 修复邮件中用户名问题:重新获取评论对象确保使用最新用户名
- 关键字触发的检测优先级最高,立即执行不延迟
- AI 学习的关键字置信度 > 0.7 且出现 >= 3 次自动加入关键字列表
2026-01-23 17:19:39 +08:00
2bf800a13b
fix: 修复 AI 垃圾评论检测时邮件提前发送的问题
...
- 在发送回复通知邮件前检查评论是否被标记为垃圾
- 在发送管理员通知邮件前检查评论是否被标记为垃圾
- 启用 AI 检测时延迟邮件发送至 5 秒,确保 AI 检测先完成
- 垃圾评论不再发送邮件通知,避免垃圾评论达到骚扰目的
2026-01-23 17:12:40 +08:00
f4122f5880
style: 移除 AI 查询页面表格边框线
...
- 移除表格外边框和内部分隔线
- 保留表头渐变背景
- 保持 hover 效果和交互体验
- 让表格看起来更简洁现代
2026-01-23 17:07:48 +08:00
ded2740f6f
style: 优化 AI 查询页面表格样式和文本显示
...
- 修复信息网格 hover 状态(移除默认背景,hover 时添加背景)
- 优化表格样式:添加圆角边框、渐变表头、hover 动画效果
- 优化表格文本显示:
* 类型徽章添加图标(文章摘要/评论检测)
* 时间格式简化(Y-m-d H:i)
* 标题添加 hover 效果(变为主题色)
* 识别码添加背景和字间距
- 增强表格交互体验:hover 时行向右平移 2px
2026-01-23 17:06:45 +08:00
31adb00621
style: 优化 AI 查询页面显示样式
...
- 增大识别码字体和间距,更醒目
- 优化信息网格样式,添加边框和悬停效果
- 统一子标题样式,添加左侧装饰条
- 优化内容框样式,添加左侧主题色边框
- 增强状态徽章样式,更清晰的视觉反馈
- 优化输入框样式,更好的聚焦效果
- 改进响应式布局,移动端更友好
2026-01-23 16:59:01 +08:00
8c5039c933
feat: AI 查询页面显示完整的检测结果
...
- 添加用户名审查状态显示
- 添加置信度百分比显示
- 添加处理建议显示
- 添加综合分析内容显示
- 管理员记录弹窗同步显示完整信息
2026-01-23 16:53:33 +08:00
b3cd3747d3
fix: 修复 AI 审查历史记录只显示评论审查的问题
...
- 在批量扫描结果中添加 username_invalid 字段
- 区分显示评论审查和用户名审查
- 在理由前添加审查类型标识(评论审查/用户名审查)
- 保存完整的检测结果到评论元数据
2026-01-23 16:49:44 +08:00