- 将 README.md 重构为开发文档,包含开发环境、工作流、代码规范 - 新建 skill/SKILL.md 作为用户文档,包含快速开始和命令选项 - 更新 openspec/config.yaml 添加项目概述和 skill 目录声明
126 lines
2.4 KiB
Markdown
126 lines
2.4 KiB
Markdown
---
|
||
name: lyxy-document-reader
|
||
description: 统一文档解析工具 - DOCX/XLSX/PPTX/PDF/HTML/URL 转 Markdown
|
||
license: MIT
|
||
metadata:
|
||
version: "1.0"
|
||
---
|
||
|
||
# 快速开始
|
||
|
||
```bash
|
||
# 基本解析
|
||
uv run lyxy-document-reader document.docx
|
||
|
||
# URL 解析
|
||
uv run lyxy-document-reader https://example.com
|
||
```
|
||
|
||
# 命令选项
|
||
|
||
## 基本参数
|
||
|
||
- `input_path`:文件路径或 URL(必需)
|
||
|
||
## 互斥操作(选其一)
|
||
|
||
| 选项 | 说明 |
|
||
|------|------|
|
||
| 无 | 输出完整 Markdown |
|
||
| `-c` / `--count` | 统计字数 |
|
||
| `-l` / `--lines` | 统计行数 |
|
||
| `-t` / `--titles` | 提取所有标题(1-6级) |
|
||
| `-tc <name>` | 提取指定标题及其内容 |
|
||
| `-s <pattern>` | 正则搜索 |
|
||
|
||
## 辅助选项
|
||
|
||
| 选项 | 说明 | 配合 |
|
||
|------|------|------|
|
||
| `-n <num>` / `--context <num>` | 搜索结果上下文行数(默认2) | `-s` |
|
||
|
||
# 按文档类型使用
|
||
|
||
## DOCX
|
||
|
||
```bash
|
||
uv run lyxy-document-reader file.docx
|
||
```
|
||
|
||
## PDF
|
||
|
||
```bash
|
||
uv run lyxy-document-reader file.pdf
|
||
```
|
||
|
||
## HTML/URL
|
||
|
||
```bash
|
||
# 本地文件
|
||
uv run lyxy-document-reader page.html
|
||
|
||
# URL
|
||
uv run lyxy-document-reader https://example.com
|
||
```
|
||
|
||
## XLSX
|
||
|
||
```bash
|
||
uv run lyxy-document-reader file.xlsx
|
||
```
|
||
|
||
## PPTX
|
||
|
||
```bash
|
||
uv run lyxy-document-reader file.pptx
|
||
```
|
||
|
||
# 高级用法
|
||
|
||
## 搜索内容
|
||
|
||
```bash
|
||
# 搜索关键词
|
||
uv run lyxy-document-reader file.docx -s "关键词"
|
||
|
||
# 指定上下文行数
|
||
uv run lyxy-document-reader file.docx -s "关键词" -n 5
|
||
|
||
# 正则表达式
|
||
uv run lyxy-document-reader file.docx -s "\d{4}-\d{2}-\d{2}"
|
||
```
|
||
|
||
## 提取标题
|
||
|
||
```bash
|
||
# 列出所有标题
|
||
uv run lyxy-document-reader file.docx -t
|
||
|
||
# 提取指定标题内容
|
||
uv run lyxy-document-reader file.docx -tc "第三章"
|
||
```
|
||
|
||
# Python API
|
||
|
||
```python
|
||
from scripts.core import parse_input, process_content
|
||
from scripts.readers import READERS
|
||
|
||
readers = [ReaderCls() for ReaderCls in READERS]
|
||
content, failures = parse_input("document.docx", readers)
|
||
|
||
if content:
|
||
content = process_content(content)
|
||
print(content)
|
||
```
|
||
|
||
# 错误处理
|
||
|
||
| 错误信息 | 原因 | 解决 |
|
||
|---------|------|------|
|
||
| 错误: input_path 不能为空 | 未提供输入 | 提供 file_path 或 URL |
|
||
| 错误: 不支持的文件类型 | 无对应 reader | 检查文件扩展名 |
|
||
| 所有解析方法均失败 | 所有解析器失败 | 检查文件是否损坏 |
|
||
| 错误: 无效的正则表达式 | 正则语法错误 | 检查正则语法 |
|
||
| 错误: 未找到匹配 | 搜索无结果 | 检查搜索词或正则 |
|