App-Store-Connect-CLI 订阅组版本(Subscription Group Versions)4.4.1 支持实战:命令布局、OpenAPI 契约与源码级实现解析
【免费下载链接】App-Store-Connect-CLIFast, scriptable CLI for the App Store Connect API. Automate TestFlight, builds, submissions, signing, analytics, screenshots, subscriptions, and more项目地址https://gitcode.com/gh_mirrors/ap/App-Store-Connect-CLI点击查看免费下载本篇文章以 app-store-connect-api-4.4.1-subscription-group-versions.md 为核心系统讲解 App-Store-Connect-CLI 对 App Store Connect API 4.4.1 新增的订阅组版本Subscription Group Version与 v2 版订阅组本地化资源的完整支持从命令树布局、十个新增 OpenAPI 操作到可空字段的更新语义、集合选项校验、退出码行为与测试验证计划。读完你将能直接使用asc subscriptions groups versions ...完成订阅组版本的创建、查询、本地化维护与关系链接读取并理解其与已废弃 v1 命令路径的兼容边界。命令布局在既有subscriptions groups分类下扩展订阅组版本并没有另起一个新的顶级命令而是作为既有asc subscriptions groups分类的一个子分支存在完整命令树如下来自设计文档的 Placement and command shape 一节asc subscriptions groups versions create --group-id GROUP_ID asc subscriptions groups versions list --group-id GROUP_ID asc subscriptions groups versions view --version-id VERSION_ID asc subscriptions groups versions localizations list --version-id VERSION_ID asc subscriptions groups versions localizations create --version-id VERSION_ID --locale en-US --name Premium asc subscriptions groups versions localizations view --id LOCALIZATION_ID asc subscriptions groups versions localizations update --id LOCALIZATION_ID --name Premium Plus asc subscriptions groups versions localizations delete --id LOCALIZATION_ID --confirm asc subscriptions groups versions links versions --group-id GROUP_ID asc subscriptions groups versions links localizations --version-id VERSION_IDversions create/list/view管理订阅组的评审版本review version版本拥有version整数序号与state评审状态两个属性对应源码中的SubscriptionGroupVersionAttributesinternal/asc/subscription_group_versions.go。versions localizations ...管理「版本作用域」下的 v2 本地化资源name、customAppName、locale不再暴露 v1 模式才有的state字段。versions links ...直接读取原始关系链接linkage分别面向组→版本、版本→本地化两种关系。与 v1 兼容路径的关系一个被废弃、一个被保留设计文档明确指出最初的增量切片保留了asc subscriptions groups localizations ...这一套 v1 组作用域命令树但该树现已废弃应改用asc subscriptions groups versions localizations ...使用组版本 ID。迁移说明见 migrate-to-5-0.mdxasc subscriptions groups localizations subcommand ...对应迁移到asc subscriptions groups versions localizations ...sync子命令则改为逐语言地用版本作用域命令做 list/create/update/delete 对账。关键的兼容原则是过渡期内兼容命令的 flags、payload、输出与退出码全部保留不做移除或重定向。也就是说迁移期间旧脚本不会因命令消失而直接崩溃只是官方不再推荐使用。另外既有分组list/view命令新增了取回版本所需的选择器控制--include、--fields、--version-fields、--versions-limit且未传入这些参数时既有调用的请求形态完全不变保证向后兼容。OpenAPI 契约4.4.1 新增的十个操作实现覆盖的范围精确对应 4.4.1 新增的十个端点设计文档给出了完整对照表MethodPathRequest / responsePOST/v1/subscriptionGroupVersionsSubscriptionGroupVersionCreateRequest/SubscriptionGroupVersionResponseGET/v1/subscriptionGroupVersions/{id}SubscriptionGroupVersionResponseGET/v1/subscriptionGroups/{id}/versionsSubscriptionGroupVersionsResponseGET/v1/subscriptionGroups/{id}/relationships/versionsSubscriptionGroupVersionsLinkagesResponseGET/v1/subscriptionGroupVersions/{id}/localizationsSubscriptionGroupLocalizationsV2ResponseGET/v1/subscriptionGroupVersions/{id}/relationships/localizationsSubscriptionGroupVersionLocalizationsLinkagesResponsePOST/v2/subscriptionGroupLocalizationsSubscriptionGroupLocalizationV2CreateRequest/SubscriptionGroupLocalizationV2ResponseGET/v2/subscriptionGroupLocalizations/{id}SubscriptionGroupLocalizationV2ResponsePATCH/v2/subscriptionGroupLocalizations/{id}SubscriptionGroupLocalizationV2UpdateRequest/SubscriptionGroupLocalizationV2ResponseDELETE/v2/subscriptionGroupLocalizations/{id}no response body创建与更新请求的最小载荷语义创建版本只需要一个subscriptionGroup关系即--group-id。源码中CreateSubscriptionGroupVersion构造的请求体仅包含type: subscriptionGroupVersions与relationships.subscriptionGroupinternal/asc/client_subscription_group_versions.go。创建 v2 本地化要求name、locale以及一个资源类型为subscriptionGroupVersions的version关系customAppName可选且可为 null。CLI 侧通过--name、--locale、--custom-app-name提供internal/cli/subscriptions/group_version_localizations.go。更新 v2 本地化接受可空nullable的name与customAppName。显式的--clear-name与--clear-custom-app-name标志映射为 JSONnull未传入的标志则从 payload 中整体省略不会发送无意义的空值字段。可空语义在类型层由NullableString实现SubscriptionGroupLocalizationV2UpdateAttributes中Name与CustomAppName均为*NullableStringinternal/asc/subscription_group_versions.go。在命令层update 子命令会区分「设置标志已传入」与「清除标志已传入」两种状态并禁止二者同时出现见下文退出码一节。查询能力矩阵版本列表groups versions list支持filter[state]、稀疏字段sparse fields、includes、limit、limit[localizations]、links.next以及 CLI 端的聚合参数--paginate自动翻页拉取全部页。源码中的查询构造见 internal/asc/client_subscription_group_versions.go。版本本地化列表groups versions localizations list支持其端点专属字段、includeversion、limit、links.next与--paginate。关系命令links versions/links localizations返回原始资源链接raw linkages支持端点limit、links.next与--paginate。版本状态合法值来自命令源码状态过滤器--state的合法取值由命令层白名单约束internal/cli/subscriptions/group_versions.go共九个且命令解析时统一转大写后校验PREPARE_FOR_SUBMISSION, READY_FOR_REVIEW, WAITING_FOR_REVIEW, IN_REVIEW, ACCEPTED, APPROVED, REPLACED_WITH_NEW_VERSION, REJECTED, DEVELOPER_REJECTED非法值会在发起任何网络请求前报错--state must be one of: ...。数值范围的硬校验--limit必须落在 1–200 之间--localizations-limit必须落在 1–50 之间localizations-limit同时出现在版本 list 与 view 命令上用于限制 include 进来的本地化数量越界即报 usage errorinternal/cli/subscriptions/group_versions.go。--next的互斥规则分页续传参数--next有严格的互斥约束它不能与所属者 ID 标志--group-id/--version-id同时出现也不能与任何查询标志--state、--include、--fields、--group-fields、--localization-fields、--limit、--localizations-limit等组合。这些规则均有命令级测试覆盖internal/cli/cmdtest/subscription_group_versions_test.go。稀疏字段与 include 白名单版本端点--include仅允许subscriptionGroup,localizations--fields仅允许version,state,subscriptionGroup,localizations--group-fields允许referenceName,subscriptions,subscriptionGroupLocalizations,versions--localization-fields允许name,customAppName,locale,versioninternal/cli/subscriptions/group_versions.go。版本本地化端点--include仅允许version--fields为本地化字段--version-fields复用版本字段白名单internal/cli/subscriptions/group_version_localizations.go。选择器值都经过NormalizeSelection校验非法值在请求发出前即被拒绝。分组 list/detail 的扩展与集合选项的拒绝规则修改后的分组list与详情操作支持新的includeversions、fields[subscriptionGroupVersions]、versions分组稀疏字段以及limit[versions]取值但这一改动不会改变任一操作默认生成的查询。同时设计文档明确了三条「集合选项只属于列表端点」的规则分组详情操作在发出 HTTP 请求之前就拒绝集合专用的顶层limit与links.next选项版本详情客户端GetSubscriptionGroupVersion对集合专用的limit、分页与版本状态过滤器filter[state]应用同样的拒绝规则——源码中在构造请求路径之前就返回limit is only supported when listing subscription group versions等错误internal/asc/client_subscription_group_versions.gov2 本地化详情客户端GetSubscriptionGroupLocalizationV2同样拒绝limit与next URL同文件 L304-L318。这保证了「详情查询」与「列表查询」的边界清晰用户在view命令上传入分页参数会立刻得到明确的 usage 错误而不是被静默忽略。共享SubscriptionGroupSchema 的五种解码形态由于SubscriptionGroup是共享 schema类型化的versions关系在以下五种响应形态中都被保留结构化解码测试逐一覆盖直接返回的分组group detail / list分组 create 响应分组 update 响应v1 分组本地化响应中的 include 数据app 响应中的 include 数据。这意味着无论版本是通过旧的分组 create/update 调用带回、还是由 v1 本地化或 app 响应 include 进来CLI 的表格渲染都能正确展示其versions关系不会因 schema 复用而丢失字段。v2 本地化的state字段被有意排除设计文档特别强调v2 本地化的稀疏字段白名单有意排除state——4.4.1 只在遗留的 v1 本地化 schema 上定义该属性。因此 v2 的响应类型与表格渲染器与 v1 完全分离SubscriptionGroupLocalizationV2Attributes只含Name、CustomAppName、Localeinternal/asc/subscription_group_versions.go避免在表格中渲染一列永远为空的误导性 state 列。行为与失败语义stdout、stderr 与退出码设计文档对成功与失败路径做了严格约定与项目整体的错误处理哲学一致可进一步参考 concepts/error-handling.mdx所有成功命令将选定的 JSON、表格或 Markdown 数据写入stdout校验与 API 诊断信息写入stderr命令特有的非法选择、冲突的 set/clear 标志、以及没有实际变更的更新请求都是usage error状态码 2且在认证与网络访问之前就失败缺少必需标志同样在认证与网络访问之前失败——这一点有测试专门验证校验类用例断言「client factory 不会被调用」internal/cli/cmdtest/subscription_group_versions_test.go既有命令路径保留既定的退出码行为不因本次增量而改变。冲突与空更新校验update 子命令update 命令明确拒绝以下场景internal/cli/subscriptions/group_version_localizations.go--name与--clear-name同时出现--name cannot be used with --clear-name--custom-app-name与--clear-custom-app-name同时出现--custom-app-name cannot be used with --clear-custom-app-name四个更新标志一个都没传at least one update flag is required。关系命令只暴露真实的所属者 ID每个关系命令只暴露其真实所属者的 ID 标志links versions只接受--group-idlinks localizations只接受--version-id。这样与所属者无关的 ID 标志会在解析阶段直接失败而不会被静默忽略——避免用户传错 ID 类型却不自知。删除必须显式确认delete子命令强制要求--confirm缺失时报--confirm is required且从不进行交互式提示适合脚本化调用。删除成功后命令输出一个AssetDeleteResult{ID, Deleted: true}结果对象internal/cli/subscriptions/group_version_localizations.go。底层基础设施保证每一次出站的 App Store Connect 调用都使用shared.ContextWithTimeout包装上下文防止脚本在异常网络下无限挂起CLI 层统一调用例如 internal/cli/subscriptions/group_versions.go分页续传时对links.nextURL 执行共享的 ASC URL 策略校验validateNextURL见 internal/asc/client_subscription_group_versions.go--next传入的 URL 也会在 CLI 层先经ValidateNextURL检查杜绝把任意 URL 交给客户端。测试与验证计划设计文档给出了六步验证策略已在仓库测试中落地RED 命令测试覆盖命令注册、必需标志、非法取值、可空更新标志、确认机制以及 v1 命令路径的保留——对应 internal/cli/cmdtest/subscription_group_versions_test.go其中包含 30 条校验用例全部断言「校验失败发生在认证客户端创建之前」REDhttptest覆盖十个方法与路径的完整请求/响应、精确的 create 与 update 请求体、端点专属查询参数、分页以及 API 错误最小实现实现最小的类型化 resource、query、client、output 与 command 层让测试转绿文档与真实二进制检查重新生成命令文档然后对构建出的/tmp/asc二进制做聚焦的包级测试与真实场景检查包括 stdout、stderr 与退出码只读优先偏好对一次性 app 资源做只读的真实调用未经明确批准不得对线上资源做 create/update/delete 验证提交前门禁依次运行make format、make check-docs、make lint、ASC_BYPASS_KEYCHAIN1 make test。这套流程与项目文档生成体系scripts/generate-command-docs.py衔接新增命令后需要重新生成命令文档并通过make check-docs校验文档与命令注册的一致性。设计取舍为什么嵌套而不是复用或新建设计文档记录了三个被考虑过的替代方案及否决理由在已废弃的asc subscriptions groups localizations树里加一个版本标志会让同一命令静默地在 v1 与 v2 之间二选一并使必需关系的校验复杂化。专用的versions localizations子树让 API 代际与所属关系都变得显式。新建顶层subscription-group-versions命令虽然能镜像原始 API 资源但会把紧密相关的分组工作流拆散到不同的顶层分类中。嵌套在既有groups命令下发现性与兼容性都更清晰。评审提交review submission的 item 装配有意不包含在本改动内——它是一个与 IAP、订阅版本共享的跨切面请求契约由独立的评审集成改动负责。这也是migrate-to-5-0.mdx中asc review items add --item-type subscriptionGroupVersions ...属于独立演进路径的原因。源码落点速查层次位置类型定义版本属性、v2 本地化属性、create/update 请求结构、响应类型internal/asc/subscription_group_versions.go客户端方法十个端点对应的 10 个方法 查询构造 集合选项拒绝internal/asc/client_subscription_group_versions.go版本命令组create/list/view/links、状态白名单、参数校验internal/cli/subscriptions/group_versions.go版本本地化命令组v2 list/create/view/update/delete、可空清除标志internal/cli/subscriptions/group_version_localizations.go命令级校验与 httptest 覆盖internal/cli/cmdtest/subscription_group_versions_test.gov1→v2 命令迁移对照migrate-to-5-0.mdx从 docs/API_NOTES.md 与 app-store-connect-api-4.4.1-coverage.md 中还可以看到本次改动在整体 4.4.1 API 覆盖与发布说明中的位置。若要为订阅组版本接入评审提交流程请留意后续独立的 review integration 改动而不是在本命令树上自行扩展。赞分享【免费下载链接】App-Store-Connect-CLIFast, scriptable CLI for the App Store Connect API. Automate TestFlight, builds, submissions, signing, analytics, screenshots, subscriptions, and more项目地址https://gitcode.com/gh_mirrors/ap/App-Store-Connect-CLI点击查看免费下载相关推荐App Store Connect CLI 订阅版本Subscription VersionsAPI 4.4.1 支持实战指南App Store Connect CLI 订阅版本Subscription VersionsAPI 4.4.1 支持实战指南 本文基于 App StoreApp-Store-Connect-CLI 本地构建发布 macOS PKG设计契约与源码实现解析App Store Connect CLI 本地构建发布 macOS PKG设计契约与源码实现解析 本篇文章围绕 docs/design/publish loApp Store Connect API 4.4.1 订阅稀疏字段ASC CLI 的 17 端点能力扩展与实现剖析App Store Connect API 4.4.1 订阅稀疏字段ASC CLI 的 17 端点能力扩展与实现剖析 本文以 App Store Connec上一篇git-bug bridge rm 命令详解删除已配置的桥接器Bridge下一篇PyMC 数据接口完全指南Data、get_data 与 Minibatch 的底层原理与实战用法创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Claude Opus 5.5 API接入指南:三条路径与高频排障

