news 2026/9/2 13:58:44

AI时代技术写作风格趋同化:原理剖析与个人写作指纹实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI时代技术写作风格趋同化:原理剖析与个人写作指纹实战

如果你近半年经常逛技术社区,大概率会有一种隐隐的不适感:搜索同一个报错信息,十篇博客给出的解决方案几乎一模一样,甚至段落顺序、加粗的坑位、最后的总结句式都是同构的。这不是错觉。从技术写作到产品文案,从论文摘要到短视频口播,人类整体的写作风格正在肉眼可见地趋同。

本文想讨论的,不是一个简单的审美问题:"AI 让文章变难看了"。我想提出一个更值得开发者思考的技术判断:当写作被算法和生成模型推到"平均答案"附近,我们失去的不只是文风,而是独立思考的入口,这是一种容易被忽视的集体心理隐忧。

读完这篇文章,你会理解写作风格趋同化背后的技术机制——RLHF、困惑度、采样温度、推荐算法如何在共同塑造"平均文本";也会拿到一套在 AI 辅助下依然能保持个人技术写作特色的实践方案,包括个人工程日志模板、写作特征自检脚本和"脚手架式"提示词设计。

1. 写作风格的趋同化,到底在说什么

1.1 一个常见场景:十篇博客几乎同构

你在 CSDN 搜索"Spring Boot 集成 Redis 报错",大概率会看到高度相似的段落结构:

  1. 介绍 Spring Boot 和 Redis 是什么;
  2. 贴出 application.yml 配置;
  3. 贴出 RedisTemplate 代码;
  4. 列出三个常见异常及解决方式;
  5. 用一段"总结"收尾。

这个结构本身没有错,问题在于:每个作者的真实踩坑过程、业务约束、版本差异、决策取舍几乎都被抹平了。你读到的不像一个具体的人在某个具体项目中解决问题,而像同一个模板在不同页面上被复制、改写、再发布。

技术写作风格的趋同,正是这样发生的。

1.2 趋同分四个层面

写作风格的趋同不是"所有人写得一样长"这么简单,更准确的分类是四个层面:

趋同层面具体表现影响程度
语言层高频使用"首先""其次""综上所述""需要注意的是"轻度,容易被察觉
结构层文章段落顺序、小结格式、代码块位置高度一致中度,影响阅读体验
案例层反复使用同一类示例,比如增删改查、登录注册较深,削弱说服力
观点层对技术选型的判断趋同,缺少反对意见和边界条件最深,直接影响社区生态

语言层的趋同最容易识别,观点层的趋同最危险。当一篇技术文章的所有结论都是"官方文档怎么说我就怎么说",没有补充个人判断,它的信息增量就趋近于零。

1.3 为什么技术写作是"重灾区"

技术写作天然有"准确优先"的约束,你不太可能为了让文章独特而故意把报错信息写错。再加上技术教材、官方文档、入门教程的长期熏陶,技术文章形成了一套稳定的"正确写作范式"。

这个范式在过去是好事,它保证了内容的基本质量。但在 AI 生成内容泛滥之后,它变成了弱点:机器最容易模仿的,恰恰是那些标准化、无歧义、可预测的表达。于是,AI 生成的初稿和人类写的初稿越来越难区分,因为二者都在向同一个"正确模板"收缩。

技术写作之所以成为风格趋同的重灾区,不是因为从业者缺少个性,而是因为这个领域对"正确性"的追求,天然与"风格差异化"存在张力。

2. 趋同化的底层机制:为什么生成模型更容易写出"平均文本"

如果只在现象层面抱怨"AI 生成的内容都一个味",我们很难真正解决这个问题。更有价值的做法是理解生成模型为什么天然倾向于产出"平均文本"。这要从四个技术机制说起。

2.1 RLHF:奖励模型在奖励平均值

大型语言模型训练到后期,通常会经过 RLHF(基于人类反馈的强化学习)阶段。训练方式大致是:让标注者对模型生成的多个回答进行排序,然后训练一个奖励模型学习这种偏好,最后用强化学习让生成策略更接近"人类更喜欢的回答"。

