{"owner":"wechat-article","repo":"wechat-article-exporter","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\n本文件为 Claude Code (claude.ai/code) 在本仓库中工作时提供指导。\n\n## 项目概述\n\n微信公众号文章批量下载导出工具。基于 Nuxt 3（关闭 SSR，纯客户端 SPA）+ Vue 3 Composition API + Nitro 服务端引擎构建。支持导出 HTML/JSON/Excel/TXT/Markdown/DOCX 格式，其中 HTML 格式可 100% 还原文章排版与样式。\n\n## 常用命令\n\n```bash\n# 安装依赖（要求 Node >= 22，yarn 1.22.22 通过 corepack 管理）\ncorepack enable && corepack prepare yarn@1.22.22 --activate\nyarn\n\n# 开发\nyarn dev          # 启动开发服务器\n\n# 构建与部署\nyarn build        # 生产构建（输出到 .output/）\nyarn preview      # 构建 Cloudflare Pages 版本并本地预览\n\n# 代码格式化（Biome 为主要格式化工具，linter 已禁用）\nyarn format       # biome check --write\n\n# Docker\nyarn docker:build\nyarn docker:publish\n```\n\n## 架构\n\n### 客户端-服务端分离\n\n- **客户端（SPA）：** `app.vue` → `pages/dashboard.vue` 为唯一路由页面，所有 UI 均在客户端运行（SSR 已关闭）。\n- **服务端（Nitro）：** `server/api/` 包含约 25 个接口端点，负责代理转发微信公众平台的 API 请求，处理 CORS 和 Cookie 转发。核心代理逻辑在 `server/utils/proxy-request.ts`。\n\n### 核心数据流\n\n1. 用户通过微信公众平台后台扫码登录认证\n2. `apis/index.ts` 定义客户端 API 函数，调用 Nitro 代理端点\n3. 文章数据获取后经过过滤，通过 Dexie 缓存到 IndexedDB（`store/v2/db.ts`）\n4. 下载调度：`utils/download/Downloader.ts` 使用 `p-queue` 管理并发下载\n5. 导出：`utils/download/Exporter.ts` 将文章转换为目标格式（Cheerio 处理 HTML、Turndown 转 Markdown、ExcelJS 生成表格、JSZip 打包）\n\n### 关键目录\n\n- `apis/` — 客户端 API 函数定义（getArticleList、getAccountList 等）\n- `composables/` — Vue 3 组合式函数：`useDownloader.ts`（下载调度）、`useExporter.ts`（导出逻辑）、`useBatchDownload.ts`（批量下载管理）\n- `store/v2/` — 基于 Dexie 的 IndexedDB 缓存（文章、评论、元数据、资源、HTML 内容）\n- `utils/download/` — 核心下载/导出类：`Downloader.ts`、`Exporter.ts`、`BaseDownloader.ts`、`ProxyManager.ts`\n- `server/api/web/mp/` — 代理微信公众平台请求的 Nitro 端点\n- `server/utils/` — 服务端工具：代理请求处理、Cookie 管理、日志\n- `shared/utils/` — 客户端与服务端共享代码（HTML 解析、请求工具函数）\n- `config/` — 应用常量、公共 API 端点定义、AG Grid 配置\n- `types/` — TypeScript 类型定义（AppMsgEx、AccountInfo、credentials、comments 等）\n\n### UI 技术栈\n\nNuxt UI v2 + TailwindCSS 提供组件和样式。AG Grid Enterprise 用于文章数据表格。Monaco Editor 用于代码/调试视图。\n\n## 代码规范\n\n- Biome 格式化（非 lint）：行宽 120 字符、2 空格缩进、单引号、ES5 尾逗号、带分号\n- CSS 使用 4 空格缩进\n- Vue 文件：script/style 标签内不额外缩进\n- 命名：函数/变量使用 camelCase，组件使用 PascalCase\n\n## 环境变量\n\n复制 `.env.example` 为 `.env`，关键变量：\n- `NUXT_AGGRID_LICENSE` — AG Grid 企业版授权密钥\n- `NITRO_KV_DRIVER` — 存储驱动（本地/Docker 用 `fs`，Cloudflare 用 `cloudflare-kv-binding`）\n- `NITRO_KV_BASE` — KV 数据目录（默认：`.data/kv`）\n- `NUXT_DEBUG_MP_REQUEST` — 开启微信代理请求调试（仅开发环境）\n- `DEBUG_KEY` — 调试端点认证密钥\n"},"files":{"CLAUDE.md":"# CLAUDE.md\n\n本文件为 Claude Code (claude.ai/code) 在本仓库中工作时提供指导。\n\n## 项目概述\n\n微信公众号文章批量下载导出工具。基于 Nuxt 3（关闭 SSR，纯客户端 SPA）+ Vue 3 Composition API + Nitro 服务端引擎构建。支持导出 HTML/JSON/Excel/TXT/Markdown/DOCX 格式，其中 HTML 格式可 100% 还原文章排版与样式。\n\n## 常用命令\n\n```bash\n# 安装依赖（要求 Node >= 22，yarn 1.22.22 通过 corepack 管理）\ncorepack enable && corepack prepare yarn@1.22.22 --activate\nyarn\n\n# 开发\nyarn dev          # 启动开发服务器\n\n# 构建与部署\nyarn build        # 生产构建（输出到 .output/）\nyarn preview      # 构建 Cloudflare Pages 版本并本地预览\n\n# 代码格式化（Biome 为主要格式化工具，linter 已禁用）\nyarn format       # biome check --write\n\n# Docker\nyarn docker:build\nyarn docker:publish\n```\n\n## 架构\n\n### 客户端-服务端分离\n\n- **客户端（SPA）：** `app.vue` → `pages/dashboard.vue` 为唯一路由页面，所有 UI 均在客户端运行（SSR 已关闭）。\n- **服务端（Nitro）：** `server/api/` 包含约 25 个接口端点，负责代理转发微信公众平台的 API 请求，处理 CORS 和 Cookie 转发。核心代理逻辑在 `server/utils/proxy-request.ts`。\n\n### 核心数据流\n\n1. 用户通过微信公众平台后台扫码登录认证\n2. `apis/index.ts` 定义客户端 API 函数，调用 Nitro 代理端点\n3. 文章数据获取后经过过滤，通过 Dexie 缓存到 IndexedDB（`store/v2/db.ts`）\n4. 下载调度：`utils/download/Downloader.ts` 使用 `p-queue` 管理并发下载\n5. 导出：`utils/download/Exporter.ts` 将文章转换为目标格式（Cheerio 处理 HTML、Turndown 转 Markdown、ExcelJS 生成表格、JSZip 打包）\n\n### 关键目录\n\n- `apis/` — 客户端 API 函数定义（getArticleList、getAccountList 等）\n- `composables/` — Vue 3 组合式函数：`useDownloader.ts`（下载调度）、`useExporter.ts`（导出逻辑）、`useBatchDownload.ts`（批量下载管理）\n- `store/v2/` — 基于 Dexie 的 IndexedDB 缓存（文章、评论、元数据、资源、HTML 内容）\n- `utils/download/` — 核心下载/导出类：`Downloader.ts`、`Exporter.ts`、`BaseDownloader.ts`、`ProxyManager.ts`\n- `server/api/web/mp/` — 代理微信公众平台请求的 Nitro 端点\n- `server/utils/` — 服务端工具：代理请求处理、Cookie 管理、日志\n- `shared/utils/` — 客户端与服务端共享代码（HTML 解析、请求工具函数）\n- `config/` — 应用常量、公共 API 端点定义、AG Grid 配置\n- `types/` — TypeScript 类型定义（AppMsgEx、AccountInfo、credentials、comments 等）\n\n### UI 技术栈\n\nNuxt UI v2 + TailwindCSS 提供组件和样式。AG Grid Enterprise 用于文章数据表格。Monaco Editor 用于代码/调试视图。\n\n## 代码规范\n\n- Biome 格式化（非 lint）：行宽 120 字符、2 空格缩进、单引号、ES5 尾逗号、带分号\n- CSS 使用 4 空格缩进\n- Vue 文件：script/style 标签内不额外缩进\n- 命名：函数/变量使用 camelCase，组件使用 PascalCase\n\n## 环境变量\n\n复制 `.env.example` 为 `.env`，关键变量：\n- `NUXT_AGGRID_LICENSE` — AG Grid 企业版授权密钥\n- `NITRO_KV_DRIVER` — 存储驱动（本地/Docker 用 `fs`，Cloudflare 用 `cloudflare-kv-binding`）\n- `NITRO_KV_BASE` — KV 数据目录（默认：`.data/kv`）\n- `NUXT_DEBUG_MP_REQUEST` — 开启微信代理请求调试（仅开发环境）\n- `DEBUG_KEY` — 调试端点认证密钥\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\n本文件为 Claude Code (claude.ai/code) 在本仓库中工作时提供指导。\n\n## 项目概述\n\n微信公众号文章批量下载导出工具。基于 Nuxt 3（关闭 SSR，纯客户端 SPA）+ Vue 3 Composition API + Nitro 服务端引擎构建。支持导出 HTML/JSON/Excel/TXT/Markdown/DOCX 格式，其中 HTML 格式可 100% 还原文章排版与样式。\n\n## 常用命令\n\n```bash\n# 安装依赖（要求 Node >= 22，yarn 1.22.22 通过 corepack 管理）\ncorepack enable && corepack prepare yarn@1.22.22 --activate\nyarn\n\n# 开发\nyarn dev          # 启动开发服务器\n\n# 构建与部署\nyarn build        # 生产构建（输出到 .output/）\nyarn preview      # 构建 Cloudflare Pages 版本并本地预览\n\n# 代码格式化（Biome 为主要格式化工具，linter 已禁用）\nyarn format       # biome check --write\n\n# Docker\nyarn docker:build\nyarn docker:publish\n```\n\n## 架构\n\n### 客户端-服务端分离\n\n- **客户端（SPA）：** `app.vue` → `pages/dashboard.vue` 为唯一路由页面，所有 UI 均在客户端运行（SSR 已关闭）。\n- **服务端（Nitro）：** `server/api/` 包含约 25 个接口端点，负责代理转发微信公众平台的 API 请求，处理 CORS 和 Cookie 转发。核心代理逻辑在 `server/utils/proxy-request.ts`。\n\n### 核心数据流\n\n1. 用户通过微信公众平台后台扫码登录认证\n2. `apis/index.ts` 定义客户端 API 函数，调用 Nitro 代理端点\n3. 文章数据获取后经过过滤，通过 Dexie 缓存到 IndexedDB（`store/v2/db.ts`）\n4. 下载调度：`utils/download/Downloader.ts` 使用 `p-queue` 管理并发下载\n5. 导出：`utils/download/Exporter.ts` 将文章转换为目标格式（Cheerio 处理 HTML、Turndown 转 Markdown、ExcelJS 生成表格、JSZip 打包）\n\n### 关键目录\n\n- `apis/` — 客户端 API 函数定义（getArticleList、getAccountList 等）\n- `composables/` — Vue 3 组合式函数：`useDownloader.ts`（下载调度）、`useExporter.ts`（导出逻辑）、`useBatchDownload.ts`（批量下载管理）\n- `store/v2/` — 基于 Dexie 的 IndexedDB 缓存（文章、评论、元数据、资源、HTML 内容）\n- `utils/download/` — 核心下载/导出类：`Downloader.ts`、`Exporter.ts`、`BaseDownloader.ts`、`ProxyManager.ts`\n- `server/api/web/mp/` — 代理微信公众平台请求的 Nitro 端点\n- `server/utils/` — 服务端工具：代理请求处理、Cookie 管理、日志\n- `shared/utils/` — 客户端与服务端共享代码（HTML 解析、请求工具函数）\n- `config/` — 应用常量、公共 API 端点定义、AG Grid 配置\n- `types/` — TypeScript 类型定义（AppMsgEx、AccountInfo、credentials、comments 等）\n\n### UI 技术栈\n\nNuxt UI v2 + TailwindCSS 提供组件和样式。AG Grid Enterprise 用于文章数据表格。Monaco Editor 用于代码/调试视图。\n\n## 代码规范\n\n- Biome 格式化（非 lint）：行宽 120 字符、2 空格缩进、单引号、ES5 尾逗号、带分号\n- CSS 使用 4 空格缩进\n- Vue 文件：script/style 标签内不额外缩进\n- 命名：函数/变量使用 camelCase，组件使用 PascalCase\n\n## 环境变量\n\n复制 `.env.example` 为 `.env`，关键变量：\n- `NUXT_AGGRID_LICENSE` — AG Grid 企业版授权密钥\n- `NITRO_KV_DRIVER` — 存储驱动（本地/Docker 用 `fs`，Cloudflare 用 `cloudflare-kv-binding`）\n- `NITRO_KV_BASE` — KV 数据目录（默认：`.data/kv`）\n- `NUXT_DEBUG_MP_REQUEST` — 开启微信代理请求调试（仅开发环境）\n- `DEBUG_KEY` — 调试端点认证密钥\n","category":"root","tokens":568}]}