- Optimize clipboard content capture order (Unicode > HTML > Text) - Add proper HTML content extraction - Improve title extraction with markdown and topic sentence support - Add automatic copy operation before content capture - Fix content encoding issues |
||
|---|---|---|
| .. | ||
| docs | ||
| llmclipboard | ||
| .python-version | ||
| config.ini | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
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
每个文档都包含以下格式的元数据:
---
title: 文档标题
date: 2025-01-15 21:00:00
tags: 标签1, 标签2, 标签3
category: 分类名称
---
文档内容...
格式优化
- 自动清理冗余空行
- 保持段落间距一致
- 优化列表和缩进结构
- 保持代码块格式
🚀 快速开始
环境要求
- Python >= 3.10
- Windows/Linux/MacOS
安装步骤
- 克隆仓库:
git clone <repository-url>
cd llmclipboard
- 创建虚拟环境:
uv venv .venv
- 激活虚拟环境:
# Windows
.venv\Scripts\activate
# Linux/MacOS
source .venv/bin/activate
- 安装依赖:
# Windows
.venv\Scripts\python.exe -m pip install -e .
# Linux/MacOS
.venv/bin/python -m pip install -e .
⚙️ 配置
编辑 config.ini 文件:
[Settings]
# 双击判定的时间阈值(秒)
double_click_threshold = 0.3
# Markdown文件保存路径
save_location = C:\Users\YourName\Documents\Markdown
📖 使用指南
启动程序
# Windows
.venv\Scripts\python.exe -m llmclipboard.app
# Linux/MacOS
.venv/bin/python -m llmclipboard.app
基本操作
-
配置设置
- 启动程序后,在GUI界面设置保存路径
- 根据需要调整双击阈值
- 点击"保存设置"应用更改
-
开始使用
- 点击"启动监听"按钮
- 选择任意文本内容
- 快速双击鼠标右键保存
- 文件自动保存为Markdown格式
-
后台运行
- 点击最小化按钮,程序会缩小到系统托盘
- 双击托盘图标可重新打开界面
- 右键托盘图标可访问快捷菜单
-
退出程序
- 点击"停止监听"停止服务
- 通过托盘菜单退出
- 或按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 # 项目依赖配置
🛠️ 开发指南
安装开发依赖
uv pip install -e .
构建分发包
uv pip install build
python -m build
构建完成后,在 dist 目录下可以找到:
.tar.gz: 源码分发包.whl: Python wheel包
🤝 贡献指南
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
📄 许可证
MIT License - 查看 LICENSE 文件了解更多详情
🙏 致谢
- PyQt6 - GUI框架
- qt-material - 现代化主题
- html2text - HTML转Markdown工具
📞 支持与反馈
如果你遇到任何问题或有建议:
- 提交 Issue
- 发送邮件至 [your-email@example.com]