这里存在一个容易被忽略的问题:标注者的偏好是多样化的,但奖励模型学到的是一种"平均偏好"。它倾向于给那些稳妥、礼貌、结构完整、没有明显错误的回答打高分。于是,模型在生成时就会尽量贴着一个"最大公约数"分布走。

结果就是:不是模型不会写有性格的文章,而是"有性格"意味着偏离平均分布,而偏离平均分布在 RLHF 的视角下经常被判定为"风险更高"。这是风格趋同化的最底层原因之一。

2.2 困惑度惩罚:模型在回避"意外"

困惑度(Perplexity)是语言模型评测中的一个常见指标,用来衡量一个序列在模型看来是否"自然"。困惑度越低,文本在统计意义上越接近训练数据中的常见表达;困惑度越高,文本越可能包含不常见、跳跃甚至错误的组合。

许多生成策略会隐式地惩罚高困惑度输出。模型在每一步都倾向于选择概率最高的 token,概率越高,越不容易出错,但也越是"别人写过无数遍的表达"。你可以把它理解为一种内在的"稳妥偏好"。

技术写作天然充满术语和固定句式,这使得模型在生成技术内容时,更容易掉进低困惑度的舒适区。它不需要创新,只需要把最常见的连接词、最常见的技术解释组合起来,就能生成一段"看起来没错"的文字。

2.3 采样温度:低温度带来高重复

在实际调用大模型 API 时,温度(temperature)是一个常见参数。温度越低,采样时越倾向于概率最高的 token,输出就越稳定、越可预测;温度越高,模型越愿意尝试概率较低的 token,输出就越跳跃、越有意外感。

很多工具为了追求"稳定输出",会把温度设得很低,默认值 0.7 或者更低。这在代码生成、数据提取等任务里是对的,但放到写作场景里就是灾难:低温度让每一篇文章都沿着最平坦的概率路径前进,重复度自然极高。

如果你发现某种 AI 写作工具产出的内容千篇一律,不妨去看它是否锁定了低温度。这通常是"工具为了确定性牺牲了多样性"的直接结果。

2.4 推荐算法的正反馈循环

写作风格趋同不只是生成模型的责任,推荐算法也在推波助澜。推荐系统倾向于把互动率高的内容推荐给更多人,而互动率高的内容往往符合大众预期,于是"符合预期的表达"被反复曝光,被更多人模仿,形成正反馈。

在内容供给侧,这会导致一个奇怪的现象:创作者不是根据自己的经验和困惑去写作,而是根据"什么标题更容易被推荐"去写作。标题、开头、案例、结论都被优化成了流量模板。当创作动机从"记录真实问题"变成"获取算法流量",趋同化就不可避免了。

到这里可以做一个中间判断:写作风格趋同化不是某一家公司的"阴谋",而是 RLHF、困惑度、采样参数、推荐算法共同作用下的统计现象。理解了这一点,我们就不该停留在"AI 文笔差"的抱怨上,而应该主动设计对抗趋同的写作流程。

3. 不只是文字问题:趋同化背后的集体心理隐忧

如果写作风格趋同只影响阅读体验,问题还不算严重。真正值得警惕的是它对思考能力的反向塑造。

3.1 写作是思维的外化

认知科学里有一个经典观点:写作不仅仅是表达思想,它本身就是一种思考工具。我们常常是写下来之后,才真正想清楚一个问题。技术文章尤其如此——架构设计、性能调优、线上故障排查,这些内容在写的过程中会被重新整理、重新审视。

当一个人的写作长期依赖批量生成的模板,他会渐渐失去"边写边想"的机会。输出变得顺畅了,思考却变浅了。这不是玄学,而是一种认知外部化的代价:你把一部分思考外包给了生成模型,模型的平均答案会慢慢覆盖你原本可能形成的独特判断。

3.2 语言习惯会反向塑造思维方式

语言学的"萨丕尔-沃尔夫假说"虽然存在争议,但它提出一个值得参考的方向:我们使用的语言会影响我们感知世界的方式。把这个思路放到写作场景中:当你长期使用同一套句式表达技术观点,你对问题的思考路径也会被这套句式固定。

