- 新增 PPT (旧格式) 解析器 - 重构 _utils.py,提取通用 convert_via_libreoffice 函数 - 更新依赖配置,添加 PPT 相关依赖 - 完善文档,更新 README 和 SKILL.md - 添加 PPT 文件检测函数 - 新增 PPT 解析器测试用例
100 lines
3.4 KiB
Markdown
100 lines
3.4 KiB
Markdown
---
|
||
name: lyxy-document-reader
|
||
description: 统一文档解析工具 - 将 DOC、DOCX、XLS、XLSX、PPT、PPTX、PDF、HTML/URL 转换为 Markdown。支持全文输出、字数统计、行数统计、标题提取、章节提取、正则搜索。当用户要求"读取/解析/打开文档"、上传 .doc/.docx/.xls/.xlsx/.ppt/.pptx/.pdf/.html 文件、或提供 URL 时使用。
|
||
license: MIT
|
||
compatibility: Requires Python 3.11+。优先使用 lyxy-runner-python skill,次选 uv run --with,降级到主机 Python。
|
||
---
|
||
|
||
# 统一文档解析 Skill
|
||
|
||
## 🔴 重要:执行路径优先级(必须遵守)
|
||
|
||
### 执行路径选择(按优先级顺序)
|
||
1. **lyxy-runner-python skill(首选)** - 自动管理依赖
|
||
2. **python scripts/lyxy_document_reader.py** - 自启动,自动检测依赖
|
||
3. **uv run --with** - 手动指定依赖
|
||
4. **主机 Python + pip install** - 手动安装依赖
|
||
|
||
### 推荐用法
|
||
```bash
|
||
# 直接运行(自动检测依赖并执行)
|
||
python scripts/lyxy_document_reader.py <文件路径或URL>
|
||
```
|
||
|
||
脚本会自动检测文件类型、当前平台,并用正确的 uv 命令执行。
|
||
|
||
## Purpose
|
||
|
||
**支持格式**
|
||
- DOC(Word 旧格式)
|
||
- DOCX(Word 文档)
|
||
- XLS(Excel 旧格式)
|
||
- XLSX(Excel 表格)
|
||
- PPT(PowerPoint 旧格式)
|
||
- PPTX(PowerPoint 演示文稿)
|
||
- PDF(PDF 文档,支持 OCR)
|
||
- HTML / URL(网页内容)
|
||
|
||
## When to Use
|
||
|
||
### 触发场景
|
||
- 文档转换:将各类文档转为 Markdown
|
||
- 文档元数据:字数、行数统计
|
||
- 标题分析:提取标题结构
|
||
- 章节提取:提取特定章节
|
||
- 内容搜索:关键词或正则搜索
|
||
|
||
### 触发词
|
||
- 中文:"读取/解析/打开 文档/Word/Excel/PPT/PDF/网页"
|
||
- 英文:"read/parse/extract document/doc/docx/xls/xlsx/ppt/pptx/pdf/html"
|
||
- 文件扩展名:`.doc`、`.docx`、`.xls`、`.xlsx`、`.ppt`、`.pptx`、`.pdf`、`.html`、`.htm`
|
||
- URL:`http://`、`https://`
|
||
|
||
## Quick Reference
|
||
|
||
| 参数 | 说明 |
|
||
|------|------|
|
||
| (无) | 输出完整 Markdown |
|
||
| `-c/--count` | 字数统计 |
|
||
| `-l/--lines` | 行数统计 |
|
||
| `-t/--titles` | 提取所有标题(1-6级) |
|
||
| `-tc <name>` | 提取指定标题的章节内容 |
|
||
| `-s <pattern>` | 正则表达式搜索 |
|
||
| `-n <num>/--context <num>` | 与 `-s` 配合,指定上下文行数(默认 2) |
|
||
|
||
## 参数使用示例
|
||
|
||
```bash
|
||
# 读取全文(自动检测依赖)
|
||
python scripts/lyxy_document_reader.py document.docx
|
||
|
||
# 统计字数
|
||
python scripts/lyxy_document_reader.py document.docx -c
|
||
|
||
# 提取标题
|
||
python scripts/lyxy_document_reader.py document.docx -t
|
||
|
||
# 提取指定章节
|
||
python scripts/lyxy_document_reader.py document.docx -tc "第三章"
|
||
|
||
# 搜索内容
|
||
python scripts/lyxy_document_reader.py document.docx -s "关键词"
|
||
|
||
# 正则搜索
|
||
python scripts/lyxy_document_reader.py document.docx -s "\d{4}-\d{2}-\d{2}"
|
||
|
||
# 指定搜索上下文行数
|
||
python scripts/lyxy_document_reader.py document.docx -s "关键词" -n 5
|
||
```
|
||
|
||
## 错误处理
|
||
|
||
| 错误 | 原因 | 解决 |
|
||
|------|------|------|
|
||
| 错误: input_path 不能为空 | 未提供输入 | 提供 file_path 或 URL |
|
||
| 错误: 不支持的文件类型 | 无对应 reader | 检查文件扩展名 |
|
||
| 所有解析方法均失败 | 所有解析器失败 | 检查文件是否损坏 |
|
||
| 错误: 无效的正则表达式 | 正则语法错误 | 检查正则语法 |
|
||
| 错误: 未找到匹配 | 搜索无结果 | 检查搜索词或正则 |
|
||
| ModuleNotFoundError | 缺少依赖 | 脚本会自动检测并安装依赖 |
|