Skip to content

tinymindkin/vibewriting

Repository files navigation

VibeWriting

VibeWriting 是一款 Electron + React 写作工具,聚焦于从 PDF 高亮中收集素材并借助大模型完成日系风格的写作工作流。

功能亮点

  • Electron 主进程提供选择多份 PDF、解析高亮、调用大模型等核心能力,并输出结构化日志,方便复盘和问题定位。
  • PDF 解析器可精准恢复高亮文本、批注内容并按照段落位置分组,可作为写作素材直接送入编辑器。
  • Preload 层通过 contextBridge 暴露最小化 window.api 调用面,前端在无 Node.js 权限的前提下完成所有操作。
  • 前端使用 React + Vite,提供日系风格的写作界面、交互式差异对比视图和写作代理集成。

效果预览

效果图

快速开始

  1. 复制 .env.example 并根据自身的 OpenAI / OpenAPI 配置填写 API_KEYBASE_URLMODEL_NAME 等字段:
    cp .env.example .env
  2. 安装依赖并启动开发调试:
    npm install
    npm run dev
    npm run dev 会同时启动 Vite 和 Electron,自动打开调试窗口,便于前后端联调。

如需仅运行 Electron 加载打包后的前端,可先执行 npm run build:renderer,随后通过 npm start 启动。

构建与发布

命令 说明
npm run build:renderer 仅打包前端到 dist/,供 Electron 生产模式加载。
npm run build 构建前端并调用 electron-builder 生成安装包。
npm run pack 生成解压式目录,便于快速验证产物。
npm run build:mac|win|linux 为指定平台打包(需相应平台环境)。

生成的桌面端产物及配置位于 build/,如需自定义图标、签名或渠道包,请在此目录中调整。

项目结构

├── src/
│   ├── main/       # Electron 主进程(窗口、IPC、PDF 解析、AI 调用)
│   ├── preload/    # 通过 contextBridge 暴露的安全 API
│   └── renderer/   # React + Vite 前端界面与日系风格组件
├── tests/          # PDF 解析脚本与样例文件
├── public/         # 静态资源(含效果图)
└── build/          # electron-builder 配置与打包资源

运行时配置

.env 支持下列字段:

  • API_KEY:访问模型服务所需密钥。
  • BASE_URL:自定义 OpenAI 兼容服务地址,默认官方。
  • MODEL_NAME:调用模型的名称,例如 gpt-4ogpt-5 等。
  • LOG_PATH:可选,控制日志输出目录(默认 logs/)。

应用会在运行时自动创建日志目录,并将 PDF 解析与 AI 对话的入参、耗时、返回结果以 JSON 保存,便于排查与审计。

PDF 高亮解析与测试

  • 主流程:通过“选择 PDF”按钮调用 window.api.openPDFs,主进程会递归遍历目录中的 PDF 并返回路径集合;随后调用 window.api.extractHighlights 提取结构化高亮数据。
  • 命令行验证:
    node tests/testAtonation.js
    该脚本会读取 tests/files/ 下示例 PDF,并打印分组后的高亮、批注及摘要信息,便于调试提取效果。

常见问题

  • 效果图无法显示? 请确认仓库包含 public/效果图.png,或在 README 中替换为你自己的截图。
  • 对话接口报错? 检查 .env 中的 API_KEYBASE_URLMODEL_NAME 是否配置正确,必要时查看 logs/ 下的 JSON 日志获取详细错误信息。

欢迎提交 Issue 或 PR,帮助完善写作体验与 PDF 高亮解析能力。

About

vieb wrinting anyting you want

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published