1. 从“超能力”到可落地的技能系统superpowers 到底在解决什么问题第一次看到 “superpowers” 这个词很多人会下意识觉得它是个噱头——听起来像漫威宇宙里的东西跟实际能上手用的工具八竿子打不着。但如果你最近在开发者社区、效率工具圈或者 AI 工作流讨论里频繁刷到它就会发现大家聊的其实是另一回事superpowers 是一套把“技能skills”模块化、可插拔、可复用的能力扩展体系。它要解决的核心痛点非常具体——当你手头有一堆零散的工具、脚本、提示词、工作流片段时怎么把它们组织成一套随取随用、彼此不打架、还能持续迭代的“能力库”。我自己最早接触这个概念是因为一个很现实的困扰日常要处理的任务太杂了写代码、整理文档、做数据分析、生成结构化内容、批量处理文件每换一个场景就要重新翻笔记、重新拼命令、重新调参数。时间全耗在“重新组装”上而不是真正干活。superpowers 这类思路的价值就在于它把这些重复组装的过程抽象成了一个个独立的 skill每个 skill 只负责一件事需要的时候引进来不需要的时候摘出去互不干扰。所以这篇文章不是给你讲一个虚无缥缈的概念而是把 superpowers 的核心机制、技能分类、引入方式、安装流程、实际使用中的坑全部拆开讲清楚。适合谁看三类人一是刚听说 superpowers、想知道它到底能干嘛的新手二是已经在用但总觉得“技能装了一堆却不好使”的中级用户三是想自己设计一套技能体系、把个人工作流沉淀下来的进阶玩家。不管你在哪个阶段下面这些内容都能直接拿去对照操作。需要先说明一点superpowers 本身是一个偏“框架”和“组织方式”的东西它不是一个装完就自动帮你干活的魔法按钮。它的威力来自于你往里面放什么技能、怎么组合、怎么调用。理解了这一点后面的所有操作逻辑就顺了。2. superpowers 的整体设计思路与技能体系拆解2.1 为什么是“技能”而不是“功能”或“插件”要理解 superpowers先得理解它为什么用“skill”这个词而不是叫“plugin”或者“feature”。这三个词看着像同义词实际背后的设计哲学完全不同。插件plugin通常是绑定在某个宿主程序上的你装了插件它就挂在那程序里换一个环境可能就失效。功能feature是程序自带的你只能用它给你的改不了也扩不了。而技能skill的核心特征是“独立、可迁移、可组合”——一个 skill 本质上是一段自包含的能力描述它知道自己该在什么场景下被触发、需要什么输入、产出什么结果、依赖哪些前置条件。它不绑定具体宿主理论上可以在不同工作流里被反复调用。打个生活化的比方插件像是给某款特定型号的手机买的专用手机壳换手机就用不了功能像是手机出厂自带的相机而 skill 更像是一张写清楚了“切菜”这件事怎么做的菜谱卡片——不管你在哪个厨房、用哪把刀只要条件满足照着卡片就能把菜切好。superpowers 要做的就是帮你管理这一叠菜谱卡片并且在你需要的时候自动把对应的卡片递到你手上。这个设计带来的直接好处有三个。第一是解耦每个 skill 独立维护改一个不会连累其他。第二是复用同一个 skill 可以在完全不同的任务里被调用不用重写。第三是可组合多个 skill 可以串成一条流水线前一个的输出正好是后一个的输入。理解了这三点你就明白为什么社区里那么多人强调“先把技能拆细再谈组合”。2.2 技能的分类逻辑按“触发方式”还是按“领域”分刚上手的人最容易犯的错就是按“领域”给技能分类——比如把所有跟文档相关的放一堆所有跟数据相关的放一堆。这个分法看着整齐实际用起来很别扭因为真实任务往往是跨领域的你要处理一份数据中间要读文档、要写脚本、要生成报告领域分类根本挡不住这种交叉。更实用的分法是按触发方式分类。我实测下来superpowers 里的技能大致可以归成这么几类技能类型触发特征典型用途引入时的注意点主动触发型需要你明确点名调用特定格式转换、专用计算名字要短好记否则调用时容易打错条件触发型满足某条件自动激活输入检测、格式校验条件别写太宽否则会误触发链式触发型被上一个技能的输出唤起流水线中间环节要明确输入输出契约不然会断链兜底型前面都没命中时接管异常处理、默认行为只能有一个多了会互相抢这个分类表是我踩了不少坑之后总结的。最开始我把所有技能都设成主动触发结果每次干活都要手动点名十几个技能比不用还累。后来把一部分改成条件触发和链式触发整个流程才顺起来。核心原则是能用条件触发和链式触发解决的就别用主动触发因为人的注意力是稀缺资源能自动的就别手动。2.3 技能之间的依赖关系怎么理技能一多依赖关系就会变成一团乱麻。A 技能依赖 B 的输出B 又依赖 C 的初始化C 没跑起来 A 和 B 全废。这种情况在技能数量超过十个之后几乎必然出现。我的处理办法是画一张依赖图然后做拓扑排序。听起来很学术实际操作很简单拿张纸把每个技能写成一个圈谁依赖谁就画条箭头然后从没有箭头指向它的技能开始一层层往下排。排完之后你会发现真正需要“手动先启动”的技能其实只有最底层那几个其他的都可以靠链式触发自动带起来。提示依赖关系里最危险的是“循环依赖”——A 等 BB 等 A两个都卡死。设计技能时一定要避免这种情况判断方法就是看依赖图里有没有环。还有一个容易被忽略的点技能之间的数据格式要统一。如果 A 技能输出的是 JSONB 技能却只认纯文本那链式触发就会在中间断掉。我一般会在设计阶段就约定好一套通用的中间格式所有技能都按这个格式来省掉大量转换的麻烦。3. 核心技能详解与引入方式实操3.1 最常用的几类技能及其适用场景社区里讨论最多的技能集中在几个高频场景。我把它们整理出来顺便说说各自适合什么情况用、不适合什么情况用。文本处理类技能是最基础的一类包括格式清洗、结构提取、批量替换、模板填充等。这类技能的特点是输入输出都是文本依赖少、好组合适合作为流水线的起点或终点。但要注意文本处理技能对编码和换行符特别敏感Windows 和 Unix 环境的换行符不一样跨环境用的时候经常出问题。数据转换类技能负责在不同数据格式之间搬运比如表格转结构化数据、结构化数据转报表。这类技能的价值在于“一次写好到处能用”但前提是你得把字段映射关系定义清楚。我见过太多人在这类技能上翻车原因都是字段名对不上——源数据叫user_name目标却要username中间没做映射直接报错。流程编排类技能是进阶玩法它本身不干具体的活而是负责调度其他技能。这类技能最难写但也最省事因为一旦编排好后面就是全自动。写这类技能的关键是把异常处理想全某个环节失败了怎么办超时了怎么办输出不符合预期怎么办这些不处理好编排技能就是个定时炸弹。校验与兜底类技能平时不显山露水但关键时刻能救命。它们负责检查输入是否合法、输出是否符合预期、流程是否走偏。我的习惯是每引入一个新技能就配一个对应的校验技能虽然麻烦一点但能省掉后面大量排查时间。3.2 引入技能的标准流程从获取到激活引入一个技能不是复制粘贴就完事中间有好几个环节每个环节出问题都会导致技能“装了但用不了”。标准流程大致是这样获取技能定义从技能库、社区分享或者自己编写拿到技能的描述文件。这个文件通常包含技能名、触发条件、输入输出说明、依赖列表。检查依赖是否满足看技能依赖的其他技能或环境是否就绪。缺依赖就先把依赖补上别急着激活。放入技能目录把技能文件放到约定的目录下。目录结构要统一否则管理起来会乱。注册技能让系统知道有这个技能存在。有些框架是自动扫描目录有些需要手动注册看具体实现。激活并测试先单独测试这个技能能不能正常工作再把它接入现有流程。观察一段时间新技能上线后别马上大规模用先小范围跑几天看有没有意外触发或性能问题。这六步里第三步和第五步最容易出问题。目录结构不统一会导致技能找不到或者重复加载跳过单独测试直接接入流程一旦出问题很难定位是技能本身的毛病还是流程衔接的毛病。注意引入技能时一定要看它的“触发条件”写得宽不宽。有些技能的条件写得太泛比如“输入包含数字就触发”结果你处理任何带数字的文本它都跳出来烦不胜烦。遇到这种要么改条件要么干脆不用。3.3 技能引入时的命名与版本管理命名这件事看着小实际影响很大。我吃过亏早期技能命名很随意有叫tool1的有叫process_data的还有叫新技能的。结果技能一多根本记不住哪个是干嘛的调用时全靠翻文档效率极低。后来我定了一套命名规则一直用到现在动词_对象_限定词。比如extract_keywords_from_text、convert_table_to_json、validate_email_format。这样命名光看名字就知道它干什么、对什么干、有什么限制。调用的时候也不用查文档凭记忆就能敲出来。版本管理同样重要。技能是会迭代的今天改个参数明天加个功能如果不做版本区分很容易出现“昨天还好好的今天就不对了”的情况。我的做法是在技能名后面加版本号比如extract_keywords_v2旧版本保留不动新版本另起一个。这样即使新版本有问题也能立刻切回旧版本不至于整个流程瘫痪。命名方式优点缺点推荐度随意命名写的时候快后期完全记不住不推荐动词_对象清晰好记长技能名会很长推荐动词_对象_限定词信息最全名字偏长最推荐纯编号短完全不知道干嘛的不推荐4. 完整安装与配置流程从零到能跑起来4.1 安装前的环境准备与检查清单安装 superpowers 之前有几项环境检查必须做跳过任何一项都可能在安装中途报错而且报错信息往往看不懂。运行环境版本确认你的运行环境满足最低版本要求。版本太低会缺一些关键特性导致技能加载失败。目录权限技能目录需要有读写权限否则技能放不进去或者注册失败。依赖组件有些技能依赖额外的组件或库提前装好别等报错了再补。磁盘空间技能文件本身不大但如果技能库很庞大加上日志和缓存还是留出足够空间比较稳妥。网络连通性如果技能需要从远程获取确认网络能通。这一步经常被忽略结果卡在下载环节。我一般会把这五项做成一个检查清单每次在新环境部署前过一遍。别嫌麻烦这五分钟能省掉后面半小时的排查。4.2 分步安装每一步在做什么、为什么这么做安装过程本身不复杂但每一步背后的意图要搞清楚不然出了问题不知道怎么修。第一步获取安装包或安装脚本。从官方渠道或者可信来源拿到安装材料。这一步的关键是确认来源可靠来路不明的安装包可能夹带不需要的东西。第二步解压或执行安装。如果是压缩包解压到指定目录如果是脚本按提示执行。这一步要注意安装路径不要有中文和空格很多工具对这两样东西支持不好路径里有中文经常导致莫名其妙的错误。第三步初始化配置。安装完成后通常需要初始化生成默认配置文件。这个配置文件是后面所有调整的基础先备份一份原始版本改坏了能还原。第四步验证安装。跑一个最简单的测试确认核心功能可用。这一步别跳过我见过太多人装完直接上复杂任务结果出问题时分不清是安装没成功还是任务本身有问题。第五步配置技能目录。告诉系统去哪里找技能。目录可以是一个也可以是多个多个目录会按顺序扫描。顺序很重要同名技能会以先扫描到的为准。# 典型的目录配置示例示意具体命令以实际工具为准 # 设置技能主目录 export SUPERPOWERS_SKILLS_DIR/path/to/skills # 设置额外的技能搜索路径多个路径用冒号分隔 export SUPERPOWERS_EXTRA_PATHS/path/to/extra1:/path/to/extra24.3 安装后的首次验证与基础配置调优装完之后别急着堆技能先做一次基础验证确认整个链路是通的。验证方法很简单引入一个最简单的技能手动触发一次看能不能正常返回结果。如果这一步就失败说明安装环节有问题先解决安装别往下走。基础配置调优主要调三个地方。第一是日志级别刚开始建议调成详细模式方便看每一步在干什么稳定之后再调回正常级别免得日志刷屏。第二是超时设置技能执行超时时间别设太短有些技能处理大数据就是慢设太短会频繁超时也别设太长出问题时干等着也难受。第三是并发限制同时跑太多技能会抢资源根据机器性能设一个合理上限。提示首次配置完成后把配置文件复制一份存起来标注好日期和改动内容。以后调乱了直接拿这份还原比一点点回忆改了什么快得多。5. 实际使用中的高频问题与排查技巧5.1 技能装了却不触发排查思路这是最常见的问题技能明明放进去了该触发的时候却没反应。排查按这个顺序来基本能覆盖九成情况。先看技能是否被正确注册。有些框架需要显式注册光放文件不够。检查注册列表里有没有这个技能的名字。再看触发条件是否匹配。把你实际的输入和技能要求的条件逐条对照经常是差一个字符或者大小写不一致。然后看优先级。如果同时有多个技能满足条件优先级低的可能被压住不触发。最后看是否有报错被吞掉。有些框架触发失败不报错静默跳过这时候要开详细日志才能看到。我遇到过一次特别隐蔽的技能触发条件里写的是匹配“报告”这个词但我的输入里用的是“报表”一字之差死活不触发。后来把条件改成匹配“报”字才解决。所以触发条件能宽一点就宽一点别抠太死。5.2 技能之间互相干扰怎么办技能一多互相干扰几乎不可避免。典型表现是单独跑每个技能都正常一起跑就乱套。原因通常是命名冲突、目录冲突或者触发条件重叠。命名冲突好解决按前面说的命名规则加上版本号和限定词基本能避免。目录冲突是指两个技能目录里有同名文件扫描时互相覆盖解决办法是统一目录结构不同技能放不同子目录。触发条件重叠最麻烦两个技能都觉得自己该触发结果抢着执行输出乱成一团。处理触发条件重叠我的办法是给技能排优先级并且明确互斥关系。比如 A 和 B 条件重叠那就规定 A 优先B 在 A 不满足时才触发。这个规则要写进配置里不能靠系统自己猜。干扰类型典型表现排查方法解决手段命名冲突调用时提示找不到或找错检查技能名是否重复加版本号和限定词目录冲突技能时好时坏检查目录下是否有同名文件统一目录结构条件重叠多个技能同时触发开日志看触发了哪些排优先级、设互斥资源抢占跑得越来越慢看资源占用限制并发数5.3 性能问题的定位与优化技能跑得慢原因可能出在技能本身也可能出在调度环节。定位方法是分段计时在技能执行的每个阶段打时间戳看时间花在哪一段。如果时间花在技能内部那就是技能实现的问题优化算法或者减少数据量如果花在调度上那就是技能太多、依赖太复杂需要精简。优化手段我常用这几个。减少不必要的技能调用能合并的合并能跳过的跳过。缓存中间结果同样的输入不用重复算。异步化不互相依赖的技能并行跑。精简依赖链依赖层级越少调度开销越小。实测下来把依赖层级从五层压到三层整体速度能快将近一倍。所以别小看依赖链的长度它直接影响性能。5.4 常见问题速查表问题现象可能原因快速排查解决办法技能完全不触发未注册或条件不匹配查注册列表和条件注册技能、放宽条件触发但无输出输入格式不对检查输入格式转换格式后重试输出格式错乱技能间格式不统一检查中间格式统一中间格式跑一半卡住依赖缺失或死锁查依赖图和日志补依赖、破循环结果时对时错并发冲突看并发设置限制并发或加锁安装后报错环境不满足对照检查清单补齐环境依赖6. 把技能体系用出效果的几个实战心得6.1 从“能用”到“好用”的关键调整技能能跑起来只是第一步真正好用还需要做几件事。第一是给常用技能设快捷方式别每次都敲全名太累。第二是给技能加使用说明哪怕只有一句话过一个月你自己都忘了它是干嘛的。第三是定期清理用不上的技能果断删掉留着只会增加干扰。我自己的习惯是每个月做一次技能盘点哪些天天用哪些一周用一次哪些一个月没碰过。一个月没碰的直接归档需要时再拿出来。这样技能库始终保持在精简状态调用效率高很多。6.2 技能组合的进阶玩法单个技能威力有限组合起来才厉害。我常用的组合模式有两种。串行组合是把技能排成一条线前一个的输出喂给后一个适合处理有明确步骤的任务。并行组合是多个技能同时跑最后汇总结果适合处理可以拆分的任务。串行组合的关键是定义好每个环节的输入输出契约不然中间会断。并行组合的关键是结果汇总逻辑多个技能的输出怎么合并、冲突怎么处理这些要提前想好。提示组合技能时先在小数据量上跑通再上大数据量。直接上大数据量一旦中间出错排查起来非常痛苦。6.3 长期维护让技能库不变成垃圾堆技能库最大的敌人是时间。刚开始整整齐齐用着用着就乱了。避免变成垃圾堆靠的是规则和习惯。规则包括命名规则、目录规则、版本规则习惯包括定期盘点、及时归档、写清说明。我见过太多人的技能库最后变成“什么都有但什么都不好用”的状态根本原因就是没有维护。技能库跟代码库一样是需要持续打理的不是放进去就完事。6.4 我踩过的几个典型坑最后分享几个我实际踩过的坑都是文档里不会写、但实际会遇到的。坑一技能名用了特殊字符。当时觉得名字里带个点挺好看结果调用时各种转义问题折腾半天。后来只用字母、数字和下划线再没出过问题。坑二技能目录放在同步盘里。想着多设备同步方便结果同步冲突导致技能文件损坏排查了好久。技能目录最好放本地需要同步就手动备份。坑三一次性引入太多技能。刚开始兴奋一口气装了三十多个结果互相干扰一个都用不好。后来精简到十个以内反而效率高了。技能不在多在精。坑四没做版本控制。改技能改出问题想回退发现没存旧版本只能重写。从那以后每次改技能前先备份改完测试通过再替换。这些坑说起来都是小事但每一个都实实在在浪费过我的时间。希望你看完能绕过去把精力花在真正有价值的事情上。superpowers 这套东西用好了确实能省下大量重复劳动但前提是你得先把基础打牢别急着堆功能。
企业数字化 ERP 产品动态
相关推荐
Hyperframes 深度解析:渲染分层、插帧与界面隔离实践 1. 从“hyperframes”这个词说起:它到底是什么 第一次看到“hyperframes”这个词,很多人会下意识地把它拆成“hyper”和“frames”两部分来理解。从字面看,它指向的是某种“超框架”或者“超帧结构”的概念。我在几个技术社区和创意工具圈子里… · 2026/11/5 14:37:28
测试替身辨析:Stub、Mock、Fake 的区别与选型指南 测试代码写到一定阶段,几乎每个人都会撞上同一堵墙:明明只是验证一个下单逻辑,结果为了跑通测试,硬生生把支付网关、短信服务、库存中心全给“造”了一遍。更让人抓狂的是,团队里三个人对同一个假对象的叫法完全不同&a… · 2026/11/5 14:36:19
安卓语音助手语音链路实战:VAD断句、ASR/TTS与低延迟工程化 简介:这是一份面向安卓开发者的智能语音对话机器人工程源码包,适合想入门语音交互、自然语言处理或二次开发机器人助手的中级学习者参考。工程围绕语音指令采集与识别、文本语义理解、对话响应生成以及机器人大脑接口调用展开,可用于搭建具备… · 2026/11/5 16:40:02
青岛建设厅电工证多久拿证怕考不过白交培训费 青岛建设厅电工证多久拿证怕考不过白交培训费 你是不是也担心花了几千块培训费,结果考试没过,白忙一场?青岛建设厅电工证是建筑行业必须的通行证,但很多人因为不了解报考流程和备考方法,白白浪费了时间和金钱。今天我们就来聊聊,… · 2026/11/10 16:53:07
电工证怎么考级别的通过率揭秘,外省证转过来怎么操作 电工证怎么考级别的通过率揭秘,外省证转过来怎么操作 之前考的证在外省能不能转过来?这几乎是每个电工从业者在考完证之后都会问的问题。很多人担心,自己在外省考的证到了本地用不了,或者需要重新考证、重新考试,费时费力不说,还可能影响工作进度。但事… · 2026/11/10 16:53:07
高压电工证离职怎么解除?上岗必备流程全解析 高压电工证离职怎么解除?上岗必备流程全解析 实操考试心里没底怕挂科?高压电工证离职怎么解除?这事儿别急,今天咱就给你掰开了说清楚,从 上岗必备 到离职解除,每个环节都不踩坑。 一、高压电工证离职怎么解除?流程全知道 1.… · 2026/11/10 16:53:07
淄博电工证考试条件通过率揭秘,实操考试心里没底怕挂科? 淄博电工证考试条件通过率揭秘,实操考试心里没底怕挂科? 实操考试心里没底怕挂科,这是很多准备报考淄博电工证的学员最真实的感受。尤其是刚毕业的工程类学生,面对电工证实操考试,往往会因为缺乏经验而焦虑。但你知道吗?其实只要掌握对的备考方法和技巧… · 2026/11/10 16:53:07
建设厅电工证学历要求你知道吗?上岗必备证件怎么考 建设厅电工证学历要求你知道吗?上岗必备证件怎么考 你是不是正为找不到工作发愁?是不是在工地、工厂、工地现场四处碰壁?原因很可能就是你没有 上岗必备 的特种作业证。尤其是 建设厅电工证… · 2026/11/10 16:53:07
安丘在哪里办理电工证?证书过期了不知道怎么复审延期怎么办? 安丘在哪里办理电工证?证书过期了不知道怎么复审延期怎么办? 证书过期了不知道怎么复审延期,这种焦虑每个特种作业从业者都经历过。尤其是像你这样在鹤壁工作的建筑工人,电工证是日常作业的“通行证”,一旦过期,不仅影响工作,还可能面临安全处罚。如果… · 2026/11/10 16:51:57
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/10 2:16:10
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/9 3:11:26
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/9 5:24:17
丹寨电工证怎么考?内部消息透露报考条件和流程 丹寨电工证怎么考?内部消息透露报考条件和流程 急需特种作业证才能上岗找工作,这是很多电工朋友最真实的焦虑。尤其是像丹寨电工证这样的证书,直接影响你的职业发展和薪资待遇。但你知道吗?很多人都在报考过程中踩坑,有的甚至花了几千块最后白忙一场。今… · 2026/11/10 0:00:13
成都建筑电工证办理郑州报考避坑指南 成都建筑电工证办理郑州报考避坑指南 证书过期了不知道怎么复审延期?别慌!这篇文章手把手带你解决成都建筑电工证办理的难题,顺便避掉郑州报考的那些坑。不管你是刚拿到证的新手,还是准备复审的老电工,这波干货都别错过。… · 2026/11/10 0:00:13
梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程 梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程 你是不是正为梅州低压电工证发愁?不知道去哪报名,怕被中介骗钱,又担心证书是不是全国通用?其实,这些顾虑都是正常人会有的。今天我就从一个在开封房建工程一线干了几年的电工角度,手把手教你… · 2026/11/10 0:00:13
双极步进电机控制实战: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/9 11:23:35
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/9 11:23:58
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/9 11:25:08