专栏排版统一
知乎专栏作者每周更新 3 篇长文,每篇从 Word 粘贴后,字号、行距、引用块、代码块样式全乱。手动调一篇要 15 分钟,还经常漏掉标题层级。用本编辑器粘贴原文,一键应用知乎默认的正文、标题、引用、代码样式,确保专栏内所有文章视觉风格统一。排版时间从 15 分钟压缩到 2 分钟,读者不再因格式混乱而跳过正文。
从知乎复制一段带格式的文本到公众号后台,排版全乱,手动清理两小时。这个编辑器把知乎的引用、代码块、加粗、列表等标记自动转为纯文本或标准 Markdown,保留层级缩进与分段。全部处理在浏览器本地完成,文字不离开设备——适合跨平台搬运内容、整理采访稿、或把知乎回答归档为干净文档。
知乎专栏作者每周更新 3 篇长文,每篇从 Word 粘贴后,字号、行距、引用块、代码块样式全乱。手动调一篇要 15 分钟,还经常漏掉标题层级。用本编辑器粘贴原文,一键应用知乎默认的正文、标题、引用、代码样式,确保专栏内所有文章视觉风格统一。排版时间从 15 分钟压缩到 2 分钟,读者不再因格式混乱而跳过正文。
在知乎写了 3000 字高赞回答,想同步到个人公众号。直接复制过去,公众号编辑器不识别知乎的 Markdown 语法和引用样式,导致列表全部失效、代码块变成普通文本。先把回答粘贴进本编辑器,选择「公众号兼容」输出模式,自动将知乎的引用、列表、代码块转为公众号富文本格式。搬运一篇从 20 分钟手动调整缩短到 3 分钟。
职场博主一条干货内容要同步发到知乎、头条号、百家号。三个平台的排版规则不同:知乎支持 Markdown 引用,头条号用富文本缩进,百家号要求纯文本加 emoji 分段。每次手动改三遍,还经常在头条号上漏掉引用标记。用本编辑器一次排版后,分别导出知乎 Markdown 版、头条号富文本版、百家号纯文本版,分发速度从 40 分钟降到 8 分钟。
一篇 8000 字的深度科普,知乎限制单回答最多 50000 字,但用户阅读耐心往往只有 1500 字。需要把长文拆成 5 篇连载,每篇要有独立的标题、引言、结尾预告。在本编辑器中先写好全文,用「分节标记」功能在每章末尾插入分隔符,一键生成 5 篇独立文稿,每篇自动带上「上篇回顾」和「下篇预告」的固定格式。连载更新从每天手动分段 1 小时缩短到 10 分钟。
技术答主在回答里贴 Python 代码,直接粘贴后知乎编辑器把缩进全吞了,代码跑不起来。每次需要在本地 IDE 里截图再上传图片,一张图算上截图、裁剪、上传要 3 分钟,一篇回答 5 段代码就要 15 分钟。用本编辑器粘贴代码,选择「Python 语法高亮」模式,自动保留缩进并添加行号,支持一键复制代码内容。读者可以直接复制代码运行,不再需要看模糊的截图。
| 维度 | 本工具 | Markdown 编辑器(Typora) | Word / WPS 手动排版 |
|---|---|---|---|
| 排版规则 | 自动匹配知乎标题/引用/代码块/列表样式 | 需手动配置导出模板或使用默认样式 | 完全手动设置字号/颜色/缩进,耗时且易错 |
| 代码块处理 | 自动识别语言并套用知乎代码块格式 | 导出为 HTML 后需手动调整代码高亮 | 无原生代码块,需手动插入表格或截图 |
| 链接格式 | 自动将 URL 转为知乎卡片或超链接语法 | 需手动用 Markdown 链接语法编写 | 需手动复制粘贴并调整格式 |
| 公式支持 | 保留 LaTeX 语法,适配知乎渲染 | 支持 LaTeX 但导出后需验证兼容性 | 需用公式编辑器生成图片再插入 |
| 多平台粘贴 | 一键复制后直接粘贴到知乎网页/App | 需导出为 HTML 再手动复制到编辑器 | 需逐段复制并清理格式残留 |
| 离线可用 | 纯浏览器运行,无需安装 | 需安装桌面软件 | 需安装 Office 套件 |
| 学习成本 | 打开即用,零学习曲线 | 需学习 Markdown 语法 | 需掌握 Word 排版技巧 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 这是一段测试文字。 第二段开始。 第三段。 | 这是一段测试文字。 第二段开始。 第三段。 | 常规:多段落输入,验证工具是否保持段落间距(知乎风格要求段间空行)。 |
| **加粗** *斜体* ~~删除线~~ `代码` [链接](https://example.com) > 引用 | **加粗** *斜体* ~~删除线~~ `代码` [链接](https://example.com) > 引用 | 常规:Markdown 常用行内标记全部保留,验证工具不误删或转义标准语法。 |
| 边界:空输入,验证工具是否崩溃或输出非空内容(应返回空字符串)。 | ||
| a b | a b | 边界:连续多个空行,验证工具是否按知乎规范合并为单个空行(知乎编辑器会压缩多余空行)。 |
| 这是一个超长段落,包含大量文字来测试工具对长文本的处理能力。假设用户从某篇长文复制了一段内容,长度可能超过5000字,工具应该保持原样输出,不截断、不卡顿。这里继续填充文字以模拟真实场景,用户经常从Word、网页或PDF粘贴大段内容,工具需稳定处理。 | 这是一个超长段落,包含大量文字来测试工具对长文本的处理能力。假设用户从某篇长文复制了一段内容,长度可能超过5000字,工具应该保持原样输出,不截断、不卡顿。这里继续填充文字以模拟真实场景,用户经常从Word、网页或PDF粘贴大段内容,工具需稳定处理。 | 边界:超长单段落(>5000字符),验证工具无长度限制或性能问题。 |
| 这是一段文字,包含【方括号】和(圆括号)以及《书名号》。还有特殊字符:★☆◆◇▲△●○□■。 | 这是一段文字,包含【方括号】和(圆括号)以及《书名号》。还有特殊字符:★☆◆◇▲△●○□■。 | 易错:中英文标点混用及特殊符号,验证工具不误转义或丢失非ASCII字符。 |
| 1. 第一项 2. 第二项 3. 第三项 - 无序一 - 无序二 > 引用块内 > 继续引用 | 1. 第一项 2. 第二项 3. 第三项 - 无序一 - 无序二 > 引用块内 > 继续引用 | 易错:有序列表、无序列表与引用块混合,验证工具保留列表缩进和引用格式,不破坏层级。 |
1.Markdown 标题后缺少空格,渲染失效
#标题# 标题知乎编辑器遵循标准 Markdown 语法,# 与标题文字之间必须有空格,否则不识别为标题,仅显示为普通文本。
2.代码块未指定语言,高亮丢失
```
print('hello')
``````python
print('hello')
```知乎编辑器支持语法高亮,需在开头的 ``` 后紧跟语言名称(如 python、javascript),否则代码块仅显示为灰色背景无高亮。
3.引用块嵌套层级用错符号
> 第一级
>> 第二级> 第一级
> > 第二级知乎编辑器要求嵌套引用时,内层 > 前需加空格(> >),连续 >> 会被解析为普通文本而非嵌套引用。
4.无序列表缩进不一致导致层级断裂
- 一级
- 二级
- 三级- 一级
- 二级
- 三级缩进必须使用 2 个空格或 1 个 Tab,且全篇统一;混用空格与 Tab 会导致部分行被识别为独立列表,层级断裂。
5.链接文本中混入换行符,链接断裂
[这是一个很长的
链接标题](https://example.com)[这是一个很长的链接标题](https://example.com)Markdown 链接语法中,方括号内不能有换行符,否则解析器会将链接截断为普通文本和孤立 URL。
6.表格列数不对齐,渲染错位
| 姓名 | 年龄 | 城市 |
| --- | --- |
| 张三 | 25 | 北京 || 姓名 | 年龄 | 城市 |
| --- | --- | --- |
| 张三 | 25 | 北京 |表格分隔行(第二行)的列数必须与表头和数据行一致,否则知乎编辑器会忽略整张表格,直接显示为纯文本。
7.任务列表方括号后缺少空格
- [x]已完成任务- [x] 已完成任务任务列表的 [x] 或 [ ] 后必须紧跟一个空格,否则渲染时不会显示为复选框,而是普通列表项。
8.脚注标记与正文间无空格,无法跳转
这是正文[^1]这是正文 [^1]知乎编辑器要求脚注标记前有空格,否则 [^1] 会被视为普通文本,不会生成可点击的脚注链接。
行间距 = 1.5 × 字体大小 + 段前距 + 段后距
字体大小正文字体大小,单位 pt段前距段落前额外空白,单位 pt段后距段落后额外空白,单位 pt字体大小 14 pt、段前距 6 pt、段后距 6 pt:行间距 = 1.5 × 14 + 6 + 6 = 21 + 12 = 33 pt,即每行文字垂直间距 33 pt。
5 种主流语言实现,复制即用:
import re
def zhihu_format(text: str) -> str:
"""将普通文本转为知乎风格 Markdown"""
# 加粗:**加粗**
text = re.sub(r'\*\*(.+?)\*\*', r'**\1**', text)
# 标题:## 标题
text = re.sub(r'^(#{1,6})\s+(.+)$', r'\1 \2', text, flags=re.MULTILINE)
# 引用:> 引用
text = re.sub(r'^>\s+(.+)$', r'> \1', text, flags=re.MULTILINE)
# 无序列表:- 列表项
text = re.sub(r'^-\s+(.+)$', r'- \1', text, flags=re.MULTILINE)
# 代码块:```lang\ncode\n```
text = re.sub(r'```(\w*)\n([\s\S]*?)```', r'```\1\n\2\n```', text)
return text
# 示例
raw = """## 知乎排版示例
**加粗文字**
> 引用内容
- 列表项1
- 列表项2
```python
print('hello')
```"""
print(zhihu_format(raw))function zhihuFormat(text) {
// 加粗
text = text.replace(/\*\*(.+?)\*\*/g, '**$1**');
// 标题
text = text.replace(/^(#{1,6})\s+(.+)$/gm, '$1 $2');
// 引用
text = text.replace(/^>\s+(.+)$/gm, '> $1');
// 无序列表
text = text.replace(/^-\s+(.+)$/gm, '- $1');
// 代码块
text = text.replace(/```(\w*)\n([\s\S]*?)```/g, '```$1\n$2\n```');
return text;
}
// 示例
const raw = `## 知乎排版示例
**加粗文字**
> 引用内容
- 列表项1
- 列表项2
\`\`\`python
print('hello')
\`\`\``;
console.log(zhihuFormat(raw));package main
import (
"fmt"
"regexp"
)
func zhihuFormat(text string) string {
// 加粗
re := regexp.MustCompile(`\*\*(.+?)\*\*`)
text = re.ReplaceAllString(text, "**$1**")
// 标题
re = regexp.MustCompile(`(?m)^(#{1,6})\s+(.+)$`)
text = re.ReplaceAllString(text, "$1 $2")
// 引用
re = regexp.MustCompile(`(?m)^>\s+(.+)$`)
text = re.ReplaceAllString(text, "> $1")
// 无序列表
re = regexp.MustCompile(`(?m)^-\s+(.+)$`)
text = re.ReplaceAllString(text, "- $1")
// 代码块
re = regexp.MustCompile("```(\\w*)\\n([\\s\\S]*?)```")
text = re.ReplaceAllString(text, "```$1\n$2\n```")
return text
}
func main() {
raw := `## 知乎排版示例
**加粗文字**
> 引用内容
- 列表项1
- 列表项2
\`\`\`python
print('hello')
\`\`\``
fmt.Println(zhihuFormat(raw))
}function zhihuFormat(text: string): string {
// 加粗
text = text.replace(/\*\*(.+?)\*\*/g, '**$1**');
// 标题
text = text.replace(/^(#{1,6})\s+(.+)$/gm, '$1 $2');
// 引用
text = text.replace(/^>\s+(.+)$/gm, '> $1');
// 无序列表
text = text.replace(/^-\s+(.+)$/gm, '- $1');
// 代码块
text = text.replace(/```(\w*)\n([\s\S]*?)```/g, '```$1\n$2\n```');
return text;
}
// 示例
const raw = `## 知乎排版示例
**加粗文字**
> 引用内容
- 列表项1
- 列表项2
\`\`\`python
print('hello')
\`\`\``;
console.log(zhihuFormat(raw));#!/bin/bash
# 使用 sed 实现知乎风格排版
zhihu_format() {
local text="$1"
# 加粗
text=$(echo "$text" | sed -E 's/\*\*(.+?)\*\*/\*\*\1\*\*/g')
# 标题
text=$(echo "$text" | sed -E 's/^(#{1,6})\s+(.*)$/\1 \2/')
# 引用
text=$(echo "$text" | sed -E 's/^>\s+(.*)$/> \1/')
# 无序列表
text=$(echo "$text" | sed -E 's/^-\s+(.*)$/- \1/')
echo "$text"
}
# 示例
raw="## 知乎排版示例
**加粗文字**
> 引用内容
- 列表项1
- 列表项2"
zhihu_format "$raw"这个工具只处理纯文本的排版,不会自动识别你从网页或Word复制过来的富文本格式(比如加粗、颜色、字体)。你需要先粘贴纯文本,再用工具栏里的【加粗】、【斜体】、【引用】等按钮手动标记。如果你粘贴后看到的是带样式的文字,那是浏览器自动保留了格式,可以先用记事本中转一下,或者直接点工具栏的【清除格式】按钮再重新排版。
这个工具里的列表功能只支持单层缩进,不支持嵌套(列表里套列表)。如果你在二级项目前手动打了空格或Tab,预览时可能会错位。建议把二级列表拆成单独的一段,前面用「-」或「1.」开头,工具会自动识别为新的列表项。如果还是对不齐,检查一下是不是在列表项中间插入了空行,空行会打断列表渲染。
可以。右侧预览区或源码区的文本都可以直接复制,粘贴到知乎编辑器后,大部分格式(加粗、斜体、引用、列表)能保留。但注意两点:一是代码块在知乎里可能显示为普通文本,需要手动重新插入代码块;二是图片链接不会自动转成知乎的图片上传,需要单独上传图片。建议复制后先发一个草稿检查一遍再发布。
这通常是源文本的换行符不一致导致的。Windows记事本的换行是「回车+换行」,Mac/Linux是「换行」,混合粘贴时工具可能多识别出一个空行。解决方法:粘贴后按一次【清除格式】,再重新手动分段。工具本身不会自动加空行,所有空行都是你文本里自带的。如果还是多,可以检查一下是不是在段落末尾多按了一次回车。
不会。这个工具是纯前端实现的(FE),所有排版、预览、格式转换都在你的浏览器里完成,不会把任何文本发送到服务器。关闭页面后,浏览器里的内容就会消失,没有后台存储。如果你担心隐私,可以断网后使用,排版功能完全不受影响。
从知乎直接复制内容通常带有很多隐藏的HTML标签和行内样式,这个工具只处理纯文本,不会解析这些标签。建议先粘贴到记事本(或点工具栏的【清除格式】),去掉所有隐藏样式,再重新用工具里的加粗、引用等按钮手动排版。如果只想保留原文的段落结构,可以只复制纯文本段落,不要复制带链接或代码的部分。
能用。页面会自适应手机屏幕,输入区和预览区会上下排列。但手机上的工具栏按钮可能显示不全,需要左右滑动。排版结果(加粗、引用、列表)在手机预览区显示正常,不过建议在电脑上完成复杂排版后再用手机检查。如果手机浏览器是旧版(比如微信内置浏览器),工具栏的某些按钮可能不响应,建议用Chrome或Safari最新版。
这个工具目前没有一键导出Markdown文件的功能。但你可以点【源码】按钮,里面显示的就是Markdown格式的原始文本(带#、*、>等标记),直接复制那个区域的内容,粘贴到任何支持Markdown的编辑器(如Typora、Obsidian)里就能直接用。如果你需要保存为.md文件,可以复制后新建一个文本文件,改后缀名为.md即可。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。