news 2026/10/7 19:38:43

AI营销技能包实战:用Claude Code自动化SEO与CRO

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI营销技能包实战:用Claude Code自动化SEO与CRO

1. 从“marketingskills”说起:一个被低估的AI营销技能库

第一次看到“marketingskills”这个词,是在一个做独立站的朋友群里。有人甩了张截图,说用Claude Code跑了一套营销技能包,把落地页的转化率从1.8%拉到了3.2%。群里瞬间炸了锅,一半人问“Claude Code是什么”,另一半人问“技能包在哪下载”。

这事让我意识到一个挺有意思的现象:大部分人对AI工具的理解还停留在“聊天机器人”阶段,而另一小撮人已经在用AI agents批量执行营销任务了。marketingskills这个项目,本质上就是给AI agents装上一套“营销大脑”——把SEO、CRO、文案撰写、竞品分析这些零散的营销动作,封装成结构化的技能模块,让AI能按需调用、自动执行。

说白了,它解决的是一个很具体的痛点:你知道SEO重要,知道落地页要优化,知道邮件序列要打磨,但你不可能同时精通所有环节,更不可能24小时盯着数据做迭代。marketingskills的思路是,把这些重复性高、逻辑相对固定的营销工作,拆解成AI能理解的“技能单元”,然后通过Claude Code这类工具去调度执行。

这套东西适合谁?独立站站长、出海营销人员、增长黑客、以及任何需要一个人干一个团队活儿的创业者。如果你已经在用Claude Code或者类似的AI编程助手,那marketingskills相当于给你配了一个不要工资的营销实习生。如果你还没接触过Claude Code,也不用慌,后面我会把安装配置到实际调用的完整链路拆开讲。

2. 核心思路拆解:为什么是“技能包”而不是“提示词合集”

2.1 提示词工程的瓶颈在哪里

过去两年,大家用AI做营销基本停留在“写提示词”阶段。比如你想让AI帮你写产品描述,就编一段提示词:“你是一个资深文案,请为以下产品写一段吸引人的描述,目标用户是……”。这种方法能用,但有几个致命问题。

第一,提示词不可复用。你写了一段很好的SEO标题生成提示词,换一个项目就得重新调整,因为产品品类、目标关键词、竞争环境全变了。第二,提示词没有执行逻辑。你让AI“分析竞品”,它只能基于你给的信息瞎编,没法真的去抓取数据、对比参数、生成报告。第三,提示词之间是孤立的。写文案的提示词和做关键词研究的提示词互不联通,你得手动把A的输出复制到B的输入里。

marketingskills的解法是把“提示词”升级成“技能”。一个技能不只是几行指令,它包含:触发条件(什么时候用这个技能)、输入参数(需要提供什么数据)、执行步骤(分几步做、每步调用什么工具)、输出格式(结果长什么样)、以及错误处理(数据缺失怎么办)。这就像把一张菜谱升级成一条自动化生产线。

2.2 技能包的分层架构

我拆过几个类似的营销技能项目,marketingskills的结构大致可以分成三层。

最底层是数据接入层。营销离不开数据,关键词排名、页面流量、转化率、竞品价格,这些数据得先能进来。技能包通常会定义好数据源的接入方式,比如通过API拉取搜索控制台的数据,或者用爬虫抓取竞品页面。这一层决定了技能的上限——数据质量不行,后面全是白搭。

中间层是技能逻辑层。这是核心,每个技能就是一个独立的营销动作。比如“关键词聚类”技能,输入是一堆关键词,输出是分好组的主题集群;“落地页诊断”技能,输入是一个URL,输出是转化要素的检查清单和改进建议;“邮件序列生成”技能,输入是用户画像和产品卖点,输出是5封邮件的完整文案。

最上层是调度编排层。单个技能再强,也得有人把它们串起来。比如一个完整的独立站SEO流程可能是:先用“关键词研究”技能找到机会词,再用“内容大纲生成”技能产出文章结构,接着用“SEO文案撰写”技能填充内容,最后用“结构化数据标记”技能加上FAQ schema。这一层通常由Claude Code这样的agent框架来负责,根据任务目标自动调用相应技能。

2.3 为什么选Claude Code作为执行载体