Claude Opus 5.5 API接入指南:三条路径与高频排障

先聊一个可能大家都有的感受:模型能力再强,接不进去就是白搭。Claude Opus 5.5 发布之后,社区里讨论最多的其实不是它又变强了多少,而是怎么把它稳当地接进自己的项目。这篇 claude-opus-5.5 API 接入指南,核心就解决三…

2026/9/30 15:55:14 阅读更多 →
轨道紧固件缺陷检测数据集VOC+YOLO格式611张6类别

轨道紧固件缺陷检测数据集VOC+YOLO格式611张6类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):611标注数量(xml文件个数):611标注数量(txt文件个数):611标注类别数&…

2026/9/30 12:52:03 阅读更多 →
Word发给别人排版乱了?3步定位原因

Word发给别人排版乱了?3步定位原因

上周交小组的课程报告,我在自己电脑上排了两个晚上,封面、页眉、三级编号全对齐了,压缩包发给组长让他合进总稿。半小时后他甩了三张截图过来:封面的英文副标题挤成了两行,原本在第三页的那张表跑到第四页去了&#xf…

2026/9/30 23:45:31 阅读更多 →

最新新闻

从零构建可交付AI系统:契约驱动的工程化实践

从零构建可交付AI系统:契约驱动的工程化实践

