# PPT Master Dependencies / PPT Master 依赖
# =============================================
#
# Most tools use only the Python standard library. Below are optional dependencies.
# 大部分工具仅使用 Python 标准库，以下为可选依赖。
#
# Install / 安装方式：
#   pip install -r requirements.txt

# ─────────────────────────────────────────────────────────────
# SVG to PPTX tool / SVG 转 PPTX 工具 (skills/ppt-master/scripts/svg_to_pptx.py)
# ─────────────────────────────────────────────────────────────
# Batch-convert SVG files to PowerPoint presentations.
# 用于将 SVG 文件批量转换为 PowerPoint 演示文稿
# Uses Office-compatible mode (PNG + SVG dual format) by default, supports all Office versions.
# 默认使用 Office 兼容模式（PNG + SVG 双格式），支持所有 Office 版本
python-pptx>=0.6.21

# Recorded narration / 录制计时和旁白
# notes_to_audio.py generates per-slide narration audio on macOS/Linux/Windows.
# notes_to_audio.py 用于在 macOS/Linux/Windows 上生成逐页旁白音频。
edge-tts>=7.2.8

# Office compatibility dependencies (choose one, CairoSVG preferred)
# Office 兼容模式依赖（二选一，优先使用 cairosvg）
# Converts SVG to PNG fallback images for Office LTSC 2021 etc.
# 用于将 SVG 转换为 PNG 后备图片，确保 Office LTSC 2021 等版本正常显示
#
# Option A / 方案 A: CairoSVG (recommended / 推荐, ~25MB, full gradient/filter support)
#   pip install cairosvg
#   macOS: brew install cairo
#
# Option B / 方案 B: svglib (lightweight / 轻量, ~5MB, some gradients may be lost)
svglib>=1.5.0
reportlab>=4.0.0

# ─────────────────────────────────────────────────────────────
# PDF to Markdown tool / PDF 转 Markdown 工具 (skills/ppt-master/scripts/source_to_md/pdf_to_md.py)
# ─────────────────────────────────────────────────────────────
# Converts PDF to Markdown with text, image, and table extraction.
# 用于将 PDF 文件转换为 Markdown 格式，支持文本、图片、表格提取
PyMuPDF>=1.23.0

# ─────────────────────────────────────────────────────────────
# Document to Markdown tool / 文档转 Markdown 工具 (skills/ppt-master/scripts/source_to_md/doc_to_md.py)
# ─────────────────────────────────────────────────────────────
# Native (pure-Python) paths — no external binary required:
# 原生路径（纯 Python，无需外部程序）：
#   .docx   → mammoth
#   .html   → markdownify (+ beautifulsoup4, listed below)
#   .epub   → ebooklib (+ markdownify)
#   .ipynb  → nbconvert
mammoth>=1.6.0
markdownify>=0.11.6
ebooklib>=0.18
nbconvert>=7.0.0

# ─────────────────────────────────────────────────────────────
# Excel to Markdown tool / Excel 转 Markdown 工具 (skills/ppt-master/scripts/source_to_md/excel_to_md.py)
# ─────────────────────────────────────────────────────────────
# Converts .xlsx/.xlsm workbooks to Markdown while preserving sheet structure.
# 用于将 .xlsx/.xlsm 工作簿转换为 Markdown，并保留工作表结构。
openpyxl>=3.1.0
#
# Fallback path — only needed for less common formats
# (.doc .odt .rtf .tex/.latex .rst .org .typ).
# Not required if you only convert the four native formats above.
# 备用路径 —— 仅在需要处理以下小众格式时才用到
# (.doc .odt .rtf .tex/.latex .rst .org .typ)。
# 如果只处理上述四种原生格式，无需安装。
#   macOS:   brew install pandoc
#   Ubuntu:  sudo apt install pandoc
#   Windows: https://pandoc.org/installing.html

# ─────────────────────────────────────────────────────────────
# Image processing tools / 图片处理工具
# ─────────────────────────────────────────────────────────────
# fix_image_aspect.py - Fix image aspect ratio (prevent stretching during PPT shape conversion)
# fix_image_aspect.py - 修复图片宽高比（防止 PPT 转形状时拉伸）
# gemini_watermark_remover.py - Remove watermarks from Gemini-generated images
# gemini_watermark_remover.py - 去除 Gemini 生成图片的水印
Pillow>=9.0.0
numpy>=1.20.0

# ─────────────────────────────────────────────────────────────
# Web to Markdown tool / 网页转 Markdown 工具 (skills/ppt-master/scripts/source_to_md/web_to_md.py)
# ─────────────────────────────────────────────────────────────
requests>=2.31.0
beautifulsoup4>=4.12.0
# Optional — TLS fingerprint impersonation for sites that block Python's
# default TLS fingerprint (e.g., WeChat mp.weixin.qq.com). If installed,
# web_to_md.py uses it automatically; otherwise falls back to requests.
# Install this to avoid needing Node.js for WeChat / portal pages.
# 可选 —— 用于绕过 TLS 指纹屏蔽（例如微信公众号等）。装了之后 web_to_md.py
# 会自动启用；不装则回退到 requests。装了它就不必再装 Node.js。
curl_cffi>=0.7.0

# ─────────────────────────────────────────────────────────────
# AI image generation tool / AI 图片生成工具 (skills/ppt-master/scripts/image_gen.py)
# ─────────────────────────────────────────────────────────────
# Gemini backend / Gemini 后端 (IMAGE_BACKEND=gemini)
google-genai>=1.0.0
# OpenAI-compatible backend / OpenAI 兼容后端 (IMAGE_BACKEND=openai)
openai>=1.0.0

# ─────────────────────────────────────────────────────────────
# SVG Editor / SVG 编辑器 (skills/ppt-master/scripts/svg_editor/server.py)
# ─────────────────────────────────────────────────────────────
# Localhost web editor for annotating SVG elements with edit instructions.
# 本地 Web 编辑器，用于在 SVG 元素上添加编辑标注指令
flask>=3.0.0
