1. 先搞清楚一件事superpowers是给谁用的外挂我对Codex CLI的态度一直很矛盾。一方面它在终端里直接理解项目结构、自动改代码、跑命令效率确实比在网页版里来回粘贴高太多了。另一方面原生的Codex CLI用久了你会很明显地碰到几条隐形天花板它虽然有斜杠命令和脚本机制但默认能力边界很窄一次只能聚焦做一件事跑完测试才能汇报上下文一长就爱忘事。superpowers这个开源项目就是冲着这些天花板去的。它不是一个独立的AI编程工具而是给Codex CLI加装的一整套能力扩展层——你可以理解成给原装系统加了外挂模块。装好之后Codex能同时并行处理多个任务、记住你上次定的开发规范、用一条斜杠命令触发整套测试流程甚至可以根据项目类型自动切换工作模式。什么人需要它如果你只是偶尔用Codex问几个代码问题那真没必要装但如果你已经开始认真用它写业务代码、跑测试、修Bug那这套增强配置用完就回不去。整篇文章会从设计逻辑讲到安装细节再落到Java项目的真实场景内容偏实操跟着做一遍就能跑起来。1.1 Codex原生工作流的天花板在哪先说清楚痛点。Codex CLI原生工作流大致是这样你把需求描述给它它在终端里帮你分析、写代码、执行命令然后给你一个结果。这个过程在单一任务下体验其实不错。但实际开发中很少是单一任务。我最近在做一个订单服务模块的重构前后涉及十几个文件要改接口签名、调整数据库映射、补单元测试、还要保证老接口兼容。用原生Codex我得不断在新的会话里重新描述上下文它处理完一个文件才能继续下一个而且一旦执行到测试失败整个对话就开始偏了。这背后其实是架构层面的限制。原生Codex CLI是单会话单线程的模式一次只处理一个任务任务之间没有隔离也没有状态管理。你想让它并行改两个互不相关的类它会犹豫甚至把两个任务的上下文混在一起。再加上很多人根本不知道怎么写自定义脚本导致能力被限制在默认模式里。superpowers就是在这个背景下出现的。它的设计核心不是去改Codex的推理引擎而是围绕实际操作流程做增强把跟AI聊天变成给AI派活。它通过命令注册、任务队列、记忆存储和脚本扩展这四层结构把Codex重新包装成一个更符合开发习惯的AI协作者。1.2 核心定位增强层而非替代品理解这一点很重要因为很多人会把superpowers误当成Codex的竞品。它其实是个增强层。拿游戏来打比方Codex本身是一款性能不错的赛车superpowers则是给这辆赛车加装的一套智能辅助驾驶系统——它改变的不是发动机AI模型本身而是操控方式、路线规划和信息反馈。模型还是那个模型但有了这套系统之后你的赛道策略完全不同了。具体到使用体验上增强主要体现在四个维度。命令维度预置了多条斜杠命令比如自动做代码审查、自动补测试、自动生成提交说明都封装成一条指令。并发维度可以把一个大的重构任务拆成几个互相独立的子任务让Codex分头并行处理而不是排成一队。记忆维度把每次会话的关键决策、编码规范、常用路径持久化到本地文件下次会话自动加载。编排维度通过脚本把修改代码、跑测试、修复、再跑测试这种循环自动化减少人工插手。这四条就是贯穿全文的主线后面涉及安装和实操的部分我也会反复提到它们。2. 安装与初始化别急着跑安装脚本在真正动手安装之前我建议你先花十分钟把环境检查一遍。很多人装到一半发现跑不起来十有八九不是工具本身的问题而是前置条件缺了。2.1 前置条件清单先说硬性要求。第一你的机器上必须有一个能正常工作的Codex CLI环境。这里说的正常工作不只是装好了还要确认你登录过、能发起真实对话请求。最好先在终端敲一句最基础的命令跑通比如让它解释一下当前目录下某个文件的作用能正常返回再继续。第二Node.js和npm。superpowers本体和大部分脚本都是基于Node生态写的Node版本建议不低于18。装好之后用node -v和npm -v确认版本号。如果你机器上还留着一套老旧的Node 14大概率得先做版本调整。第三Git。这倒不是必须但superpowers的安装包和示例配置都是通过Git仓库分发的而且后续更新要走git pull建议装上。Windows用户推荐直接用官方安装包macOS和Linux用户看包管理器。第四一个配合项目用的代码仓库。我第一次装的时候图省事直接在家目录下初始化了一个空仓库结果后面测试命令都没有实际对象。最好是新建一个真实的测试项目规模不用大但要有几个类、一个测试文件、一套构建配置。2.2 安装流程与目录规划环境没问题就可以装。我这里直接给步骤照着做就行。第一步创建并进入工作目录。superpowers默认会读取用户目录下的某个配置路径不同版本的惯例不太一样稳妥做法是建一个统一目录比如~/superpowers专门存放它相关的配置、脚本和会话记录。第二步克隆仓库并查看结构。克隆完不要急着用先花两分钟看一下目录结构。里面通常有bin目录核心启动脚本、commands目录内置斜杠命令、scripts目录自动化脚本和docs目录文档。每个目录的作用后面实操时会用到。第三步安装依赖。在项目根目录执行npm install安装完成后检查一下有没有报错。这一步常见的坑是如果你在的网络环境下npm源拉包比较慢解决方案是把registry切到镜像源具体操作放在第5章说明。第四步注册到PATH。安装脚本通常会在你的shell配置文件比如~/.zshrc或~/.bashrc里追加一行环境变量指向superpowers的bin目录。装完后记得重新加载配置然后敲一下superpowers --version或which superpowers能查到版本和路径说明安装成功。2.3 初始化配置把人味设置进去装完只是第一步更关键的是初始化。这一步很多人会跳过但恰恰是让superpowers好用的分水岭。我的建议是第一次初始化时主动配置两个核心内容全局编码规范和常用项目路径。全局编码规范放在~/.superpowers/rules.md路径按实际版本为准里面描述的是你对AI行为的硬性约束。举个例子我的规则文件里会有这类内容修改Java代码时必须保持现有命名风格禁止重命名已有方法提交前必须跑一遍相关测试类不能只口头说应该没问题涉及依赖变更时要在回复中说明变更原因。这些规则会在每次会话开始时自动加载Codex在回答时会优先参考。然后是常用项目路径。在配置文件里维护一个别名列表把~/repo/order-service这类长路径映射成简短别名之后你在任何会话里敲斜杠命令都不用输入完整路径。这属于小细节但实际用起来非常顺手特别是在同时维护多个仓库的时候。3. 核心功能拆解四条支柱是怎么工作的安装完成、配置就绪之后接下来把这个增强层实际用起来。我不打算逐条罗列所有内置命令——那种写法像说明书没人看得下去。我挑四条最能直观提升效率的功能支柱结合我自己项目里的例子来讲。3.1 斜杠命令把高频操作封装成一条指令superpowers最表层的体验就是斜杠命令。它跟Codex原生支持的斜杠命令类似但预置的库更大覆盖面更广。比如我常用的/code-review对当前改动做一次全面的代码审查重点检查潜在Bug、资源泄漏、边界条件/write-tests自动为指定模块生成单元测试支持JUnit 5和AssertJ/fix-issues读取当前仓库的CI报错日志按优先级逐条修复/commit-message基于当前diff生成规范的提交信息。用起来很简单在Codex对话里直接输入斜杠命令然后附上参数。比如我输入/write-tests src/main/java/com/example/service/OrderService.java它就会自动分析这个类生成配套的测试代码并执行测试来验证。一个提醒斜杠命令相当于预先写好的任务说明书它定义了AI应该做什么、以什么格式输出、执行到什么程度算完成。所以当你觉得系统行为不符合预期优先去改命令定义而不是每次靠自然语言临时描述。这也是增强层思路的价值——把流程固化下来而不是每次都靠临场沟通。3.2 并行任务AI同时干多件事Codex原生的会话模式基本是一问一答问完一个问题要等它完成才能问下一个。superpowers引入了一个并发机制允许同时开启多个独立的会话工作区每个工作区有自己的上下文互不干扰。听起来很玄实际落地是这样的。我在重构订单服务的时候把改造拆成了三条线会话A负责改动OrderService核心接口会话B负责更新数据库访问层和映射文件会话C负责补齐所有关联模块的单元测试。三个会话同时开每个会话独立维护自己的对话历史。我在会话A里让AI修改接口签名在会话B里同步更新数据库映射在会话C里等着补测试。互相之间不抢上下文也不会出现在订单模块的会话里讨论着讨论着突然扯到支付模块的情况。不过并行不是乱并行。我自己总结了一条经验只有在任务之间互相独立也就是没有共享可变状态的时候才适合拆开并行。如果一个任务改了接口另一个任务的输出依赖这个新接口那并发就是灾难。更稳妥的做法是先用一条任务把接口稳定下来再并行处理后续依赖方这样能少掉很多协调成本。3.3 会话记忆与项目规则这一节相比前两节更隐形但长期使用下来最见功力。原生的Codex打开一个新会话是要重新交代一遍项目背景的。哪怕你每次都粘贴它也可能记错细节。superpowers的会话记忆机制把重新交代变成了自动加载。它的实现逻辑不复杂每次会话结束时它会根据对话内容生成一份会话摘要存到本地的工作区记忆文件里里面包含你本次做出的关键决策、踩过的坑、已确认的产物路径。下次打开新会话时它会检查当前仓库有没有对应的记忆文件有的话自动载入。这带来的一个明显变化是跨会话的一致性。我改了OrderService接口之后第二天开新会话说继续昨天的工作它直接就知道接口已改、测试还没补、最新的改动记录在dev分支的某个提交里而不是从头开始分析。我踩过的一个坑是记忆文件如果太冗长反而会稀释AI的注意力。你希望它记住的是关键决策和上下文锚点而不是整段对话逐字记录。所以写配置文件时可以设置记忆摘要生成时的长度阈值超过一定长度就强制精简这样既能保留主线又不会让AI被过多细节干扰。3.4 脚本编排把复杂工作流写下来斜杠命令解决的是单个高频任务并行任务解决的是多个独立任务但真实项目里还有一类需求多阶段串联的复杂流程。这种流程每次都要反复操作很多步这时候脚本编排就派上用场了。脚本编排就是用一段可执行的脚本描述AI的工作流程。比如我常用的一个工作流是安全上线前检查拉取当前分支最新代码执行mvn test收集所有失败用例对每个失败用例让AI分析根因并修复重新执行测试直到全绿生成一份上线风险说明。这套流程如果靠手工在Codex对话里一步步催至少得二三十轮对话中间还容易漏步骤。写成脚本之后一条命令全自动跑完。脚本本质上跟斜杠命令有渊源但区别在于脚本更强调编排它内部可以调用多条命令、判断条件、处理错误、输出结构化报告。配置好之后你只需要输入/run release-check剩下的事情就是等它执行完给你一份总结。我从实操中得到的建议是第一次写脚本时尽量把每一步的输出都记录下来保存成日志文件。这样出了问题你能清楚地看到是哪一步失败、失败时的上下文是什么。不要图省事只打印一个成功或失败那是在给自己埋坑。4. Java项目实战从构建到测试的完整闭环前面几节已经从表面功能讲到内部机制这节回到一个更具体的场景在Java项目里怎么把superpowers用成真正的实战工具。以Java为目标场景并不是偶然Java项目的构建链条长编译、打包、测试、静态检查环节多正好是superpowers这类增强层最能发挥价值的地方。4.1 JVM生态为什么特别需要这套增强Java项目跟脚本语言项目有个很大的不同反馈周期长。一次改动从代码到验证中间隔着编译和打包任何一步失败都要回到源头。如果AI只有改代码的能力没有改完以后执行构建并验证的闭环工作效率会大打折扣。superpowers的脚本编排恰好补上了这个缺口。它可以让AI改代码和跑构建在同一流程里循环进行改完一个类立刻执行对应的测试测试失败读取失败信息再改再跑直到通过才进入下一步。另一个JVM生态特色是多构建工具共存。有的项目用Maven有的用Gradle还有的老项目用Ant。superpowers在配置里区分了针对Maven和Gradle的执行策略你在命令参数里指定当前项目用哪个构建工具它跑起来的就是你想要的那套命令不会出现对着Gradle项目敲mvn命令这种低级错误。4.2 一个完整的实战案例改造订单状态机为了把前面这些概念串起来我模拟一个贴近实际场景的任务改造一个订单状态机的核心逻辑。需求是原状态机不允许已支付订单直接流转到已取消现在要放开这个限制并补充对应测试。我把这个任务写在Codex对话里约定使用superpowers的编排脚本。脚本定义的工作流大致是第一步做前置分析AI先读取StateMachine类找出当前所有的状态流转规则生成一份变更影响面清单。第二步执行修改在代码中增加已支付到已取消的流转逻辑同时保留原有限制的其他流转路径。第三步验证测试运行mvn test -DtestOrderStateMachineTest观察新增用例是否通过。第四步回归测试运行整个订单模块的全部测试确保没有破坏其它状态流转。第五步生成变更总结按模板输出改了什么、为什么改、影响哪些类、建议后续关注点。跑完这条脚本AI会返回一份完整的执行报告而不是一句改好了。这个案例里有两点值得单独说。第一影响面清单这一步看似简单其实是把AI改代码从单点行为升级成带着全局观改代码的关键。第二回归测试的自动执行很多AI编程工具改了代码不跑测试superpowers脚本里强制要求的这一步直接把AI可能引入回归Bug的风险降了一个量级。4.3 Maven与Gradle两种项目的处理差异上面案例用的是Maven实际项目里Gradle也不少。这里把两者的配置差异讲清楚避免你在切换项目时踩坑。在superpowers的脚本里构建工具的选择通常通过一个变量控制比如BUILD_TOOLmaven或BUILD_TOOLgradle。变量决定后续命令的执行方式Maven项目默认用mvn compile和mvn test依赖更新用dependency:tree检查测试报告路径指向target/surefire-reports。Gradle项目默认用./gradlew build和./gradlew test依赖用dependencies命令测试报告路径指向build/reports/tests。两种工具在脚本里最大的差异在于测试结果读取方式。Maven的Surefire报告是XML格式AI可以直接解析Gradle的测试报告是HTML加XML混合路径结构不同。如果不针对这两个路径做配置AI就会在找测试报告这一步卡住。我的做法是在配置里分别指定两份报告解析规则这样不管哪个项目它都能快速定位失败用例的堆栈信息。还有一个小细节Java版本。有些老项目还跑在Java 8上有些新项目已经切到Java 21。脚本里跑测试之前最好加一步环境检查确认JAVA_HOME指向的版本跟项目要求一致免得AI改了代码跑测试时莫名其妙报UnsupportedClassVersionError查半天才发现是版本不匹配。5. 高频问题与避坑实录最后这个部分把我这几个月实际使用中遇到的典型问题整理成一张速查表再补充几个文字不好写进表里的经验。这些问题不是从文档里抄来的都是我真实撞过墙之后总结的。5.1 常见错误速查表现象可能原因排查与解决命令执行超时无输出网络请求失败或API响应慢检查当前网络环境确认Codex CLI单独运行是否正常超时阈值可调大斜杠命令没有出现在补全列表里命令文件路径未注册确认commands目录是否在配置的加载路径中重启会话重新加载并行任务之间互相干扰两个任务共享了同一个内存文件拆任务时确认无共享状态把共同依赖提取到前置阶段会话记忆没有加载仓库路径或记忆文件位置不匹配确认当前工作目录与初始化配置的路径一致Java测试报告解析失败Surefire/Gradle报告路径配置错误手动打开报告路径核对按实际目录修改配置Node版本过旧导致脚本启动报错运行时版本不满足要求升级Node至18以上用nvm管理多版本依赖安装卡住npm registry源访问慢切换镜像源并清除npm缓存5.2 几个容易踩的坑说几个表格里装不下的经验。第一个坑是规则文件太贪心。我在最开始写编码规范时恨不得把团队所有代码规范全塞进去结果AI每次会话光顾着遵守规则任务本身反而推进得很慢。后来我精简到只保留五条硬约束命名风格、测试必跑、禁止重命名、变更说明、依赖谨慎。规则少而精效果反而立竿见影。第二个坑是并行任务开了不收尾。并行会话很爽但每次并行结束不同的会话会各自留下修改冲突概率并不低。我的做法是强制约定每个并行会话在处理完后必须在报告里注明自己改过的文件列表然后由一条主控脚本统一执行全量回归测试确认没有互相踩脚。这部分建议从小范围开始试不要一上来就十个任务同时开。第三个坑是过度依赖脚本自动跑全量测试。有时候一个很小的改动脚本傻乎乎地跑一遍全部3000多个测试耗时巨大。Java项目里测试分级是个好方案把核心业务模块的测试定义成冒烟集日常改动只跑冒烟集合入前跑全量。superpowers脚本里同样支持这种分级配置按需调用才能把效率真正提起来。第四个坑是关于版本更新的。很多新版本的命令跟旧版本不一样我踩过最尴尬的一次是照着网上某篇初期教程配置了一个命令结果新版早就改名了。所以任何时候先去看当前版本自带的docs目录网络教程可以参考但别只依赖它。其实用了这么长时间superpowers我最大的感受不是AI更强了而是我对AI的掌控感更强了。以前用Codex总觉得是在跟一个聪明但任性的实习生协作——他有思路但你不知道他会往哪跑偏。有了这层增强之后工作流被拆成了标准化的模块命令封装好了规则固化好了测试闭环自动化了AI就像是带着操作规程在干活预期一下子变得清晰了。如果你也在用Codex CLI并且已经在真实项目里吃够了上下文丢失任务串行没人能验证的苦头我建议你抽一个下午把这些配置搭起来。先别追求一步到位装好、跑通一条命令、写一个最小脚本用几天感受一下差异再慢慢扩展。我自己就是这样一步步配出来的每次打开终端看到那条斜杠命令列表都会觉得这套配置确实值得。
企业数字化 ERP 产品动态
相关推荐
向量数据库原理与应用:从特征检索到推荐系统实战 1. 向量数据库的本质:从买菜到推荐系统的思维跃迁 第一次听说"向量数据库"这个概念时,我正蹲在菜市场挑西红柿。摊主老张把最红的放左边,偏青的摆右边,按成熟度一字排开。这个无意识的分类动作突然让我顿悟——这不就是… · 2026/11/4 15:12:02
企业智能体资源管理:从混沌到精益化运营 1. 智能体资源管理的现状与挑战在当今企业数字化转型浪潮中,智能体技术正成为提升运营效率的关键抓手。但很多企业在实际落地过程中,往往会遇到一个共性问题:初期热情高涨地部署了大量智能体,却在后续运营中陷入资源调度的混乱状态… · 2026/11/4 15:12:02
IEC62619-2022电池系统安全:热失控传播与BMS功能安全 简介:这份IEC 62619:2022标准原文PDF面向工业用二次锂电池与蓄电池的设计、制造、测试及合规人员,帮助系统查阅碱性或其他非酸电解质电池在工业应用中的安全要求。资源包共1个PDF文件,大小约8.25MB,便于直接检索、引用和归档&… · 2026/11/4 15:12:02
带宽被谁吃光?终端用 bandwhich 快速定位指南 带宽被谁吃光?终端用 bandwhich 快速定位指南 【免费下载链接】bandwhich Terminal bandwidth utilization tool 项目地址: https://gitcode.com/gh_mirrors/ba/bandwhich
半夜,服务器出口带宽被顶满,你翻接口统计却查不到是谁干的。打… · 2026/11/4 15:57:52
Qwen3-VL-8B:如何用AI实现视觉推理与智能交互? Qwen3-VL-8B:如何用AI实现视觉推理与智能交互? 【免费下载链接】Qwen3-VL-8B-Thinking-unsloth-bnb-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-VL-8B-Thinking-unsloth-bnb-4bit
导语:Qwen3-VL-8B-Thinking模… · 2026/11/4 15:56:52
从零开始学AI22——集成学习 集成学习核心思想是“三个臭皮匠,顶个诸葛亮”,通过组合多个弱模型提升整体性能。三大流派:Bagging(如随机森林)并行训练、投票降方差,适合抗噪稳定场景;Boosting(如XGBoost… · 2026/11/4 15:55:51
Sill 音频管线深度剖析:AAC-ELD 128kbps 编码、10ms 分片与逐包漂移校正的精密同步机制 【免费下载链接】sill Any window from your Mac, live on your iPhone or iPad. Touch, Apple Pencil, trackpad and keys. Free, open source, no servers. 项目地址: https://gitcode.com/gh_mirrors/sill1/sill 点击查看 免费下载 Sill 是一款免费、开源的 Mac… · 2026/11/4 15:52:50
1.65 美元通关宝可梦:Awesome Decision Models 的 50 个决策模型游戏与 Demo 完整清单 【免费下载链接】awesome-decision-models A curated list of decision models (System One / typed decision models): hosted APIs, open-weight models, runtimes, SDKs, applications, benchmarks, and papers. 项目地址: https://gitcode.com/gh_mirrors/awes/… · 2026/11/4 15:51:50
Hermes Agent容器编排监控工具:Prometheus与Grafana配置 Hermes Agent容器编排监控工具:Prometheus与Grafana配置
Hermes Agent是一款功能强大的容器编排监控工具,能够帮助开发者和运维人员轻松实现对容器环境的全面监控。本文将详细介绍如何配置Prometheus与Grafana,以实现对Hermes Agent容器编排… · 2026/11/4 15:50:49
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
AI辅助技术栈评估:提升研发决策效率60% 1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17
从生成Token到直接决策:Jev如何重塑AI Agent工程实践 1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17
32G统一内存跑大模型:内存账、TPS实测与端云分流 想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38