市面上能跑AI agent的工具不少,为什么marketingskills这类项目往往首选Claude Code?我自己的体会是三个原因。

一是终端原生。Claude Code直接跑在命令行里,这意味着它可以调用系统命令、读写文件、执行脚本。营销技能经常需要处理本地文件,比如读取一个CSV关键词表,生成一堆Markdown格式的文章草稿,这些操作在终端环境里最顺手。你不需要在网页界面和本地文件之间来回倒腾。

二是上下文管理。营销任务往往涉及大量文本,一个落地页的完整分析可能需要读取HTML、CSS、用户评论、竞品页面。Claude Code的上下文窗口够大,而且支持通过文件引用来扩展上下文,不会聊着聊着就“失忆”。

三是模型可替换。虽然Claude Code默认用Claude系列模型,但它支持接入第三方API,包括国内的DeepSeek、Qwen、GLM等。这对国内做独立站的朋友很关键——你不需要依赖特定地区的网络环境,用国内模型也能跑通大部分营销技能。具体怎么配置,后面会详细讲。

3. 环境准备:从零搭建Claude Code运行环境

3.1 安装Claude Code的几种方式

Claude Code的安装方式取决于你的操作系统。我分别在macOS、Ubuntu和Windows上装过,踩了一些坑,这里把最稳的路径整理出来。

macOS安装最简单,官方提供了Homebrew的安装方式。打开终端,执行:

brew install claude-code

装完之后用claude --version验证一下。如果提示命令找不到,可能是Homebrew的路径没配好,执行eval "$(/opt/homebrew/bin/brew shellenv)"再试。

Ubuntu安装稍微麻烦一点,因为Claude Code对Node.js版本有要求。我实测下来,Node 18和Node 20都能跑,但Node 16会报错。先确认Node版本:

node --version

如果低于18,用nvm装一个新版本:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash source ~/.bashrc nvm install 20 nvm use 20

然后通过npm全局安装:

npm install -g @anthropic-ai/claude-code

Windows安装是最容易出问题的。官方文档提到Claude Code对Windows的支持有限,尤其是32位系统完全不兼容。如果你用的是64位Windows 10或11,建议在WSL2里装,体验和Ubuntu一致。直接在PowerShell里装可能会遇到路径问题和权限报错。我试过一次原生Windows安装,卡在“your organization has disabled claude subscription access”这个提示上,后来切到WSL2就顺利了。

提示:安装过程中如果遇到网络相关的报错,先检查npm的registry配置。国内用户可以把registry临时切到淘宝镜像加速下载,但装完之后建议切回官方源,避免后续更新出问题。

3.2 VS Code插件配置与终端集成

Claude Code有VS Code插件,装完之后可以在编辑器里直接调用。插件的配置项不多,但有几个关键参数需要留意。

打开VS Code的设置,搜索“claude”,能看到几个配置项。claude-code.executablePath要指向你安装的Claude Code可执行文件路径。macOS下通常是/opt/homebrew/bin/claude,Ubuntu下是/usr/local/bin/claude。如果这个路径填错了,插件会提示找不到命令。

另一个重要的是claude-code.autoStart,建议设为true,这样打开VS Code时Claude Code会自动在终端里启动。但如果你同时开了多个VS Code窗口,可能会冲突,这时候改成手动启动更稳。

插件装好之后,在VS Code里按Ctrl+Shift+P(macOS是Cmd+Shift+P),输入“Claude Code: Start”就能唤起终端会话。我习惯把终端面板放在编辑器右侧,这样左边看代码或文案,右边直接给Claude下指令,效率很高。

3.3 接入第三方模型:以DeepSeek和Qwen为例

Claude Code默认走Anthropic的API,但国内用户经常遇到两个问题:一是账号注册门槛,二是网络稳定性。好在Claude Code支持通过环境变量切换API端点,可以接入DeepSeek、Qwen、GLM等国内模型。

以DeepSeek为例,先拿到API Key,然后在终端里设置环境变量:

export ANTHROPIC_BASE_URL="https://api.deepseek.com/v1" export ANTHROPIC_API_KEY="你的DeepSeek API Key" export ANTHROPIC_MODEL="deepseek-chat"