举个例子:如果一个人写技术总结时永远使用"本文介绍了 XXX 的实现方法"这个句式,他很可能默认了"技术文章的任务是介绍而不是论证"。久而久之,他不再问"这个方案为什么不是最优的",因为模板没有给他留下这个提问位置。

这就是集体心理隐忧的核心:当我们的表达越来越趋同,我们看到的、想到的、能说出口的差异也会越来越少。这不仅影响内容质量,也影响一个社区、一个行业的创新能力。

3.3 信息茧房在内容供给侧的体现

你可能熟悉"信息茧房"这个概念:推荐算法只给你看你想看的内容。但你更要警惕另一个方向:内容供给侧也会被算法逼出茧房。当所有创作者都在为算法写"平均内容",读者能接触到的观点范围就会被压缩。

过去你可以在不同技术博客之间看到互相矛盾的技术选型争论,现在你可能看到的都是"标准答案"。这对新手尤其危险——他以为"大家都这么推荐",但其实只是"能被搜索到的人都这么写"。

所以,对抗写作风格趋同化,不是文人式的矫情,而是技术社区保持活力的必要条件。我们需要更多"非标准答案",需要更多带着个人经验的、有边界条件的、甚至有反对意见的技术内容。

4. 从搬运式写作到生成式写作:技术内容生态正在发生什么

技术写作生态在过去十年经历了几个阶段,理解这个演变过程,有助于我们判断自己处在哪个位置。

4.1 三种内容生产方式对比

我们可以把技术内容的产生方式粗略分成三类:

生产方式典型特征信息增量风格独特性
搬运式写作转载、翻译、复制官方文档
经验式写作记录自己的踩坑、决策、反思
生成式写作用 AI 直接生成初稿或全文中低

搬运式写作已经存在多年,它不是新鲜事。真正改变生态的是生成式写作:它的成本极低、产量极高,可以在短时间内填充大量同质化的内容页面,把经验式写作的内容淹没在搜索结果里。

从平台角度看,这是 SEO 层面的竞争;从创作者角度看,这是"辛辛苦苦写的经验帖被 AI 批量生成的答案压下去"的挫败感;从读者角度看,这是搜索质量下降、甄别成本上升。

4.2 技术博客同质化的几个典型表现

我总结几个常见表现,你可以对照自己的阅读体验:

  • 同一个框架的入门教程,标题高度相似,正文格式几乎一致;
  • 文章中的示例代码与官方 Demo 几乎相同,却缺少"官方 Demo 在真实项目里会遇到什么问题"的讨论;
  • 排错类文章只写"问题原因 + 解决方案",不写排查过程和尝试过的死路;
  • 用 AI 生成初稿后直接发布,连"AI 生成内容"的标识都没有。

这些表现的核心问题不是"用了 AI",而是"缺少真实经验"。经验才是技术写作风格差异化的根本来源。

4.3 什么是 AI 辅助写作的正确姿势

这里我要给一个明确判断:AI 完全可以用于技术写作,但它应该承担"脚手架"的角色,而不是"代笔"。脚手架帮你搭起结构、提供参考、做语法检查;代笔则替你完成所有思考。两者的分界线在于——写完之后,你是否比之前更清楚这个技术问题。

一个简单自测方法:一篇 AI 辅助完成的文章,如果去掉 AI 辅助的部分,剩下的事实、判断、取舍是否还能构成一篇有信息量的文章?如果答案是不能,说明你把决策权也外包给了模型。

5. 建立个人写作指纹:一套可落地的技术方案

理解了问题之后,我们进入实操部分。我建议每个以技术写作为日常的开发者,建立一套"个人写作指纹"体系。它不是玄学,而是由工程日志、术语表、特征自检和发布清单组成的工作流。

5.1 第一步:用个人工程日志积累独有素材

风格趋同的根本原因之一,是大多数人的写作素材来自"别人已经写过的内容"。而个人工程日志记录的,是你和项目之间发生的真实交互——这是 AI 无法凭空生成的独有素材。

