094a55b80a
fix: 修复 Mermaid 代码块缩进和 API 兼容性问题
...
- 添加智能缩进清理:移除统一缩进但保持相对缩进
- 添加 Mermaid API 版本检测和兼容性处理
- 支持 Mermaid 10.x (render Promise API)
- 支持 Mermaid 8.x (mermaidAPI.render 回调 API)
- 添加降级方案 (mermaid.init 方法)
- 增强错误处理和调试日志
- 修复代码提取时的空格问题
2026-01-24 21:49:50 +08:00
29bfd284e0
feat: 实现 Mermaid 代码块魔改支持
...
- 添加 convertMermaidCodeblocks() 函数,在代码高亮前拦截 mermaid 代码块
- 支持标准 Markdown 代码块 (\\\mermaid) 渲染
- 更新 detectMermaidBlocks() 添加 mermaid-from-codeblock 选择器
- 更新 extractMermaidCode() 支持新容器类型
- 创建测试文件 test-codeblock-magic.html
- 更新用户文档、开发者文档和 FAQ
- 完全绕过代码高亮和 WordPress 格式化
- 支持 PJAX 页面切换
- 特殊字符和换行符正确保留
2026-01-24 21:35:12 +08:00
32c2a72d2b
feat: 添加 Mermaid Shortcode 支持(推荐方式)
...
- 新增 [mermaid]...[/mermaid] shortcode
- 支持 theme、width、height、align 参数
- 不依赖 WP-Markdown 的处理方式
- 不会被 WordPress 自动格式化破坏
- 在原生编辑器中清晰可见
- 添加完整的使用指南和示例
2026-01-24 21:02:47 +08:00
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
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
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
c0e21840f1
fix: 修复评论提交后表单状态未清除的问题
...
- 将表单重置代码移到 success 回调的最前面,确保优先执行
- 将表单重置与 UI 更新(插入评论、滚动)分离,避免异常影响表单重置
- 确保评论内容、验证码、Geetest 状态都能正确清除
- 修复需要刷新页面才能再次发送评论的问题
2026-01-23 16:41:02 +08:00
f2c807edf0
feat: 移除所有文章加载动画相关代码
...
- 移除pjax:afterGetContainers中的加载动画逻辑
- 移除pjax:beforeReplace中的动画清理代码
- 删除CSS中的loading-css-animation样式
- 删除CSS中的loading-dot动画样式
- 删除CSS中的post-pjax-loading相关样式
- 删除CSS中的post-list-pjax-loading相关样式
- 删除loading-animation关键帧动画
2026-01-23 15:45:57 +08:00
5ee608537e
fix: 完善文章加载动画的状态恢复逻辑
...
- 在pjax:beforeReplace中恢复所有隐藏卡片的opacity和pointer-events
- 确保页面切换后所有卡片都能正常显示和交互
- 保持无!important的纯净实现方式
2026-01-23 15:40:24 +08:00
c3acaea5e2
fix: 移除important并通过禁用transition解决问题
...
- 找到根本原因:post-preview的transition: all导致opacity被动画恢复
- 解决方案:临时禁用transition,设置opacity,然后恢复
- 添加footer隐藏功能
- 让被点击的卡片居中显示
- 清理时恢复footer和卡片位置
2026-01-23 15:37:57 +08:00
85af3dcdd1
fix: 通过attr设置style添加important强制隐藏
...
- 使用attr方法直接修改style属性
- 添加!important确保优先级最高
- 移除调试日志,保持代码简洁
- 这是最终解决方案
2026-01-23 15:32:03 +08:00
d0fff9952e
fix: 使用JavaScript强制隐藏其他文章卡片
...
- 添加直接CSS操作强制设置opacity为0
- 将opacity检查延迟100ms,等待CSS生效
- 这样可以绕过CSS选择器优先级问题
- 保留调试日志用于后续优化
2026-01-23 15:28:34 +08:00
6fad1244a8
fix: 移除important并添加详细调试日志
...
- 移除CSS中的!important,避免叠屎山
- 添加详细的console.log调试信息
- 输出每个卡片的opacity值和loading状态
- 方便通过浏览器控制台定位问题
2026-01-23 15:16:50 +08:00
aed0fb5c47
fix: 增强CSS选择器优先级并添加调试日志
...
- 为所有opacity相关CSS规则添加!important确保优先级
- 为.post-pjax-loading添加position: relative
- 添加console.log调试信息,方便排查问题
- 严格遵守设置项,只在启用进入文章动画时生效
2026-01-23 13:59:46 +08:00
dc11338ca2
fix: 修复文章加载动画功能无论是否启用都能正常工作
...
- 修改CSS选择器从.post-preview改为.post,匹配所有文章卡片
- 修改JavaScript选择器从article.post-preview改为article.post
- 添加#main.article-list限定,只在文章列表页生效
- 修复清理代码,确保能正确移除所有文章的加载状态
2026-01-23 13:50:36 +08:00
2de0cfb8de
refactor: 将TODO折叠按钮移至未完成任务下方
...
- 折叠按钮现在作为已完成任务区域的分隔栏显示
- 分隔栏包含已完成图标、文字和数量徽章
- 点击分隔栏可折叠/展开已完成任务
- 桌面端和移动端都采用相同的设计
- 优化了视觉层次,更符合用户使用习惯
2026-01-23 13:09:56 +08:00
9f8b560d20
feat: 为TODO列表添加折叠已完成任务功能
...
- 添加折叠/展开已完成任务的按钮,显示已完成数量
- 实现流畅的折叠展开动画效果(高度、透明度、位移)
- 优化删除和完成任务的动画,增加缩放效果
- 同时支持桌面端和移动端
- 折叠按钮在没有已完成任务时自动隐藏
- 使用 CSS transition 实现平滑的进入退出动画
2026-01-23 13:04:43 +08:00
00a6ee0db2
fix: 修复评论提交后无法再次提交的问题
...
- 评论提交成功后调用 geetestCaptcha.reset() 重置验证码实例
- 清空数学验证码输入框(之前错误地自动填充答案)
- 确保用户可以连续提交多条评论而无需刷新页面
2026-01-22 18:58:09 +08:00
adf3852a74
feat: 完善用户名-评论联合检测功能
...
- 改为立即同步执行 AI 检测,不再延迟
- 管理员可看到原用户名:用户-XXXXXXXX (原用户名: xxx)
- 添加前台删除评论功能(仅管理员可见)
- 删除按钮使用红色 outline-danger 样式
- 删除前弹出确认对话框
- 删除后淡出动画并移除评论元素
- 完整的成功/失败提示
2026-01-22 18:41:44 +08:00
0ae1472e79
fix: 修复开启进入文章动画时文章加载不正常的问题
...
- 在 pjax:beforeReplace 事件中清理文章列表的 PJAX 加载状态
- 移除 post-preview 元素的 loading 动画和 transform 样式
- 清理 post-list-pjax-loading 类,避免影响新页面
- 优化 post-full 动画,添加 transform-origin 确保动画流畅
- 通过 :not(.no-animation) 选择器支持禁用动画的场景
2026-01-22 15:57:22 +08:00
cb5c65d611
fix: 修复TODO在非停靠状态时不会折叠的问题
...
- 在所有关闭侧边栏的操作中添加折叠所有面板的逻辑
- 包括点击遮罩、关闭按钮、链接、搜索和目录跳转等场景
- 确保侧边栏关闭时所有折叠面板(TODO、文章目录等)都会自动收起
2026-01-22 15:40:02 +08:00
4515831d7f
chore: 清理临时文件和测试文件
...
- 删除临时测试文件 (test-*.html, test-*.js)
- 删除临时文档文件 (GPU_ACCELERATION_USAGE.md, RENDER_OPTIMIZER_USAGE.md)
- 删除测试 HTML 文件 (argon-memory-manager.test.html, argon-performance.test.html)
- 整理文档到 specs 目录下
2026-01-22 10:42:19 +08:00
9feba74cfe
fix: 修复 argontheme.js 文件编码问题
...
- 修复所有 UTF-8 编码错误字符( 替换为正确的中文字符)
- 涉及注释、字符串等 100+ 处编码问题
- 确保文件以正确的 UTF-8 编码保存
2026-01-22 10:39:43 +08:00
4dafdc62f6
fix: 替换所有 console 调用为 ArgonDebug
...
- 在 argontheme.js 中引入 ArgonDebug 调试控制台
- 替换所有 console.warn 为 ArgonDebug.warn
- 替换所有 console.error 为 ArgonDebug.error
- 替换所有 console.info 为 ArgonDebug.info
- 删除移动端侧边栏的调试日志(console.log)
- 简化不必要的日志输出,只保留关键信息
- 所有日志现在只在调试模式下输出,避免生产环境污染控制台
2026-01-22 09:46:44 +08:00
2e8700f7d7
fix: 改进 PJAX 和 LazyLoad 错误处理与性能
...
- 为 pjax:complete 中的所有初始化函数添加 try-catch 错误处理
- 优化 applyLoadEffectOptimized:使用 transitionend 事件替代 setTimeout
- 为所有优化函数添加完整的 JSDoc 注释
- 添加代码优化说明注释,便于后续维护
- 确保单个模块失败不影响其他模块的初始化
2026-01-21 13:48:25 +08:00
0cbfa0aab3
fix: 优化 PJAX 和 LazyLoad 功能
...
- 创建 cleanupPjaxResources() 函数统一管理资源清理
- 创建 resetGT4Captcha() 函数封装验证码重置逻辑
- 消除 pjax:end 中的重复初始化调用(waterflowInit、lazyloadInit)
- 优化 LazyLoad Observer 生命周期管理,添加存在性检查
- 使用 requestAnimationFrame 替代 setTimeout 优化图片加载效果
- 实现滚动监听降级方案,支持不兼容 IntersectionObserver 的浏览器
- 改进错误处理,所有第三方库调用都有 try-catch 保护
- 优化图片状态清理,使用正则表达式移除所有 lazyload-style-* 类名
需求:1.1-1.5, 2.1-2.5, 3.1-3.5, 4.1-4.5, 5.1-5.5, 6.1-6.5, 7.1-7.5
2026-01-21 13:42:31 +08:00
5c3e0aa465
fix: 修复懒加载未启动的问题
...
- 修复 argonConfig.lazyload 配置逻辑,默认启用懒加载
- 修复懒加载初始化时机,确保 DOM 加载完成后再执行
- 添加 DOMContentLoaded 事件监听,避免过早初始化导致找不到图片元素
- 修复懒加载禁用判断,同时支持 false 和 'false' 字符串
- 优化 header.php 中的懒加载配置,使用 get_option 默认值
2026-01-20 23:22:32 +08:00
86d11e1f91
fix: 修复 PJAX 页面切换时的资源加载问题
...
- 修复懒加载未重新初始化导致图片不显示的问题
- 添加全局 lazyloadObserver 变量,在 PJAX 切换时正确清理旧的 Observer
- 修复 Zoomify 实例未清理导致的内存泄漏和功能异常
- 添加全局 zoomifyInstances 数组管理所有 Zoomify 实例
- 在 pjax:beforeReplace 事件中清理所有旧资源(懒加载、Zoomify、Tippy)
- 优化资源初始化顺序,先初始化懒加载再初始化其他功能
- 在 pjax:end 事件中延迟再次确保资源正确加载
- 修复滚动位置恢复逻辑,确保页面跳转后正确定位
- 重置图片状态(opacity、transform、transition)避免样式残留
2026-01-20 23:19:25 +08:00
39d5f88b1e
chore: 清理未提交的文件
...
- 删除 page-ai-summary-query.php 模板文件
- 删除 js-fallback.js
- 其他文件的修改
2026-01-20 22:50:10 +08:00
dcaa19f5bc
fix: 修复页面加载时的样式跳变问题
...
- 在 header.php 中添加预加载脚本,页面渲染前应用用户样式设置
- 优化强制刷新逻辑,避免二次刷新
- 移除 argontheme.js 中重复的样式应用代码
- 修复字体、阴影、滤镜、UI 样式的闪烁问题
2026-01-20 18:30:08 +08:00
29257dfce2
fix: 从 0dba91c 恢复 style.css 和 argontheme.js
...
- 完全恢复到问题出现前的版本
- 确保浮动按钮正常工作
2026-01-20 16:26:20 +08:00
05fd756c9c
fix: 恢复主题 JS 文件
2026-01-20 16:18:17 +08:00
25fd3891a3
feat: 重构评论点赞系统,支持取消点赞
...
- 改用 IP + User-Agent 哈希识别用户,登录用户使用 user_id
- 服务端存储点赞用户列表,而非简单计数
- 同一用户只能点赞一次,再次点击可取消点赞
- 移除 Cookie 依赖,避免 IP 变化导致重复点赞
- 已点赞按钮 hover 时显示可点击状态
2026-01-16 22:24:34 +08:00
d9aafe2479
fix: 修复评论回复按钮点击无反应和点赞数显示问题
...
- 将评论回复/编辑的滚动动画从 jQuery animate + easeOutCirc 改为原生 window.scrollTo
- 避免因其他插件覆盖 jQuery 导致 easing 函数丢失的问题
- 修复 .comment-upvote .btn-inner--text 样式,确保点赞数正确显示
- 添加 display: inline-block !important 强制显示点赞数文本
2026-01-16 22:18:08 +08:00
ce5f7c8bfa
fix: 在文件末尾再次添加 easing 函数备用
...
- 确保在所有脚本加载完成后 easing 函数仍然可用
- 解决其他插件覆盖 jQuery 导致 easing 丢失的问题
2026-01-16 21:50:50 +08:00
cdf343f4b4
fix: 添加 jQuery easing 函数备用定义
...
- 添加 easeOutCirc 和 easeOutExpo 备用实现
- 防止其他插件加载的 jQuery 覆盖 argon_js_merged 中的 easing 插件
- 解决 'n.easing[this.easing] is not a function' 错误
2026-01-16 21:08:49 +08:00
8f3f80d2df
fix: 修复评论区回复按钮第一次点击无效的问题
...
- 为 .comment-operations 添加 pointer-events: none(opacity: 0 时)
- hover 时恢复 pointer-events: auto
- 问题原因:按钮不可见时仍能接收点击事件,导致第一次点击被'空'按钮捕获
- 恢复 jQuery 事件委托方式绑定回复按钮点击事件
2026-01-16 21:03:07 +08:00
2da70526ea
fix: 修复评论区回复按钮页面刷新后第一次点击无效的问题
...
- 使用原生 document.addEventListener 替代 jQuery 事件委托绑定回复按钮点击事件
- 原生事件监听器在 DOM 解析完成后立即生效,不依赖 jQuery 初始化状态
- 添加 element.closest() 实现事件委托,兼容动态加载的评论
- 保留 jQuery 事件绑定用于 PJAX 相关功能
- 添加 offset() 防护检查避免元素未渲染时报错
2026-01-16 20:52:58 +08:00
f25eb17d3e
fix: 修复 lazyload 懒加载功能无法使用的问题
...
- functions.php: 重写 argon_lazyload 函数,使用 data-src 存储原始图片地址
- functions.php: 添加占位图和 lazyload 类,恢复加载动画样式支持
- functions.php: 恢复 argon_enable_lazyload 设置项检查
- argontheme.js: 使用 IntersectionObserver 实现真正的懒加载
- argontheme.js: 支持 fadeIn/slideDown 加载效果和自定义阈值
- header.php: 恢复 lazyload 相关配置项传递给 argonConfig
2026-01-16 19:50:14 +08:00
ea4663472c
refactor: 重构评论区回复提示框
...
- 重新设计 HTML 结构,更清晰的布局
- 新增回复图标和用户名高亮显示
- 关闭按钮改为圆形,悬停时旋转动画
- 使用 CSS 动画替代 jQuery slideDown/slideUp
- 添加渐变背景和阴影效果
- 优化深色模式适配
2026-01-16 15:18:22 +08:00
3f280dd9ef
fix: 修复侧边栏目录和TODO溢出问题,增强序号识别
...
- 修复 part2 和 part3 高度自适应,避免内容溢出窗口
- part2 和 part3 动态分配可用空间(part2 占 60%,part3 占 40%)
- 增强序号识别:支持第一、第二、(1)、[1]、I. II. 等格式
- 移除 todo-list-scroll 固定高度限制,改为动态计算
2026-01-16 15:08:07 +08:00
0f3e7ff7ff
revert: 回滚代码规范化改动,保留原有格式
2026-01-16 14:14:51 +08:00
ab02c51822
refactor: 增强代码可读性 - 添加结构化注释
...
style.css:
- 添加 CSS 变量定义区块注释
- 添加主题色系统、动画系统分区
- 添加夜间模式、沉浸式主题色分区
- 添加框架样式覆盖、基础样式分区
argontheme.js:
- 添加文件头目录索引
- 添加 10 个功能模块的分区注释
- 为工具函数添加 JSDoc 注释
- 统一注释风格
2026-01-16 11:38:28 +08:00
233edd2441
refactor: 深度代码规范化
...
- argontheme.js: 将 89 个 var 声明改为 let (保留 3 个全局变量)
- functions.php: 修复 106 处箭头操作符空格问题 (-> 前后不应有空格)
- functions.php: 移除多余空行
2026-01-16 11:25:24 +08:00
a5419b0c6e
refactor: 代码规范化 - 统一格式风格
...
- style.css: 移除 4277 行多余空行 (16556 -> 12279 行)
- style.css: 修复文件头注释格式
- style.css: 移除空规则集
- style.css: 统一缩进风格
- argontheme.js: 统一比较运算符为严格相等 (=== / !==)
- argontheme.js: 移除多余空行
- 新增 .kiro/steering/code-style.md 代码规范文档
2026-01-16 11:18:51 +08:00