富文档导出 · Rich Export

SkillFiles & storage

Stably exports user-facing content as single-file HTML, an HTML folder with assets, Markdown, DOCX, and PDF, correctly handling images, audio, video, and embedded interactive content per format. Use for requests like "rich media export", "one-click export", "export html/pdf/docx/md", "offline web pa

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 富文档导出 · Rich Export skill

What this skill tells your AI

The instructions your AI receives, as published by lovstudio/skills in skills/rich-export/SKILL.md and read by ahel’s review.

把内容先收敛为一个可审计的源,再针对每个交付格式生成其能忠实表达的版本。HTML 保留交互媒体;DOCX、PDF 和 Markdown 生成可编辑或可打印的静态投影,并为媒体保留封面、说明和原链接。

Triggers

  • 用户要求把一份内容或产品数据一键导出为 HTML、Markdown、DOCX、PDF、ZIP 或离线交付包。
  • 用户要求导出含图片、音频、视频、iframe、交互图表或媒体说明的内容,并需要针对不同格式正确处理。
  • 用户需要给 Web、桌面端或服务端产品接入可复用的多格式导出能力。

Do not activate when

  • 只需要编辑一个已有 DOCX、PDF 或网页中的局部内容,且不涉及多格式交付。
  • 只需要生成单张图片、单个幻灯片或一个视频文件;使用对应的媒体制作工作流。

先做内容边界

  1. 将聊天中的人名、项目背景、内部状态、提示词、创作过程视为内部上下文;只有用户要求出现在成品中的字段才进入输入内容。
  2. 生成标题、作者、封面、页脚和文件名时,只读取显式 document 元数据;不要从聊天背景推断或补入个人信息。
  3. 有视频、音频、地图、嵌入网页或交互图表时,先声明其静态投影。没有封面时,PDF/DOCX 至少保留名称、摘要和可访问链接。

输入与命令

默认输入为 .md;也支持 .html 和本 Skill 定义的 rich-export.json。输入中的相对资源相对输入文件解析。

python3 "$SKILL_DIR/scripts/export_rich.py" \
  --input ./release/article.md \
  --out ./release/exports \
  --formats html-single,html-dir,md,docx,pdf \
  --zip

先通过 --formats 只生成用户所需格式。html-single 适合直接发送和离线打开;html-dir 适合视频大、文件多或需要保留媒体原文件;docx 适合继续编辑;pdf 适合打印和归档;md 是可追溯源稿。

运行 python3 "$SKILL_DIR/scripts/export_rich.py" --help 查看依赖与选项。完整输入契约见 references/format-contract.md,产品集成见 references/product-integration.md

渲染策略

目标生成方式媒体行为
单文件 HTMLPandoc --embed-resources内嵌图片、样式、脚本、音视频;大文件会显著膨胀
HTML 文件夹Pandoc + assets/保持交互与独立资源,适合实际分发
MarkdownPandoc 规范化保留图片和链接;媒体使用显式链接
DOCXPandoc + 可选 reference.docx图片嵌入;视频/音频/iframe 投影为封面、说明与链接
PDFChromium/Playwright 打印静态 HTML图片和版式保留;媒体投影为封面、说明与链接

不要把单文件 HTML 当作大型视频的默认交付。媒体总量超过约 20 MB 时默认同时交付 html-dir;若用户必须只收一个文件,交付 ZIP,其中包含 HTML 文件夹和 export-manifest.json

验收

每次导出后执行以下检查:

  1. 打开单文件 HTML 并断网刷新;检查字体、图片、音视频控件、目录和链接。
  2. 解压/打开 HTML 文件夹;检查 index.html 的所有资源均来自包内,且没有绝对本机路径。
  3. 用 Word/LibreOffice 打开 DOCX;检查中文字体、表格、图片、分页及每个媒体链接。
  4. 渲染 PDF 首页、含图片页、含媒体投影页和末页;检查裁切、溢出、乱码、链接和页码。
  5. 检查 export-manifest.jsonwarnings;不得把内部元数据或提示词当作正文导出。

选择与限制

  • 默认采用 Pandoc + Playwright:前者负责结构化格式互转,后者将已经确认的网页版式稳定打印为 PDF。
  • 现有 lov-any2pdflov-any2docx 仍适合中文长文的专门美术排版;本 Skill 负责多格式同源交付和富媒体降级策略。
  • 不将 SingleFile CLI 作为产品内置依赖:其开源仓库为 AGPL,且它更适合网页存档,不是多格式内容发布管线。
  • HTML 与打印/办公格式并非等价。交互图表、iframe 和媒体播放能力只在 HTML 保真;其他格式应把信息和访问路径交付完整,而不是伪装成可播放内容。

Runtime context (shared)

运行前读取本 Skill 包的 skill.yaml,由宿主提供 skill-runtime/v1 上下文。字段解析顺序为:当前请求、项目上下文、个人 Preferences、品牌 Profile、通用默认值。

  • 只使用 Manifest 声明的字段;Profile 保存公开品牌事实,Preferences 保存个人工作偏好。
  • required: true 字段缺失时,按 Manifest 的问题配置向用户提出一个聚焦问题;用户明确同意后再保存回答。
  • 报错提供可复制的 context_id、字段路径与来源,诊断内容避开秘密、完整私人路径和原始配置。

通用反馈闭环

用户在 Skill 驱动任务中提出修改意见时,继续当前产物前必须执行:

  1. 先判断意见是 task-specific(仅本次)还是 reusable(可跨任务复用)。
  2. task-specific 只修改当前任务,不改 Skill。
  3. reusable 先确定作用域:领域规则先更新对应 canonical Skill;适用于所有 Skill 的规则先更新共享规范。
  4. 完成规则更新、版本、lint 与分发核验后,再把修改应用到当前任务。
  5. reusable 修改会使此前的“确认”“继续”“发吧”失效;完成当前产物修改和回读后必须停下,等待用户下一步指示,不自动进入发布、提交或其他外部写入。

Signals

GitHub stars
66
Forks
17
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
lov-rich-export
Source
github.com/lovstudio/skills