软著帮手 · VS Code 插件
软件著作权申请材料自动生成工具,以 VS Code 扩展形式提供。
本插件由原 Electron 桌面版改造而来。Electron 源码已留档在 _backup-electron/,不再参与构建。
功能
- 文档鉴别材料:AI 分析源代码生成文档大纲与内容,支持手动调整、逐部分编辑、AI 润色,最终导出 Word + PDF
- 程序鉴别材料:自动提取当前项目前 30 页 + 后 30 页代码,生成带页眉页脚的 PDF
无需上传 ZIP:插件直接读取你在 VS Code 中打开的文件夹,自动跳过 node_modules、.git、测试与文档目录。
界面
- 侧边栏「软著帮手」:原生树形视图展示文档章节(一级 ~ 四级),每章显示字数与配图数;点击条目直接跳转到向导中对应部分
- 向导面板(Webview):完整生成流程 —— 填写信息 → 生成目录 → 逐部分编辑 → 润色预览 → 下载
项目结构
├── extension.js # 插件入口(激活、注册命令与视图)
├── package.json # 插件清单(命令、视图容器、配置项)
├── src/
│ ├── webview.js # Webview 面板 + 消息桥接(替代 Electron IPC)
│ ├── chaptersProvider.js # 侧边栏章节树 TreeView
│ ├── pdf.js # PDF 生成:Edge/Chrome headless + pdf-lib 链接后处理
│ ├── api.js # 后端请求(Node 侧执行,绕开 Webview CSP)
│ ├── codeScan.js # 扫描当前工作区源码(替代上传 ZIP)
│ ├── storage.js # 激活信息存储(SecretStorage / globalState)
│ └── logger.js # 日志(VS Code 输出通道)
├── media/
│ └── index.html # 向导界面(Webview 主体)
├── resources/
│ ├── icon.png # 插件图标(128×128)
│ └── sidebar.svg # 侧边栏图标
├── vercel-backend/ # 后端 API(保持不变)
├── keygen/ # 激活码生成器(私密,严禁上传)
├── privacy/ # 隐私政策页面(用于应用商店上架)
└── _backup-electron/ # 原 Electron 桌面版源码留档
快速开始
1. 安装依赖
npm install
2. 调试运行
用 VS Code 打开本目录,按 F5 启动扩展调试宿主。
新窗口中左侧活动栏出现「软著帮手」图标即加载成功。
3. 打包为 .vsix
npx vsce package
产出 soft-copyright-generator-1.0.0.vsix,安装方式:
code --install-extension soft-copyright-generator-1.0.0.vsix
或在 VS Code 扩展面板选择「从 VSIX 安装…」。
4. 发布到 Marketplace(可选)
- 在 Azure DevOps 创建 publisher
- 修改
package.json 里的 publisher 字段为其 ID
npx vsce login <publisher> → npx vsce publish
使用说明
- 点击侧边栏「软著帮手」图标,或执行命令面板中的 软著帮手:打开向导
- 填写软件信息(源码自动取自当前打开的项目文件夹),点击生成目录
- 在向导中逐部分确认 / 编辑内容、上传界面截图
- 点击「润色预览」进行 AI 整体润色
- 下载 Word + PDF
侧边栏章节树会随目录生成实时更新;点击任意章节可跳转到向导对应的编辑部分。
命令
| 命令 |
说明 |
| 软著帮手:打开向导 |
打开主 Webview 面板 |
| 软著帮手:刷新章节 |
刷新侧边栏章节树 |
| 软著帮手:编辑此章节 |
侧边栏点击章节时触发 |
| 软著帮手:查看运行日志 |
打开输出通道 |
配置项
在 VS Code 设置中搜索「软著帮手」:
| 配置项 |
默认值 |
说明 |
ruanzhu.backendUrl |
https://lingchuangshe.com |
后端 API 地址(扩展会自动拼接 /api,此处不要带 /api) |
ruanzhu.browserPath |
(空) |
PDF 生成使用的 Edge/Chrome 可执行文件路径;留空则自动探测系统已安装的浏览器 |
PDF 生成说明(重要)
VS Code 没有 Electron 的 webContents.printToPDF() 接口。本插件改为调用系统已安装的 Edge/Chrome 无头模式打印:
- 仍是 Chromium 内核渲染同一份 HTML,排版效果与桌面版完全一致
- Windows 10/11 自带 Edge,通常无需任何配置
- 若自动探测失败,在设置中指定
ruanzhu.browserPath 即可
- 打印完成后用 pdf-lib 注入目录跳转链接(逻辑与原桌面版一致)
后端部署
cd vercel-backend
vercel --prod
在 Vercel 控制台设置环境变量 DEEPSEEK_API_KEY。
激活码流程
- 卖家使用
keygen/generate.js --count 10 生成激活码
- 用户购买后获得激活码
- 用户在向导中输入激活码
- 插件通过后端 API 验证,通过后即可使用 AI 生成功能
激活信息(含服务端令牌)保存在 VS Code 的 SecretStorage 中,不再落明文到磁盘文件。
从 Electron 桌面版迁移的改动对照
| 原 Electron 能力 |
插件中的替代方案 |
BrowserWindow |
WebviewPanel |
webContents.printToPDF() |
系统 Edge/Chrome headless + pdf-lib |
ipcMain / contextBridge |
postMessage 消息桥接 |
%APPDATA% 下读写 activation.json |
SecretStorage / globalState |
dialog.showOpenDialog |
vscode.window.showOpenDialog |
浏览器下载(downloadBlob + <a download>) |
showSaveDialog + workspace.fs.writeFile |
| CDN 加载 jszip / docx |
打包进插件,用 asWebviewUri() 本地加载 |
写 debug.log 文件 |
VS Code 输出通道「软著帮手」 |
Webview 中的 CSP 策略为 default-src 'none',因此:
- 所有后端请求经消息桥接由 Node 侧代理执行
- jszip / docx 必须从插件本地加载,不能使用 CDN