# lightGallery 图片灯箱集成 — 剩余工作计划
## 当前状态总结
大部分集成工作已在上一轮会话中完成:
- ✅ `lightgallery@2.9.0` 已通过 pnpm 安装
- ✅ `LightGallery.astro` 组件已创建(含暗色模式 CSS、冲突检测、自动包裹图片、初始化逻辑)
- ✅ `post.astro` 已引入 LightGallery 组件
- ✅ `settings.yaml` 已添加灯箱开关 `article_lightbox_enabled`
- ✅ 构建成功,字体/图标资源已正确处理(woff2 内联为 base64,ttf/woff/svg/gif 均正确引用 `/themes/warm-island/assets/` 路径)
- ✅ 已部署到 Docker 容器
## 发现的问题
### 关键 Bug:`selector: 'a'` 选择器过于宽泛
当前 `LightGallery.astro` 中使用 `selector: 'a'` 初始化 lightGallery,这会导致 `.wi-post__body` 内**所有** `` 标签都被视为灯箱项目,包括:
1. **普通文本链接**(如 `链接文字`)— 点击后不会正常跳转,而是尝试在灯箱中打开,导致加载失败
2. **已有 `` 包裹的图片**(如 `
`)— 灯箱会使用 `href`(页面 URL)而非图片地址作为源,导致显示错误
### 修复方案
1. 为应加入灯箱的 `` 标签添加专属类名 `wi-lightgallery-item`
2. 自动包裹图片时,给新创建的 `` 标签添加此类名
3. 对已有 `` 包裹的 `
`,也给其父 `` 添加此类名,并设置 `data-src` 属性指向图片原图(确保灯箱使用图片地址而非链接地址)
4. 将 lightGallery 初始化的 `selector` 从 `'a'` 改为 `'.wi-lightgallery-item'`
## 实施步骤
### 步骤 1:修复 LightGallery.astro 的选择器和包裹逻辑
修改 `src/components/LightGallery.astro` 中的 `