- Add DocumentProcessor class for smart content analysis - Implement automatic title generation - Add automatic tagging system - Add intelligent categorization - Add metadata support with YAML front matter - Update documentation with new features - Add jieba dependency for Chinese text processing
245 lines
5.3 KiB
Markdown
245 lines
5.3 KiB
Markdown
# 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 <repository-url>
|
||
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] |