设置完之后再启动Claude Code,它就会用DeepSeek的模型来响应。Qwen的配置类似,把BASE_URL换成DashScope的端点,MODEL换成qwen-max或qwen-plus。

这里有个细节要注意:不同模型对工具调用的支持程度不一样。Claude Code的很多功能依赖模型能正确解析和执行工具调用指令。我实测下来,DeepSeek和Qwen在基础对话和文本生成上没问题,但在复杂的多步工具调用场景下,偶尔会出现格式解析错误。如果遇到这种情况,可以试试把任务拆得更细,或者换用GLM-4,它的工具调用稳定性在我这边表现更好。

注意:切换模型后,之前基于Claude模型调优的提示词可能需要微调。不同模型对指令的理解风格有差异,比如Claude对长上下文和复杂指令的遵循度更高,而国内模型在中文营销文案的生成上更接地气。根据任务类型灵活切换,不要指望一个模型打天下。

4. marketingskills核心技能模块拆解

4.1 SEO技能组:从关键词到结构化数据

SEO是marketingskills里最成熟的技能组,也是独立站站长最刚需的部分。我把它拆成四个核心技能来看。

关键词机会挖掘技能。输入是一个种子词或一个竞品域名,输出是一组按搜索意图和竞争度分类的关键词列表。这个技能的执行逻辑通常是:先通过API或爬虫获取相关关键词,然后用AI对关键词进行意图分类(信息型、导航型、交易型、商业调查型),最后根据搜索量和竞争度打分排序。实操中我发现,意图分类这一步AI做得比传统工具准,因为它能理解关键词背后的语义,而不是只看词形匹配。

内容大纲生成技能。拿到关键词之后,下一步是生成文章结构。这个技能会分析搜索结果前10名的页面结构,提取出共性的话题模块,然后结合目标关键词生成一个比竞品更全面的大纲。我试过用这个技能给一个B2B产品页生成大纲,它自动识别出竞品普遍缺少“实施成本对比”和“迁移方案”两个模块,补上之后页面的停留时间明显提升。

SEO文案撰写技能。这是最耗时的环节,也是AI最能发挥价值的地方。技能会按照大纲逐段生成内容,同时自动嵌入目标关键词和语义相关词。这里有个关键参数是关键词密度,我一般设在1.5%到2.5%之间,太高会被搜索引擎判定为堆砌,太低又起不到优化作用。技能包里通常会内置一个密度检查函数,生成完自动算一遍。

FAQ结构化数据标记技能。这就是热搜里提到的“谷歌SEO的FAQPage结构化数据”。简单说,就是在页面HTML里加一段JSON-LD代码,告诉搜索引擎“这个页面包含问答内容”。加了之后,搜索结果里可能会展示折叠的问答列表,点击率能提升不少。这个技能会自动从文章内容里提取问答对,生成符合规范的JSON-LD代码,直接插入页面头部。

{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "独立站SEO多久能见效?", "acceptedAnswer": { "@type": "Answer", "text": "通常需要3到6个月,具体取决于竞争度和内容质量。" } } ] }

提示:FAQ结构化数据不是加了就一定会展示,搜索引擎会根据页面质量和用户查询意图决定是否启用。但加了不会有坏处,而且对语音搜索和AI摘要的抓取有正向作用。

4.2 CRO技能组:让落地页自己会说话

CRO(转化率优化)是另一个重头戏。marketingskills里的CRO技能组,核心思路是用AI模拟用户视角,找出落地页的转化阻力。

首屏诊断技能。输入是一个URL,输出是对首屏五个关键要素的评分:价值主张清晰度、行动号召可见性、信任信号密度、视觉焦点合理性、加载速度感知。这个技能会抓取页面首屏的HTML和CSS,分析文本内容、按钮位置、图片alt标签等。我拿自己的落地页跑过一次,它指出我的CTA按钮颜色和背景对比度不够,后来改成高对比色,转化率涨了0.4个百分点。

异议处理检查技能。这个技能会扫描页面内容,识别出用户可能产生的购买疑虑,然后检查页面是否针对这些疑虑提供了答案。比如卖软件订阅,用户会担心“数据安全吗”“能随时取消吗”“有免费试用吗”,如果页面上找不到这些信息,技能会标记为“未处理异议”。我一般会把这个技能的输出直接变成FAQ模块的内容来源。

