嘿,朋友。如果你正盯着一个空白的编辑器发呆,想着“我要写点东西”,但又被那些复杂的HTML标签、Word的排版烦恼或者LaTeX的数学公式劝退,那你来对地方了。
我是个在代码和文字之间反复横跳的开发者,同时也是个喜欢在知乎写长文分享干货的答主。我发现了一个宝藏工具——Markdown。它就像是一种“中间人”语言,既不像纯文本那么简陋,也不像HTML那么繁琐,却能完美地在知乎、GitHub、Notion、Obsidian等各种平台上穿梭。
今天,我不跟你讲那些干巴巴的定义,咱们直接上手,把Markdown从入门到精通,尤其是针对知乎专栏和GitHub文档这两个你最可能用到的场景,来一场硬核又接地气的实战解析。
为什么是Markdown?先给个定心丸
在你深入之前,我想先聊聊为什么我们要学这个。
想象一下,你在知乎写一篇文章,突然想插一段Python代码,还要让代码有高亮、有行号。如果用Word,你得先截图,再调整格式,最后可能还模糊不清。如果用HTML,你得手动写<pre><code>,还得找色值。
但用Markdown呢?只需要几行简洁的符号,渲染后它就变成了一篇漂亮的、带高亮的代码文章。
Markdown的核心哲学是:内容与形式分离。 你只负责写内容(输入),Markdown引擎负责把它变成好看的样子(输出)。这种“所见即所得”前的“所想即所写”,对于技术人员来说,简直是解放双手的神器。
第一部分:基础篇——别让新手村困住你
很多人学Markdown,停留在标题和加粗,然后就放弃了。其实,基础里藏着大智慧。
1. 标题:层次分明的艺术
在知乎写专栏,标题是你文章的骨架;在GitHub写README,标题是文档的索引。
Markdown支持6级标题,从#到######。
# 一级标题:主标题,通常用作文章核心论点
## 二级标题:主要章节
### 三级标题:子章节
#### 四级标题:更细分的内容
##### 五级标题:几乎用不到,除非你写说明书
###### 六级标题:同上
实战技巧:
在GitHub中,# 标题会自动生成目录锚点。如果你写的是开源项目的README,记得在文件顶部放一个“目录”链接,比如:
- [快速开始](#快速开始)
- [安装步骤](#安装步骤)
- [常见问题](#常见问题)
而在知乎,虽然原生编辑器对标题支持有限,但你可以通过插入“代码块”或“引用块”来模拟标题的视觉层级,或者直接利用知乎自带的H1-H4格式(Markdown语法在知乎专栏的“编辑模式”下是生效的)。
2. 段落与换行:微妙的空白
这是新手最容易踩的坑。
这是第一段。
这是第二段。
这是第三段(注意前面有两个空格或一个空行)。
在Markdown中,单个换行(Enter)不会产生新段落,它会被渲染成同一个段落的一部分。只有空行才会分割段落。
知乎特供: 知乎的Markdown编辑器对空行的处理比较严格。如果你在知乎写代码教程,建议每段代码前保留一个空行,这样渲染出来的间距更舒服。
3. 强调与重点:让读者抓眼球
*斜体* 或 _斜体_
**粗体** 或 __粗体__
***粗斜体***
~~删除线~~
在GitHub文档中,删除线常用于标记“已弃用”或“已修复”的内容。比如:
该接口已~~废弃~~,请使用新的`v2.0`接口。
而在知乎,粗体是你引导读者注意力的最好工具。不要滥用,每段最多一个粗体重点,否则读者会视觉疲劳。
第二部分:进阶篇——结构化你的内容
1. 列表:逻辑的梳理者
无序列表用-、+或*,有序列表用数字加.。
- 第一项
- 第二项
- 子项(注意缩进两个空格)
1. 第一步
2. 第二步
1. 细节一
2. 细节二
实战案例: 在GitHub的README中,列表是展示功能特性的最佳方式。
## 功能特性
- [x] 支持Python 3.8+
- [ ] 支持异步IO(开发中)
- [x] 集成Prometheus监控
那个- [x]和- [ ]是GitHub特有的Todo列表语法,它会渲染成可点击的复选框!这在项目管理文档中非常实用。
2. 代码:程序员的灵魂
这是Markdown最强大的地方。对于技术博客和开发文档,代码块是必须的。
单行代码:
使用反引号`。
请运行命令 `pip install requests`。
多行代码块: 使用三个反引号”`,并指定语言以实现语法高亮。
```python
def hello_world():
print("Hello, Markdown!")
```
```javascript
const message = "Hello, GitHub!";
console.log(message);
```
```bash
git add .
git commit -m "update readme"
```
关键点:
- 语言标识符: 在”
后面加上语言名(如python、javascript、bash`),编辑器会给出正确的语法高亮。这在GitHub和知乎专栏都能完美渲染。 - 行号: 大多数现代平台(包括GitHub和部分知乎编辑器插件)支持在代码块中显示行号,但标准Markdown不支持。如果需要,可以使用特定的标签,如
<!-- 行号 -->,但这依赖于平台支持。
知乎专栏的代码块技巧: 知乎的Markdown编辑器对代码块的支持很好,但有时候长代码块会挤压阅读空间。建议将过长的代码块折叠,或者只展示核心逻辑,其余放GitHub链接。
3. 链接与图片:让内容流动起来
链接:
[链接文字](https://example.com "可选标题")
图片:

实战技巧:
- 在GitHub中,图片必须使用绝对路径或托管在图床(如imgur、SM.MS)。相对路径在你克隆仓库后,在本地预览时可能无法显示。
- 在知乎,直接粘贴图片链接会触发Markdown渲染。你也可以直接上传图片到知乎,然后复制图片的Markdown代码。
知乎特供: 知乎专栏有时会对图片尺寸进行自动压缩。如果你希望图片保持原样,可以尝试使用<img>标签,但这需要切换到HTML模式,不推荐新手使用。
4. 表格:数据的优雅呈现
| 左对齐 | 居中 | 右对齐 |
| :----- | :--: | -----: |
| 内容1 | 内容2 | 内容3 |
| 内容4 | 内容5 | 内容6 |
表格的列对齐方式由冒号位置决定:
:---左对齐:---:居中---:右对齐
场景: 在GitHub的项目对比文档中,表格是展示功能差异的最佳工具。
第三部分:平台特供——知乎 vs GitHub
虽然Markdown是通用的,但不同平台对它的支持程度和细节处理有所不同。
知乎专栏:偏向阅读体验
知乎的Markdown编辑器是一个“混合体”,它既支持标准Markdown语法,也内置了一些富文本功能。
1. 标题的局限性: 知乎原生编辑器对Markdown标题的支持不如GitHub那样自动解析锚点。在知乎写长文时,建议使用H1-H3,避免使用H4及以下,因为知乎的页面布局可能会让太小的标题显得突兀。
2. 代码块的高亮: 知乎支持Python、JavaScript、Java、C++、Go、Rust等主流语言的语法高亮。在写技术教程时,务必指定语言,否则代码会白底黑字,很难看。
3. 引用块的特殊用法:
> 这是一段引用。
> 可以跨多行。
在知乎中,引用块通常会渲染成灰色的左边框,适合用来强调“核心观点”或“总结”。
4. 嵌入链接的卡片: 知乎有时会将特定域名(如GitHub、Bilibili、知乎文章)的链接自动渲染成卡片。这是知乎的“私有协议”,你无需担心,直接粘贴URL即可。
GitHub文档:偏向功能与协作
GitHub的Markdown渲染器(通常基于CommonMark标准)更加严格和标准化。
1. 自动化的目录(Table of Contents):
GitHub本身不支持自动TOC,但你可以使用工具(如markdown-toc)生成,或者手动写链接。对于大型README,一个清晰的目录是必备的。
2. 徽章(Badges): GitHub项目中常见的“构建状态”、“许可证”、“下载量”徽章,其实就是图片链接。


这些徽章通常链接到shields.io或GitHub Actions的API,让你的项目看起来更专业。
3. 任务列表(Task Lists):
如前所述,- [ ]和- [x]在GitHub Issue和README中都非常有用。在Issue中,它们甚至可以被点击,自动更新状态。
4. 嵌入文件: GitHub支持嵌入SVG图片、PDF(作为附件)、甚至视频(通过第三方服务)。但对于Markdown文本,它坚持纯文本原则,不会直接嵌入HTML5视频。
第四部分:高级技巧——让文章更有说服力
1. 脚注(Footnotes)
当你需要补充说明,又不想打断阅读流时,脚注是神器。
Markdown语法最初是由John Gruber在2004年创建的[^1]。
[^1]: 参见[John Gruber的博客](https://daringfireball.net/projects/markdown/)。
渲染后,上标数字会链接到页面底部的解释。这在知乎长文中非常实用,可以用来添加参考资料,而不破坏正文的流畅性。
2. 数学公式(LaTeX)
虽然标准Markdown不支持数学公式,但知乎专栏和GitHub(部分场景)支持通过LaTeX语法渲染数学公式。
爱因斯坦的质能方程:$E = mc^2$
更复杂的公式:
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
在知乎中,使用$$包裹的公式会居中显示,非常适合算法讲解和数学推导。在GitHub中,这取决于你使用的主题或扩展,通常原生支持KaTeX或MathJax。
3. 自定义CSS(仅限GitHub个人站点)
如果你在GitHub Pages上搭建个人博客,并且使用Jekyll或Hugo等静态网站生成器,你可以使用自定义CSS来覆盖Markdown的默认样式。但这已经超出了纯Markdown的范畴,属于Web开发领域。
第五部分:避坑指南——那些让人抓狂的问题
1. 特殊字符的转义
Markdown中有些字符有特殊含义,如*、_、#、[、]、(、)。如果你想显示字面量,需要在前面加反斜杠\。
购买5个\*苹果,每个\$2。
2. 图片链接失效
在知乎,如果你使用相对路径的图片,一旦你删除图片缓存或更换网络,图片可能会消失。在GitHub,如果你使用本地图片路径,在其他人克隆你的仓库后,图片将完全不可见。解决方案:使用图床。 推荐使用SM.MS、Imgur或GitHub本身的图片托管(上传后复制直接链接)。
3. 代码块内的反引号
如果你在代码块中需要显示反引号,可以使用四个或更多反引号包裹代码块。
代码中包含反引号
4. 知乎编辑器的“坑”
知乎的Markdown编辑器有时候会“自作聪明”,把一些非Markdown的内容也渲染掉。例如,全角的括号可能会被错误识别。建议使用英文半角符号,并在预览模式下仔细检查。
第六部分:实战演练——从0到1写一篇技术博客
假设你要写一篇名为《Python入门:第一个Hello World》的技术博客,发布在知乎和GitHub。
步骤1:构思结构
- 标题:Python入门:第一个Hello World
- 引言:为什么学习编程?Hello World的历史。
- 环境准备:安装Python。
- 代码示例:打印Hello World。
- 解释代码:print函数是什么?
- 常见问题:报错怎么办?
- 结语:下一步学什么?
步骤2:编写Markdown
# Python入门:第一个Hello World
大家好,我是[你的名字]。今天我们来学习编程中最经典的第一步:打印“Hello, World!”。
## 为什么是Hello World?
这个传统可以追溯到1972年,由Brian Kernighan在贝尔实验室内部技术备忘录中首创。它象征着与计算机世界的初次对话。
## 环境准备
在开始之前,请确保你已经安装了Python。你可以在终端运行以下命令检查:
```bash
python --version
如果显示版本号(如Python 3.9.7),则说明安装成功。
你的第一行代码
打开你喜欢的文本编辑器(推荐VS Code或PyCharm),创建一个名为hello.py的文件,输入以下内容:
# 这是你的第一个Python程序
print("Hello, World!")
保存文件,然后在终端运行:
python hello.py
你应该会看到输出:
Hello, World!
代码解析
print():这是Python的内置函数,用于向屏幕输出内容。"Hello, World!":这是一个字符串,需要用引号包裹(单引号或双引号均可)。#:井号后面是注释,计算机不会执行注释内容,但它能帮助人类理解代码。
常见问题
Q: 我运行后报了SyntaxError怎么办?
A: 请检查是否漏掉了引号或括号。例如,print(Hello)是错误的,应该是print("Hello")。
Q: 为什么输出是乱码?
A: 这可能是编码问题。尝试在代码首行添加:
# -*- coding: utf-8 -*-
结语
恭喜你,你已经迈出了编程的第一步!虽然“Hello World”很简单,但它意味着你已经能够指挥计算机执行你的指令。
下一步,你可以学习变量和数据类型。如果你对本文有任何问题,欢迎在评论区留言,或者在我的GitHub上提交Issue。
本文首发于知乎专栏,同步更新于GitHub。 “`
步骤3:发布与优化
- 知乎:复制上述Markdown代码,粘贴到知乎专栏的“代码模式”或“Markdown模式”中。检查图片、链接是否正确,预览满意后发布。
- GitHub:将代码保存为
README.md或docs/intro.md,提交到你的仓库。GitHub会自动渲染Markdown,并生成文档。
结语:Markdown,一种思维方式的转变
学习Markdown,不仅仅是掌握一种标记语言,更是学会了一种结构化思维。
在知乎,Markdown帮助你快速输出高质量的技术内容,吸引读者。在GitHub,Markdown让你的文档清晰易懂,促进协作。
不要指望一次性记住所有语法。就像学骑自行车一样,你需要在实践中不断练习。下次当你需要写一段说明、一个教程或一份报告时,试着用Markdown来组织你的思路。你会发现,文字的力量,因为简洁而更加强大。
希望这篇指南能帮你打通从知乎到GitHub的任督二脉。如果有其他问题,欢迎随时交流!
