mcpField
C
canva-presentation-time-fitting

canva-presentation-time-fitting

github.com/canva-sdks文档处理13839 次安装5 天前更新
代码仓库

关于 canva-presentation-time-fitting

用于按目标演讲时长调整现有 Canva 演示文稿的工作流技能,只编辑演讲者备注。它读取幻灯片文字并分配每页时长,不更改可见内容。

主要功能

  1. 01编辑前复制演示文稿
  2. 02读取各页可见文字
  3. 03分配演讲时长和字数预算
  4. 04仅创建或修改演讲者备注
  5. 05通过 Canva 工具写回备注

适用场景

  1. 01为演示文稿设定目标演讲时长
  2. 02平衡各页的讲解时间
  3. 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 来解决。

在会话中应采取的措施:

  1. 短暂等待(例如 15–30 秒)后,重试一次 Canva:start-editing-transaction。临时故障通常会在第二次尝试时恢复。
  2. 在流程中更早开启事务(参见第 7 步的要点),避免在聊天中花很长时间生成备注,导致“准备好编辑”与“开启事务”之间间隔过久。
  3. 如果仍然失败,请明确告知用户这是 Canva/MCP 超时,而不是技能中的逻辑错误。建议他们稍后重试、按照组织政策使用稳定的网络/VPN,或在较小的副本(页面较少)上测试,以确认流程可正常运行。
  4. 备用方案:将生成的演讲者备注按幻灯片分组粘贴到聊天中(第 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