推荐一个相对简单、适合技术复盘的三段式日志模板:

--- date: 2025-01-15 tags: [工程日志, 踩坑记录] topic: 日志组件升级后内存抖动排查 --- ## 1. 背景 为什么做这件事?当前系统的状态是什么?预计影响面多大? ## 2. 事件经过 实际发生的问题是什么?把报错信息、监控截图、时间线贴在这里。 ## 3. 排查过程 - 第一反应是什么方向? - 为什么这个方向最后证明不对? - 最终是如何定位到根因的? - 中间有没有尝试过其他方案?放弃的原因是什么? ## 4. 决策与结果 - 最终采用了什么方案? - 有没有做对比验证或回滚验证? - 上线后的效果如何? ## 5. 对以后的启示 如果再遇到同类问题,第一步会做什么?现在的自己和当时的自己,判断有什么不同?

这个模板不需要任何复杂工具,用 VS Code、Obsidian、Typora 甚至记事本都能维护。关键是第四部分"决策与结果"和第五部分"启示",它们记录的是决策过程,而不是结论。这部分内容是你将来写技术博客时最宝贵的素材。

5.2 第二步:维护个人术语表和案例库

技术写作的独特性,很大程度上来自你反复使用的一组"私人词汇"和"私人案例"。比如,你可能习惯用"内存水位"而不是"内存使用率";你可能总拿"秒杀系统"举例,因为你的项目确实处理过这类问题。

建议在工程日志旁边维护一份简单的术语表和案例库,用 Markdown 记录:

## 术语表 - 内存水位:表示 JVM 堆使用率,超过 85% 触发我习惯性的告警关注。 - 局部回滚:指只回滚最近一次数据变更,而不是全部发布版本。 ## 案例库 - 案例 2025-001:慢 SQL 排查,最终定位到隐式类型转换。 - 案例 2025-002:分布式锁超时导致库存扣减重复执行。

这部分内容不需要特别长,关键是保持一致。一篇技术文章如果只包含公共术语和公共案例,它很容易被 AI 复刻;一旦你加入两个自己的术语和案例,AI 就需要阅读大量上下文才能模仿,文章的信息增量也会明显提升。

5.3 第三步:用 Python 脚本统计自己的写作特征

"有风格"这件事听起来抽象,其实可以从文本特征层面拆解。你可以写一个简单的脚本,统计自己文章的词频、平均句长、高频连接词,形成一份可量化的写作画像。

下面是一个最小可运行的 Python 示例,不需要安装任何第三方依赖:

# 文件路径:writing_fingerprint.py import re from collections import Counter def analyze_text(text: str): # 按中英文句号切分句子 sentences = [s.strip() for s in re.split(r'[。!?!?\.]', text) if s.strip()] # 粗略提取中文词、英文单词和数字 words = re.findall(r'[\u4e00-\u9fa5]+|[a-zA-Z0-9]+', text) # 平均句长 avg_len = 0 if sentences: avg_len = sum(len(s) for s in sentences) / len(sentences) # 高频词 Top 10 word_counter = Counter(words) top_words = word_counter.most_common(10) return { "sentence_count": len(sentences), "avg_sentence_length": round(avg_len, 2), "total_word_count": len(words), "top_words": top_words, } if __name__ == "__main__": sample = "这是一个演示文本。用于简单统计写作特征。写作特征可以量化观察。" result = analyze_text(sample) print(result)

运行方式:

python writing_fingerprint.py

预期输出的结构大致如下:

{'sentence_count': 3, 'avg_sentence_length': 9.0, 'total_word_count': 18, 'top_words': [('写作', 2), ('特征', 2), ...]}

这个脚本本身比较简单,它用空白和正则做了粗粒度切分,并不适合严肃的中文 NLP 分析,但作为日常观察已经足够。

你可以定期对 3 到 5 篇自己写的文章跑一次脚本,观察三个指标:

  • 平均句长是否长期不变?如果一直稳定在某个区间,说明你习惯了某一种节奏的表达。
  • 高频词是否长期集中在"实现""使用""问题""解决"这类通用词?如果是,提示你需要更多个人化术语。
  • 句长分布是否高度均匀?如果每句话的长度都差不多,读起来很容易产生机械感。

