gogcli `gog slides unskip-slide` 命令详解:让被跳过的幻灯片重新出现在 Google Slides 演示中
gogcligog slides unskip-slide命令详解让被跳过的幻灯片重新出现在 Google Slides 演示中【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli本篇指南围绕 gogcli 的gog slides unskip-slide别名unhide-slide命令展开讲解如何在终端中把演示文稿里被标记为跳过skip的幻灯片重新恢复为正常显示状态。读完本文你将掌握该命令的完整语法、参数规则、底层实现原理Google Slides API 的UpdateSlideProperties请求以及结合list-slides、skip-slide、dry-run 与 JSON 输出在脚本与 Agent 自动化场景中的实战用法。命令定位幻灯片可见性控制的一环gog slides unskip-slide属于 gogcli 幻灯片Slides子命令族其功能描述为 Include a skipped slide during presentation在演示时包含被跳过的幻灯片与gog slides skip-slideSkip a slide during presentation互为反向操作。两者共同构成 Google Slides 演示模式的跳过/恢复控制能力适用于准备多版本演讲内容、按观众灵活裁剪演示路径等场景。从 internal/cmd/slides.go 的源码结构看这两个命令被注册为同级子命令SkipSlide SlidesSkipSlideCmd cmd: name:skip-slide aliases:hide-slide help:Skip a slide during presentation UnskipSlide SlidesUnskipSlideCmd cmd: name:unskip-slide aliases:unhide-slide help:Include a skipped slide during presentation可见unskip-slide的官方别名是unhide-slide对应skip-slide的别名hide-slide两条命令在命令树中处于同一层级父命令为gog slides使用方式参见 gog-slides。用法与完整参数基本用法gog slides (slide) unskip-slide (unhide-slide) presentationId slideId该命令接收两个位置参数参数说明presentationIdGoogle Slides 演示文稿的 ID可在 Google Slides URL 中获取slideId幻灯片对象 IDobject ID。可先运行gog slides list-slides查看所有幻灯片的 object ID 及其当前 skipped 状态完整 Flags 表与 gogcli 其他命令一致unskip-slide共享全局命令行参数父命令gog slides同款完整参数如下Flag类型默认值说明--access-tokenstring直接使用提供的访问令牌绕过已存储的 refresh token令牌约 1 小时后过期-a--account--acctstring认证的 Google API 命令使用的账户邮箱、别名或auto--clientstringOAuth 客户端名称选择已存储的凭据与 token 桶--colorstringauto颜色输出auto|always|never--disable-commandsstring逗号分隔的禁用命令列表支持点路径-n--dry-run--dryrun--noop--previewbool不实际修改仅打印预期动作并以成功退出--enable-commandsstring逗号分隔的启用命令前缀列表支持点路径限制 CLI--enable-commands-exactstring逗号分隔的精确启用命令列表支持点路径父命令不会连带启用子命令-y--force--assume-yes--yesbool跳过破坏性命令的确认提示--gmail-no-sendboolfalse阻止 Gmail 发送操作Agent 安全-h--helpkong.helpFlag显示上下文相关的帮助信息--homestring覆盖 gogcli 配置/数据/状态/缓存根目录等价于GOG_HOME-j--json--machineboolfalse向 stdout 输出 JSON最适合脚本--no-input--non-interactive--noninteractivebool绝不提示失败即退出适用于 CI-p--plain--tsvboolfalse向 stdout 输出稳定可解析的文本TSV无颜色--quota-projectstring用于 API 计费的 Google Cloud 项目作为X-Goog-User-Project发送某些 API 在使用--access-token或 ADC 时需要--readonlyboolfalse在运行时阻止修改型 API 请求auth add时也会请求只读 OAuth 范围--results-onlyboolJSON 模式下只输出主要结果丢弃如nextPageToken等信封字段--select--pick--projectstringJSON 模式下按逗号分隔选择字段尽力而为支持点路径。多数命令建议使用--fields-v--verbosebool启用详细日志--versionkong.VersionFlag打印版本并退出--wrap-untrustedboolfalseJSON/raw 输出时将获取的文本字段包裹在外部不受信任内容标记中实战示例第一步找到被跳过的幻灯片unskip-slide需要准确的slideId最可靠的方式是用gog slides list-slides列出演示文稿中每一页的 object ID 与 skipped 状态。该命令的文本输出包含#序号、OBJECT ID与SKIPPED布尔值三列参见 internal/cmd/slides_list_slides.gogog slides list-slides presentationIdPresentation: My Deck (5 slides) # OBJECT ID SKIPPED 1 p false 2 p2 true 3 p3 false 4 p4 true 5 p5 false在 JSON 模式下每条记录会携带number、objectId、isSkipped字段见 slides_list_slides.go非常适合程序化筛选gog slides list-slides presentationId --json第二步恢复被跳过的幻灯片gog slides unskip-slide presentationId p2使用别名同样有效gog slides unhide-slide presentationId p2命令成功后输出以下键值信息来源见下文实现细节slideObjectId p2 presentationId presentationId isSkipped false执行后重新运行gog slides list-slides即可验证p2的 SKIPPED 状态已变为false该页将重新在演示模式中出现。与 skip-slide 配合使用两条命令参数完全相同仅功能相反可组合用于动态调整演示路径# 隐藏第 2 页 gog slides skip-slide presentationId p2 # 重新显示第 2 页 gog slides unskip-slide presentationId p2底层实现一个UpdateSlideProperties请求unskip-slide与skip-slide共享同一个底层函数runSlidesSetSkipped区别仅在于传入的isSkipped布尔值unskip-slide传falseskip-slide传true实现位于 internal/cmd/slides_visibility.go。func (c *SlidesSkipSlideCmd) Run(ctx context.Context, flags *RootFlags) error { return runSlidesSetSkipped(ctx, flags, c.PresentationID, c.SlideID, true, slides.skip-slide) } func (c *SlidesUnskipSlideCmd) Run(ctx context.Context, flags *RootFlags) error { return runSlidesSetSkipped(ctx, flags, c.PresentationID, c.SlideID, false, slides.unskip-slide) }runSlidesSetSkipped的执行流程为参数校验对presentationId与slideId做strings.TrimSpace后检查是否为空空值返回 usage 错误退出码 2。该行为由 slides_visibility_test.go 中的TestSlidesVisibilityValidation用例验证dry-run 拦截若启用--dry-run等标志直接输出预期的操作内容op、presentation_id、slide_object_id、is_skipped与完整batch_update请求体并以退出码 0 结束绝不创建 Slides 服务、不发起真实请求dryrun.go认证与调用通过requireAccount(flags)确定账户创建 Slides 服务执行Presentations.BatchUpdate输出结果以slideObjectId、presentationId、isSkipped键值形式写回结果。请求体由slidesVisibilityBatchUpdate构造slides_visibility.go核心是一个 Google Slides API 的UpdateSlideProperties请求func slidesVisibilityBatchUpdate(slideID string, isSkipped bool) *slides.BatchUpdatePresentationRequest { properties : slides.SlideProperties{IsSkipped: isSkipped} if !isSkipped { properties.ForceSendFields []string{IsSkipped} } return slides.BatchUpdatePresentationRequest{ Requests: []*slides.Request{ { UpdateSlideProperties: slides.UpdateSlidePropertiesRequest{ ObjectId: slideID, SlideProperties: properties, Fields: isSkipped, }, }, }, } }这里有一个值得注意的细节Go 的google.golang.org/api/slides/v1客户端默认会忽略零值字段。当isSkipped为false即unskip-slide场景时若不显式设置ForceSendFields [IsSkipped]isSkipped: false就不会被序列化进请求体恢复操作会静默失效。源码通过ForceSendFields强制发送该字段确保 API 明确收到false。测试TestSlidesUnskipSlideSendsFalseslides_visibility_test.go专门断言了序列化后的请求体必须包含slideProperties:{isSkipped:false}这正是恢复操作与跳过操作在实现层面的关键差异。脚本与 Agent 自动化场景unskip-slide支持 gogcli 统一的结构化输出能力非常适合无人值守脚本与 LLM/Agent 工具调用JSON 模式gog slides unskip-slide presentationId p2 --json输出示例{slideObjectId:p2,presentationId:presentationId,isSkipped:false}结合list-slides --json与jq即可实现恢复所有被跳过的幻灯片的批量操作gog slides list-slides presentationId --json \ | jq -r .slides[] | select(.isSkipped true) | .objectId \ | while read -r sid; do gog slides unskip-slide presentationId $sid --json done预演确认dry-run在不影响真实文档的前提下核对命令行为gog slides unskip-slide presentationId p2 --dry-run --json输出中dry_run: true、op: slides.unskip-slide、request.is_skipped: false并包含完整batch_update请求体。对应测试 TestSlidesUnskipSlideDryRunSkipsService 还验证了 dry-run 模式下不会创建 Slides 服务确保零副作用。CI 安全与限制控制--no-input--non-interactive在 CI 中禁用交互提示遇到需要确认的情况直接失败--readonly该标志会在运行时拦截所有修改型 API 请求unskip-slide属于修改操作在只读模式下会被阻止可用于对只读 Agent 的硬性保护--account/--acct多账户环境下通过邮箱或别名指定操作账户。使用前提与限制该命令依赖已完成的 gogcli 认证OAuth 凭据或--access-token。使用--access-token时令牌约 1 小时过期需在过期前完成批量操作--readonly模式下会阻止本命令的修改请求unskip-slide只改变幻灯片的isSkipped属性不移动幻灯片位置、不改变内容如需调整顺序请使用gog slides move-slide被删除的幻灯片无法恢复若误删请参考gog slides下的复制/重建能力重建内容本命令仅针对跳过状态文档由gog schema --json生成make docs-commands若命令行行为与本文不符请以当前版本gog slides unskip-slide --help的实际输出为准。参考链接本命令文档gog-slides-unskip-slide父命令文档gog slides反向操作gog slides skip-slide查看跳过状态gog slides list-slides命令索引README【免费下载链接】gogcliGoogle Workspace in your terminal.项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考