同一件工具(墨滴),在头条那里【不在支持列表里】,在知乎这里【在列表里】。 但本节真正的要点不是这条,而是——体检的重心变了:头条要查【哪些元素会坏】(平台不支持,只能改截图),知乎要查【哪些元素会掉】(平台支持,但转一道手容易丢格式)。同一个检查项,两个平台的正确动作完全相反。
5.4.1 刚放行的稿子还是 Markdown,本节把它变成【能粘进知乎编辑器的富文本】,交给 5.4.3。它的位置对应 4.4.3(都是排版),但那时的平台是头条、工具不在支持列表;这次两个条件都变了——下面第三节会把这两处差别讲清楚。
一、墨滴与知乎:这次它在支持列表里
先回顾 4.4.3 那条结论:墨滴的公开支持平台是【公众号、知乎、掘金、CSDN】——头条不在其中。
所以本章这一节的条件好一些:知乎就在墨滴的公开支持列表里。这意味着两件事:
| 项 | 说明 |
|---|---|
| 主题适配 | 墨滴为主题样式做了平台适配——选【知乎】那套,渲染出来的样式更贴知乎本身的排版 |
| 跳转入口 | 支持列表里的平台,通常有直接跳过去的入口,少一次手动切窗口 |
但别把这件事想大。 墨滴的产物始终是【剪贴板里的一段富文本】——它不替你把文章发到知乎(发不出去,见 5.4.3:知乎没有对外公开的写入接口)。"在支持列表里"带来的好处是【样式更贴 + 少切一次窗口】,不是【自动发布】。
二、一个关键差别:知乎对 Markdown 的容忍度高得多
这是本节与 4.4.3 最实质的不同,它直接改变了体检的内容。
| 元素 | 头条 | 知乎 |
|---|---|---|
| 表格 | 不稳,建议改截图 | 原生支持 |
| 代码块 | 支持差,建议改截图 | 原生支持 |
| 数学公式 | 基本不支持 | 原生支持(LaTeX) |
| 一级标题 | 会与标题框重复 | 同样会重复 |
| 外链图片 | 只认自己的素材库 | 同样只认自己的图床 |
看出来了吗——下半张表两行没变,上半张表三行全变了。
| 变了的那三行 | 没变的那两行 | |
|---|---|---|
| 元素 | 表格、代码块、公式 | 一级标题、外链图 |
| 原因 | 这些是【平台能力】问题 | 这些是【结构规则】问题 |
| 会怎样 | 头条天生不支持,知乎天生支持 | 两个平台都要求【正文不要重复标题】【图片走自家图床】 |
| 正确动作 | 头条:删掉改截图;知乎:保留,但到编辑器里原生重做 | 两个平台都是:删掉 / 换图床 |
检查一个元素该怎么处理,问两个问题: ① 平台【支持】它吗? → 不支持:删掉或换表达(截图);支持:留着。 ② 粘过去的路上【会变】吗? → 会变:到平台上重做一遍;不会变:不用管。
4.4.3 的表格是【① 不支持】→ 改截图;本节的表格是【① 支持,但 ② 会变】→ 到知乎重做。 两条路径的终点不同,但都不是【原样粘过去就行】。
三、所以体检的重心从【会坏】移到【会掉】
这句话是本节的核心。 两个平台的体检都要做,但要查的东西不一样:
| 4.4.3(头条) | 5.4.2(知乎) | |
|---|---|---|
| 第一类:平台不支持的 | 这节的重点(表格/代码块 → 改截图) | 基本不存在(知乎都支持) |
| 第二类:平台支持但会掉的 | 也要留意 | 这节的重点(表格/公式 → 到知乎重做) |
| 第三类:结构规则 | 一级标题、外链图、双标题、字数 | 同(一级标题、外链图、双标题) |
| 第四类:形态分档 | 没有 | 有——正文底线按【文章/回答/想法】三档不同 |
| 第五类:字段上限 | 没有 | 有——话题最多 5 个 |
第四、五类是本节的知乎增量,都和 5.1.1 讲的【三路形态互不通用】直接相关:
- 字数底线按形态分:想法(短内容)的底线低于回答、回答低于文章——"多少字才够"这件事,在知乎没有统一答案,要看形态;
- 话题有硬上限(5 个):多填了不会报错,只会静默丢弃——这类【不报错但被忽略】的规则最阴,你以为 7 个都生效了,实际只有前 5 个。
知乎的规则里有这么一条:连续 3 天发布的内容低于 100 字、或者含大量无关导流信息,会导致创作行为分归零重计。 所以那条 100 字底线不是【单篇】的,是【账号级】的——一篇 19 字的想法不会有任何事,但连着几天发就出事。 这也解释了为什么体检器里要设这条检查:它防的不是这一篇,是这一串。
四、RPA 要做的六步
与 4.4.3 同形,只有第 ④ 步变了:
① 打开墨滴编辑器 → ② 清空上一次的内容
↓
③ 把这一篇的 Markdown 粘贴进去
↓
④ 选【知乎】那套主题(一次选定,整批复用) ← 4.4.3 是【选一个统一主题】
↓
⑤ 点【复制】——样式进了剪贴板的富文本槽位
↓
⑥ 切到知乎编辑器 → Ctrl+V → 回读校验(样式真的进来了吗)
其余三条要点与 4.4.3 完全一致,这里只重复结论:
| 步 | 要点 |
|---|---|
| ② 清空 | 墨滴会记住上一次的内容——不清空会把上一篇的尾巴带进这一篇 |
| ④ 主题 | 一次定好,整批复用;批量里每篇换主题会让账号看起来很乱 |
| ⑥ 回读 | 【点了复制】不等于【样式真在剪贴板里】——必须回读确认 |
五、⚠️ 图床:知乎这一侧的真实要求
这一条是本节最容易翻车的地方,而且它与 4.4.3 的结论同源、但细节不同。
| 事实 | 说明 |
|---|---|
| 知乎的正文图和题图会走它自己的图床 | 直接贴一个外部图床链接经常拉不下来——尤其境外图源,知乎服务端压根抓不到 |
| 稳妥做法 | 先把图片存到本机,再用本机文件路径引用,让平台自己转存 |
| 墨滴有免费图床 | 它解决的是【链接不会失效】——但【墨滴图床 ≠ 知乎图床】 |
回忆 4.4.3 那条警告:墨滴图床解决的是链接不失效,而头条的正文图只认它自己素材库里的图。知乎这一侧完全一样——你把带墨滴图床地址的稿子粘进知乎,图可能拉不到。
所以这一条要在 5.4.3 处理:正文图先上传到知乎自己的图床,再把地址换掉。本节只负责把它标出来。
"图能在墨滴里看见"和"图能在知乎里显示",是两件事。 图的【位置】对了,不代表图的【来源】被对方认。 这条与 4.4.3 那条一字不差——换了平台,这条坑没变。
六、动手 Demo:粘贴前体检器(知乎版)
它是 4.4.3 那个体检器的改编版:保留了同源的三项(一级标题、外链图、双标题),换掉了三项(表格/代码块从【必须改截图】降级为【到知乎重做】),新增了两项知乎专有(字数按形态分档、话题上限 5)。
# -*- coding: utf-8 -*-
"""5.4.2 Demo:粘贴前体检器(知乎版)—— 挑出【过墨滴会坏】和【过知乎会踩线】的东西(纯标准库)"""
import re
FENCE = chr(96) * 3 # 三个反引号(写成这样是为了不破坏笔记自身的代码围栏)
DOCS = {
"M1": {"form": "文章", "topics": ["收纳", "家居"],
"md": """# 玄关收纳我只留了三件东西
玄关永远堆着鞋和快递盒,出门前翻三分钟找不到钥匙。
## 玄关收纳我只留了三件东西
三件加起来占不到半平米,门口却清爽了一倍。
"""},
"M2": {"form": "回答", "topics": ["收纳", "家居", "装修", "小户型", "租房", "好物", "整理"],
"md": """## 先分三档预算
| 档位 | 花多少 | 买什么 |
|---|---|---|
| 一档 | 200 元 | 换鞋凳、钥匙盘 |
| 二档 | 500 元 | 窄边鞋柜、收纳箱 |
放不下的时候,可以算一下:$$\\frac{可用进深}{鞋长} \\geq 1.2$$
一档两百块就够了,真的不用上定制。"""},
"M3": {"form": "想法", "topics": ["收纳"],
"md": """今天把玄关清空了,只留换鞋凳和钥匙盘。"""},
}
def check(form, topics, md):
bad, warn = [], []
# 1. 一级标题:正文里不该出现(会与平台标题框重复)
if re.search(r"^#\s+", md, re.M):
bad.append("含一级标题 # —— 文章有独立的标题框,正文里再写一遍会重复")
# 2. 外链图片:知乎正文图要走它自己的图床
urls = re.findall(r"!\[.*?\]\((https?://[^)]+)\)", md) + \
re.findall(r'<img[^>]+src="(https?://[^"]+)"', md)
if urls:
bad.append("含外链图片 %d 张 —— 知乎正文图认自己的图床,外链容易拉不到" % len(urls))
# 3. 正文里重复出现标题(文章形态)
hs = set(re.findall(r"^#{1,3}\s+(.+)$", md, re.M))
for h in hs:
if md.count(h) > 1:
bad.append("标题【%s】在正文里出现了两次 —— 平台标题是独立字段" % h[:18])
# 4. 话题数量上限 5
if len(topics) > 5:
bad.append("话题 %d 个,超过知乎上限 5 —— 多出来的会被丢掉" % len(topics))
# 5. 复杂结构:知乎支持,但从墨滴粘过来最容易掉格式(这条是提示,不是阻断)
structs = []
if re.search(r"^\s*\|", md, re.M):
structs.append("表格")
if FENCE in md or "~~~" in md:
structs.append("代码块")
if "$$" in md or re.search(r"\\frac|\\sqrt", md):
structs.append("数学公式")
if structs:
warn.append("含【%s】—— 知乎原生支持这些,但经墨滴转成富文本再粘,最容易掉格式;"
"建议到知乎编辑器里用原生插入" % "、".join(structs))
# 6. 行内 HTML 带样式
if re.search(r"<[a-zA-Z]+[^>]*style=", md):
warn.append("含带 style 的行内 HTML —— 粘贴时样式会被剥掉")
# 7. 字数:按形态分档
plain = re.sub(r"[#*`>|\[\]()!$\\{}]", "", md)
n = len(re.sub(r"\s+", "", plain))
FLOOR = {"想法": (100, 200), "回答": (300, 800), "文章": (800, 1500)}
hard, soft = FLOOR.get(form, (300, 800))
if n < hard:
bad.append("正文仅 %d 字,低于【%s】的底线 %d 字" % (n, form, hard))
elif n < soft:
warn.append("正文 %d 字,低于【%s】的建议值 %d 字(提示,不阻断)" % (n, form, soft))
return bad, warn, n
print("=" * 74)
print("一、逐篇体检(共 %d 篇)" % len(DOCS))
print("=" * 74)
tb = tw = 0
for k, d in DOCS.items():
bad, warn, n = check(d["form"], d["topics"], d["md"])
tb += len(bad)
tw += len(warn)
print()
print(" [%s] %s 正文 %d 字 话题 %d 个 %s"
% (k, d["form"], n, len(d["topics"]),
"OK" if not bad and not warn else "%d 阻断 / %d 提示" % (len(bad), len(warn))))
for b in bad:
print(" ✗ %s" % b)
for w in warn:
print(" ! %s" % w)
print()
print("=" * 74)
print("二、汇总")
print("=" * 74)
print(" 阻断 %d 条(不改就别往墨滴里粘);提示 %d 条(粘完自己去看一眼)。" % (tb, tw))
print(" 注意提示里的那一类(表格/代码块/公式):")
print(" 它们和 4.4.3 的结论【刚好相反】——")
print(" 头条是【平台不支持,必须改截图】;知乎是【平台支持,但转一道手容易掉】。")
print(" 所以这条不是【删掉】,是【到知乎编辑器里重做一遍】。")
实际运行输出(真跑,不是示意):
==========================================================================
一、逐篇体检(共 3 篇)
==========================================================================
[M1] 文章 正文 112 字 话题 2 个 4 阻断 / 0 提示
✗ 含一级标题 # —— 文章有独立的标题框,正文里再写一遍会重复
✗ 含外链图片 1 张 —— 知乎正文图认自己的图床,外链容易拉不到
✗ 标题【玄关收纳我只留了三件东西】在正文里出现了两次 —— 平台标题是独立字段
✗ 正文仅 112 字,低于【文章】的底线 800 字
[M2] 回答 正文 96 字 话题 7 个 2 阻断 / 1 提示
✗ 话题 7 个,超过知乎上限 5 —— 多出来的会被丢掉
✗ 正文仅 96 字,低于【回答】的底线 300 字
! 含【表格、数学公式】—— 知乎原生支持这些,但经墨滴转成富文本再粘,最容易掉格式;建议到知乎编辑器里用原生插入
[M3] 想法 正文 19 字 话题 1 个 1 阻断 / 0 提示
✗ 正文仅 19 字,低于【想法】的底线 100 字
==========================================================================
二、汇总
==========================================================================
阻断 7 条(不改就别往墨滴里粘);提示 1 条(粘完自己去看一眼)。
注意提示里的那一类(表格/代码块/公式):
它们和 4.4.3 的结论【刚好相反】——
头条是【平台不支持,必须改截图】;知乎是【平台支持,但转一道手容易掉】。
所以这条不是【删掉】,是【到知乎编辑器里重做一遍】。
读结果,五个值得注意的地方:
-
M1的【标题重复】实际上是同一个错误的两层。 它既有一级标题#(格式上的重复:会跟平台的标题框撞),又在正文里把标题写了一遍(内容上的重复:读者会连着看到两遍同一句话)。这两条检查看起来像重复,其实防的是两件事——一条防【平台结构冲突】,一条防【阅读体验】。所以它们都该留着。 -
M2的【话题 7 个】是本节独有的检查,而且它属于【不报错但会出事】那一类。 多填了不会提示错误,只是静默丢弃——你以为 7 个都生效了,实际只有前 5 个。 这类规则最难靠人发现(因为没有任何反馈),只能靠体检器主动拦一遍。 -
M2的那条提示是本节的定盘星。 表格和公式在知乎是原生支持的,所以它不像头条那样【必须改截图】;但从墨滴粘过来时,这两个结构恰恰最容易掉格式——所以正确动作是【保留内容,到知乎编辑器里用原生插入重做一遍】。 同一个检查项,两个平台的正确动作完全相反——这就是【平台规则】和【工具行为】要分开看的原因。 -
脚本把【表格】和【数学公式】报成了同一条提示,这是有意的。 报账的粒度应该按【处理动作】分,不是按【发现顺序】分:这两样东西在处理上是同一件事(都去知乎原生重做),合成一条,人一眼就知道该干什么;如果报两条,人还得自己判断"这两个是不是一样处理"。 这跟 4.4.3 去掉【重复计账】是同一个思路的两种表现:那次是去掉没意义的重复,这次是合并同意义的条目——目标都是让报出来的每一条都对应一个明确动作。
-
M3那句话只有 19 字,被拦下来了——但请注意脚本给的理由不是【太短写得不好】,而是【低于想法形态的底线 100 字】。 而这条底线的性质是【账号级】的(5.1.1 里那条:连续 3 天发布低于 100 字或含大量无关导流信息,创作行为分归零重计)。 所以这条检查防的不是这一篇,是这一串。 这也是【体检器为什么要把平台的账号级规则也写进去】——有些风险单看一篇是看不出来的。
上面脚本里有一行 FENCE = chr(96) * 3,看起来有点别扭,但它是有原因的:
这段代码本身就被写在笔记的三个反引号围栏里。如果脚本里直接写三个反引号(用来检测代码块),就会把笔记自己的围栏提前闭合,整段代码渲染全乱。
所以改用 chr(96) * 3 动态拼出来——功能和写死完全一样,但不会破坏外层渲染。
4.4.3 那一节也踩过同一类坑(当时是内层围栏改用波浪号)。这类问题只在【笔记里贴代码】的场景出现,但它一旦出现,破坏的是整篇笔记的渲染。
30 秒实验
把 Demo 里 M2 的 topics 从 7 个删到 5 个,再跑一次。
会发生什么:
- 【话题超限】那条消失,
M2的阻断从 2 条降到 1 条(只剩字数); - 但那条【表格/数学公式】的提示还在——它不会因为你改了别的东西而消失。
结论:阻断项要一条条清,提示项要留着提醒自己。 这两类不能混在一起处理——阻断项是【必须做的动作】,提示项是【粘完之后要去看一眼的地方】。 而这两类在纸面上长得很像(都是几行字),区分它们的唯一依据是【不改会不会出事】。
顺着这个思路想一层:为什么【表格/公式】这条不设成阻断?因为它可能粘过去完全没问题(墨滴的知乎主题适配可能处理得很好)——设成阻断会让所有带表格的稿子都被拦下,那就是误伤(与 4.3.1 那次【正则太窄误判合格卡】相反方向的错误)。所以它设成提示,正确的用法是【粘完之后回读时重点看这一处】。
常见误区
- 【墨滴支持知乎,所以排版完就能一键发到知乎】——错。 墨滴的产物始终是剪贴板里的一段富文本,它不替你把文章发出去(也发不出去——5.4.3 会讲:知乎没有对外公开的写入接口)。"在支持列表里"带来的是【样式更贴 + 少切一次窗口】。
- 【知乎支持表格和代码块,所以这两个不用管了】——错,正好要管。 知乎原生支持它们,但从墨滴转来的富文本,这两个结构最容易掉格式。正确动作不是删掉,是到知乎编辑器里用原生方式重做一遍。 头条的结论是【改截图】,知乎的结论是【重做】——方向不同,都不能原样粘过去。
- 【话题多填几个没坏处,反正不报错】——错,会静默丢弃。 知乎话题上限 5 个,多出来的不报错、直接丢——你以为 7 个都生效了,实际只有前 5 个。 这类【无反馈】的规则只能靠体检器主动拦。
- 【字的底线是统一的,300 字以上就行】——错,知乎按形态分档。 想法(短内容)的底线低于回答、回答低于文章——"多少字才够"在知乎没有统一答案,要看形态。 而且那条 100 字底线是账号级的(连续 3 天低于 100 字会让创作行为分归零重计),防的是这一串,不是这一篇。
- 【体检器报的每一条都要改掉才能走】——错,要分两类。 阻断项(不改就别发)和提示项(记录后由人判断)必须分开处理。 全设成阻断会造成误伤(比如带表格的稿子可能粘过去完全没问题);而这两类在纸面上长得一样,区分依据只有一个:【不改会不会出事】。
自测三问(点开对答案)
1. **同样一个【表格】,为什么在头条要删掉改截图,在知乎却要保留着重做?** 因为两个平台的**能力边界不同**:**头条对表格的支持不稳**(4.4.3 的结论是【表格在头条正文里最容易错乱】,正确动作是**删掉改截图**);**知乎原生支持表格**,所以**内容本身没问题**。 **但换到知乎也有它的问题**:表格**从墨滴转成富文本再粘过去时,最容易掉格式**。所以正确动作变成**【保留内容,到知乎编辑器里用原生插入重做一遍】。** **一句话:检查一个元素该不该留,先问【平台支持吗】,再问【粘过去会变吗】。** 2. **脚本为什么把【表格】和【数学公式】报成一条提示,而不是两条?** 因为**报账的粒度应该按【处理动作】分,不是按【发现顺序】分**:这两样东西**在处理上是同一件事**(都去知乎编辑器里原生重做),**合成一条,人一眼就知道该干什么**;报成两条,人还得自己判断"它们是不是一样处理"。 这和 4.4.3 去掉**重复计账**是同一个思路的两种表现:**那次去掉无意义的重复,这次合并同意义的条目**——**目标都是让报出来的每一条都对应一个明确动作。** 3. **为什么【表格/公式】设成提示,而【话题超限】设成阻断?** 依据只有一个:**不改会不会出事。** - **话题超限**:**一定会出事**(多出来的静默丢弃,你的话题策略直接失效),所以阻断; - **表格/公式**:**可能粘过去完全没问题**(墨滴的知乎主题适配可能处理得很好)。**如果设成阻断,所有带表格的稿子都会被拦下——那就是误伤**(方向与 4.3.1 那次【正则太窄误判合格卡】相反、但性质相同:都是**判据没有对上真实情况**)。 所以它的正确用法是**提示 + 回读时重点看这一处**。- ☐ 下一节(5.4.3 RPA在知乎上发布)
相关笔记
- RPA在墨滴平台排版 —— 同一件工具的上一版,本节与它的结论【几乎相反】,对照着读
- 排版 GPT 创作结果 —— 自己写转换器的那一版,三种做法的横向对照
- RPA发起会话并获取图文 —— 本节体检的稿子从哪来
- 知乎图文创作和发布概述 —— 三路形态互不通用、话题上限这些规则的来处
- 🤖 Agent+RPA实战 · 索引 —— 全课路线图