这些指标不是"标准答案",它们只是帮助你发现自己的写作是否正在变得越来越"平均"。

5.4 第四步:发布前的"差异化自检清单"

写完一篇技术文章后,在点发布之前,可以花一分钟做一次自检:

  • [ ] 文章里是否有至少一个真实案例,并且包含失败或回滚细节?
  • [ ] 是否有某个技术选型是"我做了对比并选择了它",而不是"大家都这么选"?
  • [ ] 是否有至少一个结论带有边界条件,比如"在单机场景下成立,集群场景下不一定"?
  • [ ] 去掉 AI 润色的部分后,文章的核心观点是否依然完整?

如果答案多是"否",说明这篇文章的信息增量偏低,更容易被淹没在趋同化的内容池里。你不需要每篇文章都极其独特,但如果你打算认真维护技术博客,这个清单可以作为质量底线。

6. 让 AI 做脚手架而不是代笔:提示词设计

很多开发者并不是不愿意保持个人风格,而是不知道如何与 AI 协作。这里的关键是把提示词从"帮我写"改成"帮我问"。

6.1 代笔式提示词的问题

先看一个典型的代笔式提示词:

请帮我写一篇关于 Spring Boot 集成 Redis 的技术博客,要求结构清晰、语言流畅。

这个提示词会把所有主动权交给模型。模型为了满足你的要求,会调用它学到的"最平均"的技术文章模板。你得到的文章大概率四平八稳,但也大概率毫无个性。

更麻烦的是,这种流程不会积累任何真实素材。你只是把一个主题丢给模型,然后复制粘贴修改,过程中没有任何个人经验被注入。重复几次之后,你的写作技能和素材库都不会增长。

6.2 追问式提示词的模板

推荐的做法是:让 AI 充当审稿人和提问者,而不是写手。下面是一个可直接改写的提示词模板:

请帮我完善一篇技术文章,但你的角色不是代笔,而是提问者。 1. 先阅读我提供的事件记录、代码片段、报错信息。 2. 列出 3 个最有价值的问题,帮助我把技术决策讲清楚。 3. 对每个问题给出回答方向,但不要直接替我写结论。 4. 最后,把我已经写好的初稿中明显的逻辑跳跃标出来。 输入材料: [粘贴你的工程日志或报错信息]

这个模板的核心原则是:你的工程日志是输入,AI 的问题和标注是输出,最终的文字和判断仍然由你完成。

6.3 组合使用策略

在实际写作中,可以把 AI 用在三类任务上:

  • 素材整理:把工程日志中的事件经过按时间线整理成摘要;
  • 竞品对比:让 AI 列出同一个技术方案的不同观点,由你判断哪些可信;
  • 语言润色:在你完成初稿后,让 AI 只改句式、压缩冗余,但保留你的术语、案例和判断。

这三类任务都不会替代你的决策。AI 做的事是提高效率,你做的是产生差异。

7. 团队层面如何对抗内容同质化

个人写作风格的保持与团队内容文化强相关。如果团队内部的技术文档、述职材料、分享 PPT 全部使用标准模板,成员的个人写作能力会被慢慢抹平。

7.1 内部知识库去模板化

很多团队的知识库喜欢用统一模板收集技术总结,比如"背景、方案、结果"。模板是好的,它降低了阅读成本。但要留出自由区:在固定模板之外,允许成员记录"我一开始的想法是什么""我为什么推翻了它"。

建议在技术总结中加入两个固定字段:

  • "尝试过但放弃的方案";
  • "如果再选一次,会在哪些环节提前确认"。

这两个字段强制记录决策过程,正是对抗内容同质化最有效的手段。

7.2 建立"允许未完成"的技术分享文化

内容同质化的一个重要诱因是"追求完美表达"。很多人写技术文档时,会反复修改措辞,直到它听起来像官方文档。这种习惯会让文本丧失个人痕迹。