1. 这不是“搭积木”,而是亲手锻造AI系统的底层骨架“AI Engineering from Scratch”——看到这个标题,很多人第一反应是:又要学Python、调PyTorch、跑个ResNet?不。这六个单词背后压根不是“复现论文”或“微调模型”的轻量级动作…

2026/10/1 19:40:17 阅读更多 →
Wine兼容层演进简史:从Madeira实验分支谈起

Wine兼容层演进简史:从Madeira实验分支谈起

我理解您的要求,但需要说明:当前输入中仅提供了项目标题“Madeira”及相关热搜词、网络热词列表, 未提供任何实质性的项目正文、摘要描述或可解析的业务上下文 。根据您设定的核心任务原则——“仅通过项目标题,挖掘标题背后的核…

2026/10/1 19:40:17 阅读更多 →
Redis如何赋能AI应用:向量检索、缓存加速与任务协调实战

Redis如何赋能AI应用:向量检索、缓存加速与任务协调实战

1. 先搞清楚一件事:Redis 到底是怎么“接入 AI”的1.1 我理解的“Redis 接入 AI”,指的是三件事最近“Redis 正式接入 AI”这个说法传得挺火,作为一个从 Redis 3.0 时代就开始用的老东西,我第一反应是:这标题确实容易让…

2026/10/1 19:40:17 阅读更多 →
云渲染平台怎么选?Blender/C4D实操与RTX 5090节点实测