A/B测试方案生成技能。当你不知道改哪里的时候,这个技能会根据页面现状生成一组测试假设,按预期影响力和实施难度排序。比如它可能建议“把社会证明从页面底部移到价格表上方”,并给出预期提升幅度。当然,AI给的预期值只是参考,实际效果还得跑数据验证。

4.3 内容营销技能组:从选题到分发

内容营销不只是写文章,还包括选题策划、格式优化、分发策略。marketingskills在这块有几个很实用的技能。

选题日历生成技能。输入是产品定位和目标受众,输出是一个月的选题排期,包含标题、目标关键词、内容类型、发布渠道。这个技能会结合行业热点和搜索趋势,避免你拍脑袋想选题。我一般会把它和关键词技能联动,先用关键词技能找到机会词,再把词喂给选题技能生成排期。

多平台内容改写技能。同一篇核心内容,改写成适合不同平台的版本。比如一篇深度博客,改写成LinkedIn的短文、Twitter的线程、Reddit的讨论帖、邮件的摘要。这个技能的关键在于理解不同平台的内容消费习惯——LinkedIn偏专业洞察,Twitter偏观点金句,Reddit偏真实经验。AI在这方面的表现比人工改写快得多,而且不会因为改多了就“串味”。

邮件序列生成技能。输入是用户旅程阶段和产品卖点,输出是5到7封邮件的完整序列,包含主题行、正文、CTA。我试过用这个技能给一个SaaS产品生成试用期邮件序列,它自动把“功能教育”和“案例证明”交替安排,节奏感比我自己写的还合理。主题行的打开率预测功能也挺有意思,它会根据历史数据给出一个预估打开率,虽然不一定准,但能帮你排除明显不行的选项。

5. 实操全流程:用marketingskills跑一个独立站SEO项目

5.1 项目初始化与数据准备

假设你有一个卖手工皮具的独立站,想通过SEO提升自然流量。第一步是初始化项目目录。在终端里创建一个文件夹,然后启动Claude Code:

mkdir leather-seo && cd leather-seo claude

进入Claude Code的交互界面后,先加载marketingskills技能包。如果你是从GitHub克隆的,通常会有个skills/目录,里面是各个技能的Markdown定义文件。用Claude Code的/load命令加载:

/load skills/seo/

加载成功后,Claude会列出可用的SEO技能。接下来准备数据。你需要提供种子关键词和竞品域名。我一般会先手动整理一个种子词列表,比如“手工皮包”“真皮钱包”“定制皮带”等,存成seeds.txt。竞品域名找三个排名靠前的独立站,存成competitors.txt。

5.2 关键词挖掘与聚类实操

数据准备好之后,给Claude下指令:

使用关键词机会挖掘技能,读取seeds.txt和competitors.txt,输出按意图分类的关键词列表,保存为keywords.csv

Claude会依次执行:读取文件、调用技能逻辑、生成关键词、分类、打分、写入CSV。这个过程大概需要2到3分钟,取决于关键词数量。我实测下来,100个种子词能扩展出800到1200个相关词,经过意图分类和竞争度筛选后,剩下200到300个值得做的词。

拿到keywords.csv之后,下一步是聚类。关键词聚类是把语义相近的词分到一组,每组对应一个页面。比如“手工皮包推荐”“手工皮包品牌”“手工皮包哪家好”应该聚成一类,对应一篇“手工皮包选购指南”。聚类技能会输出一个clusters.json,每个簇包含主题词、相关词、建议页面标题。

实操心得:聚类结果不要全信,AI有时候会把搜索意图不同的词硬凑到一起。我一般会人工过一遍,把明显不合理的簇拆开或合并。这一步花10分钟,能省后面很多返工。

5.3 内容生成与结构化数据注入

聚类完成后,对每个簇调用内容生成技能。以“手工皮包选购指南”这个簇为例:

使用内容大纲生成技能,基于clusters.json中的第3个簇,生成文章大纲

