feat: 新增 .doc 格式支持,借助 LibreOffice soffice

- 提取 LibreOffice 解析逻辑为公共工具函数 _utils.parse_via_libreoffice()
- 新增 DocReader 独立 Reader,支持 .doc 格式
- 新增 is_valid_doc() 文件验证函数(复用 OLE2 检测)
- 新增 doc 格式依赖配置(独立配置)
- 新增完整的测试套件,使用静态测试文件
- 更新 README.md 和 SKILL.md,添加 .doc 格式支持说明
- 新增 openspec/specs/doc-reader/spec.md 规范文档

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 10:40:43 +08:00
parent 0dd7aa221c
commit e0c6ed1638
14 changed files with 274 additions and 65 deletions

View File

@@ -2,6 +2,7 @@
from .base import BaseReader
from .docx import DocxReader
from .doc import DocReader
from .xlsx import XlsxReader
from .pptx import PptxReader
from .pdf import PdfReader
@@ -10,6 +11,7 @@ from .xls import XlsReader
READERS = [
DocxReader,
DocReader,
XlsxReader,
PptxReader,
PdfReader,
@@ -20,6 +22,7 @@ READERS = [
__all__ = [
"BaseReader",
"DocxReader",
"DocReader",
"XlsxReader",
"PptxReader",
"PdfReader",