关于 canva-presentation-time-fitting
用于按目标演讲时长调整现有 Canva 演示文稿的工作流技能,只编辑演讲者备注。它读取幻灯片文字并分配每页时长,不更改可见内容。
主要功能
- 01编辑前复制演示文稿
- 02读取各页可见文字
- 03分配演讲时长和字数预算
- 04仅创建或修改演讲者备注
- 05通过 Canva 工具写回备注
适用场景
- 01为演示文稿设定目标演讲时长
- 02平衡各页的讲解时间
- 03保留幻灯片内容并更新备注
MCP 相关
通过 Canva 编辑工具读取演示文稿内容,并在副本中写入演讲者备注。仅修改备注,不改可见幻灯片内容。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ canva-sdks/ canva-skills --skill canva-presentation-time-fitting安装后在 Claude Code 中输入/canva-presentation-time-fitting确认已加载。
详细介绍
演示文稿时长适配
使用演讲者备注,将现有 Canva 演示文稿调整至目标演讲时长。为提供上下文并估算时长,会读取可见的幻灯片文字,但本技能不得更改这些文字。流程如下:确认设计和总时长(克隆之前),读取幻灯片文字,将时间分配到各张幻灯片,为每张幻灯片添加、替换或精简演讲者备注,使其符合对应时长,最后通过 Canva 编辑工具仅写回备注。
主要工作流(平衡时长的演讲者备注)
第 1 步:收集设计和时长(先于其他 Canva 工具调用)
- 在调用
Canva:resize-design、Canva:get-design-content或其他编辑/内容工具之前,收集所需的全部信息:- 设计:链接(
canva.link)、完整 Canva URL、设计 ID 或设计名称(各自如何对应到design_id,请参见第 2 步) - 演示整个幻灯片组所需的总演讲时长(例如
"15 minutes"、"45 min"、"1 hour")。将其换算为总秒数(或小数形式的分钟数)。如果用户表达含糊,请确认他们希望讲解这些幻灯片的总分钟数(只有用户明确表示要计入问答环节时,才将问答时间计入总时长)
- 设计:链接(
- 如果缺少设计或时长,请先询问并等待回复,再继续操作
第 2 步:解析设计
- 如果用户提供短链接(
canva.link),调用Canva:resolve-shortlink获取设计 URL - 如果用户提供完整 Canva URL,提取设计 ID(
https://www.canva.com/design/{design_id}/...) - 如果用户直接提供设计 ID(通常以
D开头,例如DABcd1234ef),将其用作design_id;原始 ID 不要使用Canva:search-designs搜索 - 如果用户提供设计名称(而非 ID),使用
Canva:search-designs;如果有多个匹配项,请求用户澄清 - 如果仍无法解析设计,请询问设计 ID 或链接
第 3 步:处理副本(必需)
- 使用
Canva:resize-design,将尺寸设为与源设计相同,以克隆演示文稿;不要修改原件
第 4 步:读取幻灯片内容
- 对副本调用
Canva:get-design-content,提取每张幻灯片/页面上的可见文字(标题、项目符号、正文) - 按幻灯片整理摘要:幻灯片索引或标题、文字内容,以及载荷中是否包含现有演讲者备注
- 幻灯片数量 = 此响应中包含内容的页面数量(第 5 步用于分配时间)
第 5 步:计算每张幻灯片的时长
- 每张幻灯片的目标演讲时长 =
total_duration ÷ number_of_slides(平均分配;除非用户要求为标题页/结尾页设置不同权重,否则采用平均分配;如有调整,请说明假设) - 以每分钟约 150 个词为参考,为每张幻灯片推算词数预算:
target_words ≈ (target_minutes_per_slide) × 150(合理取整;仅作参考,不是硬性上限) - 向用户展示一张简短表格,列出:幻灯片数量、总时长、每张幻灯片的秒数(或 mm:ss)、每张幻灯片的大致词数预算
第 6 步:生成演讲者备注(在本次会话中)
- 直接在此响应中生成备注;无需调用外部 API。根据第 4 步中每张幻灯片的文字以及第 5 步的每张幻灯片时长/词数预算,为每张幻灯片撰写演讲者备注(这是唯一可为适配时长而编写或编辑的内容):
- 力求使口头讲述时长大致达到分配的时间
- 对内容较少的幻灯片,在备注中补充上下文、过渡语和讲解提示;预算较少时,精简备注(不要精简幻灯片上的文字)
- 忠实传达幻灯片上的可见信息;不要编造事实
- 如果某张幻灯片以视觉内容为主、文字很少,应撰写备注,说明在分配的时长内如何讲解这些视觉内容
第 7 步:将备注写回 Canva
- 对副本调用
Canva:get-design-pages,获取每张需要添加备注的幻灯片对应的page_id(或等效标识) - 如果副本尚未开启编辑事务,则调用
Canva:start-editing-transaction;编辑时使用返回的transaction_id - 可选的顺序调整:获取副本的设计 ID 后尽早开启编辑事务(例如在第 4 步之后,或紧接着调用
get-design-pages),这样在你花大量时间于聊天中撰写备注之前,会话就已开启;有些环境下,不延迟开启事务不容易超时。如果连接器允许整个流程使用一个长期事务,建议只开启一次,并在第 7 步的编辑中重复使用transaction_id - 调用
Canva:perform-editing-operations时,仅使用 Canva MCP 为演示者备注/演讲者备注提供的操作类型(名称可能因连接器而异;请使用按页面更新备注的架构)。不要调用replace_text、find_and_replace_text或任何会更改幻灯片上可见文本的操作。在允许的范围内,将所有备注更新合并到尽可能少的调用中 - 调用
Canva:commit-editing-transaction保存
第 8 步:交付
- 分享设计副本的链接,并用一句话概述总目标时长和每张幻灯片的时间分配
- 提醒用户,语速(约 150 wpm)因演讲者而异,且平均分配只是默认方案;用户可以在后续消息中要求采用不同的权重
范围:仅限备注
- 范围内:通过
get-design-content读取幻灯片上的文本。仅使用 MCP 提供的按页面备注操作,创建、更新、扩写或缩短演示者备注/演讲者备注。 - 范围外:不要更改幻灯片上可见的内容(
replace_text、find_and_replace_text、格式、媒体、布局、标题等)。如果用户要求精简或扩充幻灯片本身,请说明此技能只会调整备注;他们可以在 Canva 中编辑幻灯片,或使用其他技能/工作流。 - 幻灯片数量:API 无法添加或移除页面。如果相对于幻灯片上的内容,目标时长并不现实(例如,要用两张内容密集的幻灯片讲 60 分钟),请说明这一点,并建议在编辑器中拆分或精简幻灯片,或修改目标时长。你仍可以撰写备注来说明时间紧张(例如“优先讲解 X,略讲 Y”),但不要更改幻灯片文本。
start-editing-transaction 失败或超时时
原因(通常不是技能文本):当设计较大(页面/素材较多)、网络较慢或服务器负载较高时,Canva 或 MCP 网关可能会因 “The operation was aborted due to timeout” 而中止操作。这是基础设施/产品限制,无法通过编辑 SKILL.md 来解决。
在会话中应采取的措施:
- 短暂等待(例如 15–30 秒)后,重试一次
Canva:start-editing-transaction。临时故障通常会在第二次尝试时恢复。 - 在流程中更早开启事务(参见第 7 步的要点),避免在聊天中花很长时间生成备注,导致“准备好编辑”与“开启事务”之间间隔过久。
- 如果仍然失败,请明确告知用户这是 Canva/MCP 超时,而不是技能中的逻辑错误。建议他们稍后重试、按照组织政策使用稳定的网络/VPN,或在较小的副本(页面较少)上测试,以确认流程可正常运行。
- 备用方案:将生成的演讲者备注按幻灯片分组粘贴到聊天中(第 1 张幻灯片:……,第 2 张幻灯片:……),方便用户在自动化持续超时时,手动将备注输入 Canva 的演示者备注中。
规则
- 编辑前始终使用
Canva:resize-design克隆设计(保持相同尺寸) - 使用
Canva:get-design-content读取内容;写入备注前,使用Canva:get-design-pages解析页面 ID - 主要流程:尽早确认时长 → 分配每张幻灯片的时间预算 → 生成备注 → 仅执行备注操作的
perform-editing-operations→ 提交 - 此技能中绝不编辑幻灯片上的文本;仅编辑演讲者备注(参见范围:仅备注)
start-editing-transaction超时:重试一次,然后说明情况并提供手动添加备注的备用方案(参见start-editing-transaction失败或超时)- 尽可能批量执行编辑操作
评论
支持 Markdown