Claude会分析搜索结果前10名的结构,输出一个包含H2和H3的大纲。我一般会在这个阶段介入,调整一下大纲的逻辑顺序,补充一些竞品没有覆盖的角度。

大纲确认后,继续:

使用SEO文案撰写技能,按照大纲生成完整文章,目标关键词密度2%,保存为article-03.md

生成过程中,Claude会自动嵌入关键词和语义相关词。生成完之后,再调用FAQ结构化数据技能:

使用FAQ结构化数据标记技能,读取article-03.md,生成JSON-LD代码,保存为article-03-schema.json

最后把文章和schema代码一起部署到网站上。整个流程从关键词到可发布内容,熟练之后大概40分钟能跑完一个簇。如果手动做,光写一篇2000字的SEO文章就得两三个小时。

5.4 效果追踪与技能迭代

内容发布后,用“排名追踪”技能定期检查关键词排名变化。这个技能会读取搜索控制台的API数据,对比上周和本周的排名,标记出上升和下降的词。对于下降的词,可以调用“内容诊断”技能分析原因——是内容过时了,还是竞品更新了更强的页面。

我自己的习惯是每周一早上跑一次排名追踪,把下降超过5位的词挑出来,让Claude分析原因并给出优化建议。这个循环跑上两三个月,自然流量的增长曲线会很明显。

6. 常见问题与排查技巧实录

6.1 安装与配置类问题

问题一:安装时提示“your organization has disabled claude subscription access for claude code”

这个报错通常出现在用企业账号登录的情况下。解决办法是换个人账号,或者用API Key的方式认证而不是订阅账号。如果你是通过环境变量配置的第三方API,检查一下ANTHROPIC_API_KEY是否设置正确,有时候是Key过期了。

问题二:Windows下提示“由于与64位版本的Windows不兼容”

Claude Code的某些依赖在32位Windows上跑不了。确认你的系统是64位,然后在WSL2里安装。如果非要在原生Windows下跑,试试用npm的--force参数强制安装,但稳定性没保证。

问题三:VS Code插件找不到Claude Code命令

检查claude-code.executablePath配置。在终端里执行which claude(macOS/Linux)或where claude(Windows)拿到真实路径,填到配置里。如果路径里有空格,用引号包起来。

6.2 技能执行类问题

问题四:技能加载后没有反应

先确认技能文件的格式是否正确。marketingskills的技能定义通常是Markdown文件,包含YAML front matter。如果front matter的格式错了,Claude会解析失败。用/skills命令查看已加载的技能列表,确认目标技能在列。

问题五:关键词挖掘技能返回空结果

大概率是数据源的问题。检查seeds.txt里的词是否有拼写错误,或者竞品域名是否可访问。有些技能依赖外部API,如果API Key没配或者额度用完了,也会返回空。在Claude Code里用/debug命令可以看到详细的错误日志。

问题六:生成的内容关键词密度过高

这是常见问题,AI有时候会过度优化。在技能参数里把密度上限设死,比如max_density: 2.5。如果已经生成了,用“内容优化”技能跑一遍,它会自动替换掉一些重复的关键词,用同义词或代词替代。

6.3 模型切换类问题

问题七:切换到DeepSeek后工具调用报错

DeepSeek对Claude Code的工具调用协议支持不完整,尤其是多步嵌套调用。解决办法是把复杂任务拆成多个简单指令,一步一步来。或者换用GLM-4,它的工具调用兼容性更好。

问题八:国内模型生成的中文内容质量不错,但英文内容差强人意

这是模型训练数据分布的问题。做英文独立站的话,建议英文内容还是用Claude或GPT系列生成,中文内容用国内模型。可以在技能配置里按语言指定不同的模型端点,实现混合调度。

问题类型典型报错排查方向解决动作
安装失败命令找不到PATH配置检查安装路径并加入环境变量
认证失败subscription access disabled账号类型换个人账号或改用API Key
技能无响应无输出技能文件格式检查YAML front matter
数据为空返回空列表API额度/数据源检查Key和输入文件
工具调用错误格式解析失败模型兼容性换模型或拆分任务

避坑技巧:每次切换模型或更新技能包之后,先跑一个简单的测试任务验证链路通畅,别直接上生产任务。我吃过一次亏,更新技能包后没测试,跑了一晚上的批量任务全废了,因为新版本的输出格式变了。

