|
|
2b81dd49fe
|
refactor: 统一 HTML Reader 的 parse 签名,使用文件路径参数
将所有 HTML Parser 的函数签名从接收 HTML 字符串改为接收文件路径,
与其他 Reader(PDF、DOCX 等)保持一致。
主要变更:
- 修改 PARSERS 列表,移除 lambda 表达式,直接传递函数引用
- 在 HtmlReader.parse() 中统一管理临时文件(UTF-8 编码)
- 每个 Parser 使用独立的临时文件副本,用完即清理
- 移除 download_and_parse() 方法,逻辑合并到 parse() 中
- 更新相关测试,改为直接传递文件路径
受影响的 Parser:
- trafilatura.parse(html_content) -> parse(file_path)
- domscribe.parse(html_content) -> parse(file_path)
- markitdown.parse(html_content, temp_file_path) -> parse(file_path)
- html2text.parse(html_content) -> parse(file_path)
|
2026-03-09 00:05:23 +08:00 |
|
|
|
7eab1dcef1
|
test: 添加全面的测试套件,覆盖所有 Reader 实现
- 测试数量从 83 个增加到 193 个 (+132%)
- 代码覆盖率从 48% 提升到 69% (+44%)
- 为每种文档格式的所有 Reader 实现创建独立测试
- 添加跨 Reader 的一致性验证测试
- 新增 4 个测试规范 (cli-testing, exception-testing, reader-testing, test-fixtures)
- 更新 README 测试统计信息
测试覆盖:
- DOCX: python-docx, markitdown, docling, native-xml, pypandoc, unstructured
- PDF: pypdf, markitdown, docling, docling-ocr, unstructured, unstructured-ocr
- HTML: html2text, markitdown, trafilatura, domscribe
- PPTX: python-pptx, markitdown, docling, native-xml, unstructured
- XLSX: pandas, markitdown, docling, native-xml, unstructured
- CLI: 所有命令行选项和错误处理
所有 193 个测试通过。
|
2026-03-08 22:20:21 +08:00 |
|
|
|
c35bbc90b5
|
docs: 优化 skill 文档并添加更新原则
优化 skill/SKILL.md 遵循 Claude Skill 构建指南:
- 重写 YAML frontmatter,添加触发词和 compatibility 字段
- 新增 Purpose、When to Use、Quick Reference、Workflow 章节
- 说明双路径执行策略(lyxy-runner-python 优先,回退主机 Python)
- 修正依赖说明,使用具体 pip 包名
在 README.md 中添加 Skill 文档规范章节,明确更新原则
新增 openspec/specs/skill-documentation/ 规范文件
|
2026-03-08 18:43:07 +08:00 |
|
|
|
b98e70383c
|
docs: 分离用户文档与开发文档
- 将 README.md 重构为开发文档,包含开发环境、工作流、代码规范
- 新建 skill/SKILL.md 作为用户文档,包含快速开始和命令选项
- 更新 openspec/config.yaml 添加项目概述和 skill 目录声明
|
2026-03-08 18:08:44 +08:00 |
|
|
|
15b63800a8
|
refactor: 将核心代码迁移到 scripts 目录
- 创建 scripts/ 目录作为核心代码根目录
- 移动 core/, readers/, utils/ 到 scripts/ 下
- 移动 config.py, lyxy_document_reader.py 到 scripts/
- 移动 encoding_detection.py 到 scripts/utils/
- 更新 pyproject.toml 中的入口点路径和 pytest 配置
- 更新所有内部导入语句为 scripts.* 模块
- 更新 README.md 目录结构说明
- 更新 openspec/config.yaml 添加目录结构说明
- 删除无用的 main.py
此变更使项目结构更清晰,便于区分核心代码与测试、文档等支撑文件。
|
2026-03-08 17:41:03 +08:00 |
|
|
|
750ef50a8d
|
refactor: 重构解析器架构并添加编码检测和配置管理
简化 parse_input() 为纯调度器,通过遍历 readers 的 supports() 方法识别输入类型,移除 URL 特殊处理和文件检查逻辑。各 reader 的 parse() 方法负责完整验证(文件存在、格式有效性)。
新增功能:
- 添加 chardet 编码自动检测,支持多种中文编码回退机制
- 创建统一配置类管理编码、下载超时、日志等级等配置项
- HTML reader 支持本地文件编码检测和 URL 统一处理
安全性改进:
- 修复 safe_open_zip() 路径遍历漏洞,使用 pathlib 规范化路径
- 添加边界检查,search_markdown() 检查负数参数
其他改进:
- 修复类型注解(argparse.Namespace)
- 日志系统仅输出 ERROR 级别,避免干扰 Markdown 输出
- 更新 BaseReader 接口文档,明确 supports() 和 parse() 职责划分
- 同步 delta specs 到主 specs(document-reading、html-reader、configuration、encoding-detection)
|
2026-03-08 16:33:40 +08:00 |
|
|
|
eb044d37d9
|
chore: 将 openspec/changes/archive 移出 git 跟踪
- 在 .gitignore 中添加 openspec/changes/archive
- 从 git 缓存中移除已跟踪的 archive 目录内容
|
2026-03-08 14:16:49 +08:00 |
|
|
|
6c003d73f3
|
docs: 同步 delta specs 到主 specs
从归档的 unify-document-readers change 同步 delta specs 到主 specs 目录。
新增 specs:
- document-reading - 统一文档读取核心能力
- docx-reader - DOCX 文档解析能力
- xlsx-reader - XLSX 文档解析能力
- pptx-reader - PPTX 文档解析能力
- pdf-reader - PDF 文档解析能力(含 OCR)
- html-reader - HTML/URL 文档解析能力
|
2026-03-08 13:52:30 +08:00 |
|
|
|
833018d451
|
feat: 统一文档解析器项目 - 迁移 lyxy-reader-office 和 lyxy-reader-html
## 功能特性
- 建立统一的项目结构,包含 core/、readers/、utils/、tests/ 模块
- 迁移 lyxy-reader-office 的所有解析器(docx、xlsx、pptx、pdf)
- 迁移 lyxy-reader-html 的所有解析器(html、url 下载)
- 统一 CLI 入口为 lyxy_document_reader.py
- 统一 Markdown 后处理逻辑
- 按文件类型组织 readers,每个解析器独立文件
- 依赖分组按文件类型细分(docx、xlsx、pptx、pdf、html、http)
- PDF OCR 解析器优先,无参数控制
- 使用 logging 模块替代简单 print
- 设计完整的单元测试结构
- 重写项目文档
## 新增目录/文件
- core/ - 核心模块(异常体系、Markdown 工具、解析调度器)
- readers/ - 格式阅读器(base.py + docx/xlsx/pptx/pdf/html)
- utils/ - 工具函数(文件类型检测)
- tests/ - 测试(conftest.py + test_core/ + test_readers/ + test_utils/)
- lyxy_document_reader.py - 统一 CLI 入口
## 依赖分组
- docx - DOCX 文档解析支持
- xlsx - XLSX 文档解析支持
- pptx - PPTX 文档解析支持
- pdf - PDF 文档解析支持(含 OCR)
- html - HTML/URL 解析支持
- http - HTTP/URL 下载支持
- office - Office 格式组合(docx/xlsx/pptx/pdf)
- web - Web 格式组合(html/http)
- full - 完整功能
- dev - 开发依赖
|
2026-03-08 13:46:37 +08:00 |
|
|
|
eb8973495e
|
docs: 添加 git 提交信息格式规范
|
2026-03-08 11:51:06 +08:00 |
|
|
|
aa14ddc942
|
chore: 初始化 lyxy-document 项目
- 项目配置(pyproject.toml, uv.lock)
- 初始入口文件 main.py
- OpenSpec 配置和工作流
- Claude Code 技能和命令配置
- 项目文档(README.md, CLAUDE.md, AGENTS.md)
|
2026-03-08 11:50:34 +08:00 |
|