团队可以主动建设一种"允许未完成"的文化:技术分享不要求 PPT 精美,不要求表达无懈可击,但要求必须有真实数据和真实决策。宁可分享一个带瑕疵的真实排障过程,也不要分享一个精美的空壳结论。

7.3 内容评审清单

团队做技术分享评审时,可以加入几条标准:

评审点合格标准
是否有真实数据包含时序、耗时、流量、内存等一个以上量化指标
是否有决策过程写明了对比方案和放弃理由
是否有边界条件说明了该方案在什么场景下不适用
是否有个人差别至少有一个结论不是官方文档原话

如果团队内容都能满足这些标准,同质化问题会在源头被抑制。

8. 对抗趋同化的常见误区与排障思路

在实践过程中,你可能会遇到一些看似合理的做法,但它们并不能真正解决问题。这里整理成一个"排障表":

现象可能原因排查方式解决方案
文章写出来仍像 AI 教科书用了代笔式提示词,缺少真实素材检查正文是否有具体报错、决策、回滚记录回到工程日志,补充真实案例
文风摇摆不定,今天写 A 明天写 B缺少个人术语表和案例库对比最近几篇文章的高频词和句式建立并维护个人写作指纹
完全不用 AI,写作效率严重下降把 AI 当成唯一工具,没有建立辅助流程反思目前在用 AI 的环节改用"追问式提示词"组合策略
为了独特而堆砌术语黑话将表达差异化等同于术语密度请团队同事试读,观察理解成本用真实案例和决策代替术语堆砌
文章有真实案例,但阅读量仍然不高标题和结构没有匹配平台阅读习惯检查开头 300 字是否说明核心问题压缩铺垫,把问题和判断前置

这些问题中最隐蔽的是"为了独特而堆砌黑话"。风格差异化的正确方向是"表达更具体、更有针对性",而不是"用词更生僻、更难懂"。一个因为术语太密集而没人能读懂的文章,同样失去了信息传递的作用,这和"平均文本"是另一种形式的内容失效。

9. 最后的判断:在趋同时代里保留自己的坐标系

写作风格的趋同化是一个复杂的系统性问题。它不是某一家大模型的单方面影响,也不是某个平台的规则造成的,而是 RLHF 的平均偏好、低温度采样的稳定输出、推荐算法的流量正反馈共同作用的结果。

所以,对抗趋同化不能靠单次行动,更不是喊一句"拒绝 AI"就够了。

对开发者来说,更现实的路径是:把 AI 放进正确的位置。让模型做它擅长的事——快速检索资料、对比观点、整理摘要、润色语言;同时把人类最擅长的事留在自己手里——判断哪一个方案值得尝试,记录哪一次回滚带来了认知提升,以及如实写下那些没有走通的路。

个人工程日志、术语表、写作特征自检、追问式提示词、团队评审清单,是构建这套系统的五个抓手。严格来说,它们都不复杂,不需要额外安装重型工具,不需要掌握新的编程语言,只需要在写作过程中保持一点点"这真的是我想说的话吗"的警觉。

下一篇技术文章,与其从网上找一个热门模板开头,不如从你最近一次线上故障的报错记录开始。那里面有你自己的时间线、自己的错误判断、自己的修正过程。那是 AI 无法凭空生成的部分,也是你在这个趋同时代里最可靠的风格来源。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 13:58:19

CS2 Demo智能录制与事件切片:伪实战验证自动化素材生产链路

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

作者头像 李华
网站建设 2026/9/2 13:58:09

AI智能体接管70%代码PR,Uber账单零增长的工程化实践

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

作者头像 李华
网站建设 2026/9/2 13:57:01

UI-TARS Desktop实战:三步用自然语言跑通第一个GUI自动化任务

UI-TARS Desktop实战:三步用自然语言跑通第一个GUI自动化任务 【免费下载链接】UI-TARS-desktop The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra 项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-des…

作者头像 李华
网站建设 2026/9/2 13:55:17

AI辅助开发像素风俯视角射击游戏:从美术生成到代码实现

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

作者头像 李华