7. 技能包的扩展与自定义

7.1 什么时候需要自己写技能

marketingskills自带的技能覆盖了大部分通用营销场景,但每个业务都有特殊性。比如你做的是订阅制手工皮具,可能需要一个“复购提醒邮件生成”技能,根据用户的购买周期自动生成提醒邮件。这种垂直场景的技能,就得自己写。

判断标准很简单:如果某个营销动作你每周都要重复做,而且步骤相对固定,那就值得封装成技能。反之,如果是一次性的、需要大量人工判断的任务,写技能的时间成本可能比手动做还高。

7.2 技能文件的基本结构

一个技能文件通常包含几个部分。元信息定义技能名称、版本、作者、依赖。输入参数定义需要提供什么数据,每个参数的类型和是否必填。执行步骤是核心,用自然语言描述AI应该按什么顺序做什么。输出格式定义结果的结构,可以是Markdown、JSON、CSV等。错误处理定义当数据缺失或API失败时怎么办。

写技能的时候有个原则:步骤要具体到AI能执行,但不要具体到限制AI的灵活性。比如“分析竞品页面的转化要素”比“检查竞品页面是否有CTA按钮、是否有社会证明、是否有价格锚点”更好,因为前者让AI自己判断什么是重要的转化要素,后者可能漏掉一些你没预料到的因素。

7.3 技能组合与工作流编排

单个技能的价值有限,技能组合起来才能形成工作流。Claude Code支持用/workflow命令定义多技能编排。比如一个完整的“新客获取”工作流可能是:关键词研究 → 内容生成 → 落地页诊断 → 邮件序列生成 → 社交媒体改写。

编排的时候要注意技能之间的数据传递。前一个技能的输出格式要能被后一个技能正确解析。我一般会在技能之间加一个“格式转换”步骤,确保数据接口对齐。另外,工作流里最好加一个“人工确认”节点,在关键决策点停下来让你审核,避免AI一路跑偏。

8. 关于AI营销技能的一些个人体会

跑了几个月的marketingskills,最大的感受是:AI不是替代营销人员,而是把营销人员从重复劳动里解放出来。以前我花80%的时间在写文案、调格式、导数据,现在这些事AI干了,我花80%的时间在想策略、看数据、做判断。

但有个前提:你得知道什么是好的营销。AI能生成100个标题,但选哪个、为什么选,还是得靠人的判断。技能包再强,也只是执行工具,策略方向错了,执行越快死得越快。

另外,别指望一套技能包打天下。不同行业、不同阶段的业务,需要的技能组合完全不同。早期独立站最需要的是关键词和内容技能,成长期最需要的是CRO和邮件技能,成熟期最需要的是竞品监控和品牌词防御技能。根据你的阶段选技能,比盲目追求“全技能包”更有效。

最后分享一个小技巧:每次用技能生成内容后,别急着发布。把AI的输出当成初稿,自己过一遍,改掉那些“AI味”太重的表达。AI写的东西逻辑通顺但缺乏个性,加一两句你自己的真实经验或观点,内容的质量和可信度会提升一个档次。这个动作花不了几分钟,但效果立竿见影。

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

多Agent协作的可达性问题:Agent-Reach框架设计与实践

Agent-Reach 这名字是我去年年底折腾多智能体系统时定下来的。当时团队内部在做一批自动化任务编排,发现一个特别尴尬的现象:单个 Agent 单聊模型表现挺好,一旦让它们协作干一件稍微复杂点的事,比如“查资料 → 整理数据 → 生成报…

作者头像 李华
网站建设 2026/10/7 19:35:04

射频收发机设计实战:架构选型、指标拆解与PCB调试经验

射频收发机这五个字,放在系统工程师眼里是框图里的一个小方块,放在射频工程师手里就是一块要反复调匹配、测误码、压杂散、抠噪声系数的硬骨头。RF Transceiver,射频收发机,是无线通信设备最前端的核心电路,它直接决定…

作者头像 李华
网站建设 2026/10/7 19:35:03

手把手MCP教学:客户端连接多服务器时把Base URL改到TaoToken

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

作者头像 李华