云渲染平台怎么选?Blender/C4D实操与RTX 5090节点实测

搞Blender、C4D这一行的,迟早会撞上同一个问题:本地机器跑不动了。不是显卡不行,而是项目不等人。几百帧的动画、4K分辨率、大场景置换、复杂灯光材质,随便叠一两个buff,本地GPU就得烧到满负荷,就连吃饭睡觉…

2026/10/1 19:40:17 阅读更多 →
MATLAB纯编程实现燃料电池混合动力ECMS能量管理策略

MATLAB纯编程实现燃料电池混合动力ECMS能量管理策略

混合动力系统的能量管理策略,这两年做的人不少,但真正把“等效氢气消耗最小化”这件事从原理讲到代码落地的资料并不多。这个方向正好卡在车辆工程和控制算法的交叉点上:既要求你懂燃料电池和动力电池的脾气,又要求你能把优化问题…

2026/10/1 19:40:17 阅读更多 →
大模型参数调优实战:temperature、top_p、max_tokens 核心参数详解

大模型参数调优实战:temperature、top_p、max_tokens 核心参数详解

1. 参数体系到底在调什么:从一次“输出跑偏”说起很多人第一次接触参数调优,都是被逼的。我印象特别深,早些年帮一个做智能客服的朋友排查问题,他们的机器人回答用户问题时,要么答非所问,要么一句话翻来覆去…

2026/10/1 19:39:16 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →