# LLMClipboard 一个跨平台的富文本捕获工具,提供现代化的GUI界面,支持一键将任何应用程序中的富文本内容转换为Markdown格式并保存。 ## ✨ 特性 - 🖥️ 现代化图形界面,支持深色/浅色主题 - 📋 智能富文本捕获和格式保持 - ⚡ 快速双击右键保存 - 🔧 可视化配置界面 - 💾 自动保存为Markdown格式 - 🌐 完整的跨平台支持 - 🔄 系统托盘支持,后台运行 - 🎨 自适应系统主题 - 📝 优化的文本格式处理 ## 🎯 功能亮点 ### 智能格式转换 - **HTML 富文本** - 保持原始格式(粗体、斜体、链接等) - 保留图片和表格结构 - 智能处理段落和换行 - 清理多余空白行 - **纯文本处理** - 自动识别文本编码 - 智能处理中文内容 - 保持段落结构 - 优化换行格式 - **Unicode 支持** - 完整的 Unicode 字符支持 - 多语言文本兼容 - 保持特殊字符格式 ### 智能文档处理 - **智能标题生成** - 自动从内容提取关键信息作为标题 - 使用自然语言处理识别主题 - 生成简洁有意义的标题 - **自动标签系统** - 基于内容智能提取关键词 - 自动识别文档主题 - 支持多维度标签分类 - 可自定义标签规则 - **智能分类系统** - 自动对文档进行分类 - 支持多级目录结构 - 预设常用分类模板 - 可自定义分类规则 - **文档元数据** - 自动添加创建时间 - 记录文档分类信息 - 保存标签信息 - YAML front matter 格式 ### 目录结构 保存的文档会自动按以下结构组织: ``` save_location/ ├── 技术/ │ └── 20250115_210000_Python项目最佳实践.md ├── 学习/ │ └── 20250115_210100_机器学习基础概念.md ├── 工作/ │ └── 20250115_210200_项目进度报告.md ├── 想法/ │ └── 20250115_210300_产品改进建议.md └── 资源/ └── 20250115_210400_有用的开发工具集合.md ``` 每个文档都包含以下格式的元数据: ```markdown --- title: 文档标题 date: 2025-01-15 21:00:00 tags: 标签1, 标签2, 标签3 category: 分类名称 --- 文档内容... ``` ### 格式优化 - 自动清理冗余空行 - 保持段落间距一致 - 优化列表和缩进结构 - 保持代码块格式 ## 🚀 快速开始 ### 环境要求 - Python >= 3.10 - Windows/Linux/MacOS ### 安装步骤 1. 克隆仓库: ```bash git clone cd llmclipboard ``` 2. 创建虚拟环境: ```bash uv venv .venv ``` 3. 激活虚拟环境: ```bash # Windows .venv\Scripts\activate # Linux/MacOS source .venv/bin/activate ``` 4. 安装依赖: ```bash # Windows .venv\Scripts\python.exe -m pip install -e . # Linux/MacOS .venv/bin/python -m pip install -e . ``` ## ⚙️ 配置 编辑 `config.ini` 文件: ```ini [Settings] # 双击判定的时间阈值(秒) double_click_threshold = 0.3 # Markdown文件保存路径 save_location = C:\Users\YourName\Documents\Markdown ``` ## 📖 使用指南 ### 启动程序 ```bash # Windows .venv\Scripts\python.exe -m llmclipboard.app # Linux/MacOS .venv/bin/python -m llmclipboard.app ``` ### 基本操作 1. **配置设置** - 启动程序后,在GUI界面设置保存路径 - 根据需要调整双击阈值 - 点击"保存设置"应用更改 2. **开始使用** - 点击"启动监听"按钮 - 选择任意文本内容 - 快速双击鼠标右键保存 - 文件自动保存为Markdown格式 3. **后台运行** - 点击最小化按钮,程序会缩小到系统托盘 - 双击托盘图标可重新打开界面 - 右键托盘图标可访问快捷菜单 4. **退出程序** - 点击"停止监听"停止服务 - 通过托盘菜单退出 - 或按ESC键退出 ## 🔧 技术栈 - **GUI框架**: PyQt6 - **主题**: qt-material - **系统集成**: - pynput: 鼠标事件监听 - keyboard: 键盘事件处理 - pywin32: Windows系统集成 - **格式转换**: html2text - **配置管理**: configparser ## 📁 项目结构 ``` llmclipboard/ ├── llmclipboard/ # 源代码目录 │ ├── __init__.py │ ├── app.py # 主程序和服务逻辑 │ ├── gui.py # GUI界面实现 ├── config.ini # 配置文件 ├── README.md # 项目文档 ├── pyproject.toml # 项目依赖配置 ``` ## 🛠️ 开发指南 ### 安装开发依赖 ```bash uv pip install -e . ``` ### 构建分发包 ```bash uv pip install build python -m build ``` 构建完成后,在 `dist` 目录下可以找到: - `.tar.gz`: 源码分发包 - `.whl`: Python wheel包 ## 🤝 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ## 📄 许可证 MIT License - 查看 [LICENSE](LICENSE) 文件了解更多详情 ## 🙏 致谢 - [PyQt6](https://www.riverbankcomputing.com/software/pyqt/) - GUI框架 - [qt-material](https://github.com/UN-GCPDS/qt-material) - 现代化主题 - [html2text](https://github.com/Alir3z4/html2text) - HTML转Markdown工具 ## 📞 支持与反馈 如果你遇到任何问题或有建议: 1. 提交 [Issue](../../issues) 2. 发送邮件至 [your-email@example.com]