惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
I
Intezer
Y
Y Combinator Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
Netflix TechBlog - Medium
The Hacker News
The Hacker News
AWS News Blog
AWS News Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Stack Overflow Blog
Stack Overflow Blog
Hacker News: Ask HN
Hacker News: Ask HN
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
B
Blog
T
Tor Project blog
C
Cybersecurity and Infrastructure Security Agency CISA
云风的 BLOG
云风的 BLOG
博客园_首页
V2EX - 技术
V2EX - 技术
T
Threat Research - Cisco Blogs
腾讯CDC
宝玉的分享
宝玉的分享
博客园 - 叶小钗
罗磊的独立博客
S
Securelist
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
Scott Helme
Scott Helme
博客园 - 司徒正美
W
WeLiveSecurity
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Secure Thoughts
NISL@THU
NISL@THU
N
News and Events Feed by Topic
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
K
Kaspersky official blog
IT之家
IT之家

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
少为人知的Markdown基础知识 - 少数派
2017-02-01 · via 少数派

这是专题的一部分,详见:Markdown知识贴

目前很多Markdown语法说明(特别是国内的教程)只介绍Markdown具体语法的使用,而本章主要会介绍一般教程提及不多的知识。所以在阅读之前,你应该掌握最基础的Markdown语法,请看为知的帮助文档:http://www.wiz.cn/feature-markdown.html 。具体某个语法的书写,请参考其他教程,比如原生Markdown语法说明。

组成Markdown正文的元素可以分成区块元素和行内元素。 
简单说,区块元素主要用来定义内容,提供框架,比如这是标题,这是列表,这是段落之类的。 
而行内元素主要是提供实质内容,比如图片,文字之类的。好比说一个表格(区块),我们需要文字图片(行内元素)来填充它。

我们可以将一份Markdown文档看成一系列连续的区块元素(包括段落、区块引用、列表、标题、分隔线、区块代码等)的纵向排列,部分区块(如引用和列表)可以包含其他区块,而其他的区块(如标题和段落)则包含行内元素,如文本、链接、图片、行内代码等等。 
——翻译自 commonmark.org

段落、文本行、换行

段落与行的概念在Markdown中很重要,而且很基础,可惜很多Markdown教程都将其忽略。

一个文本行指连续两个换行之间的内容,并非指最终显示所看到的行。简单说,手动换行才叫一行,自动换行形成的不叫一行。

在为知md插件下表现很明显,感受一下: 

段落由一个或多个连续文本行组成,两个段落间由空行分开。

这是段落一的第一行。
这是段落一的第二行。

这是段落二的第一行,这是段落二的第一行,这是段落二的第一行。
这是段落二的第二行,这是段落二的第二行,这是段落二的第二行。

强制换行:当一个段落需要包含多个文本行时,需要先在行末敲入两个或以上空格再回车。不过目前很多编辑器(包括为知)都提供lazy方法,可以直接敲回车换行。

知道这些有什么用?可以用来调整文档的疏密。段落间的间距比较宽,如果希望文档密一点,多使用强制换行,如果希望文档优雅整齐一点,可以多用段落。

区块元素的相接

前面说过一份Markdown文档看成一系列连续的区块元素的纵向排列,所以一份Markdown文档的结构基本时由区块元素决定的。而区块元素之间的关系有两种——首尾相接与嵌套。

原生的Markdown只规定了段落间需要空行,没有规定其他的区块如何相接。想当然的其他区块直接换行相接就可以了,但是真的是这样吗?本人使用为知和edior.md插件中进行了测试,结果如下:

捕获.PNG捕获2.PNG捕获3.PNG

注:1. 用“\”表示可以直接换行相接。2. 空白HTML标签一般指<!-- -->。其中空格处可以填入任意文字。

测试结果与想象相去甚远,不同区块间有不同的规则,不同的编辑器亦有不同的相接规则,这个不是仅在为知才出现的个例,而是几乎所有编辑器共有的现象。

尽管区块相接有严重的方言问题,但是有一些规则是通用的:

  1. 有明确结束标识的区块与有明确开始标识的区块相接可不用空行。当我们回头原生Markdown语法设计的时候,会发现虽然Markdown也是一种轻量级的标记语言,可是基本所有区块元素只有开始标识(比如引用使用>开始,无序列表使用*+-开始),却没有结束标识,这种区块的结束取决于下一个区块或空行,这根据编辑器的不同就会产生不同的结果。但是后来加入的部分语法开始使用包裹式的语法,比如区块公式使用$$包裹,这些区块有明确的结束标识。当有明确结束标识的区块与有明确开始标识的区块相接时,一般编辑器都不会出现差异,所以可以不用空行,直接换行相接。
  2. 分隔线与标题后接区块可以不空行。分隔线与标题占用的行数比较固定,只有一行或两行,其后可以直接换行接任何区块元素。
  3. 区块引用和列表后接其他区块必须空行。区块引用和列表与其他区块不同,它们可以嵌套区块, 而且有lazy输入,所以必须用空行区分。
  4. 使用减号画分隔线时,前面必须预留一空行。因为连续三个减号---这个语法与Setext标题语法重合了,不留空行容易造成识别错误。如果不想使用预留空行,可以在减号内加空格,如- - -,以免与Setext标题语法重合。
  5. 空白HTML标签<!-- -->的使用。一般只在带lazy输入的区块连续出现的时候用于分割区块,目前允许lazy输入的区块有:区块引用、缩进式代码、列表。空白HTML标签不会显示在最后的输出中显示。

区块元素的嵌套

区块元素中引用列表可以实现区块的嵌套,我们将其称作可嵌套区块。当我们说嵌套的时候,并非只指自身的嵌套,而是说可以嵌套基本所有类型的区块。

引用的嵌套

引用的嵌套相对简单,只要所有的嵌套内容每行行首加上>,跟写简单的文字引用一样,只不过每一行都加>而已,多级嵌套就多加几个>

>段落1行1
>段落1行2
>
>---
>段落2
>
>>二级引用

这是最后的显示结果:

段落1行1 
段落1行2

段落2

二级引用

说实在,引用的嵌套不实用,一般只会用到简单的文段引用,嵌套最多用到段落。未来Markdown被引入到电子邮箱领域后可能会有更多的应用吧。而且目前很多编辑器的引用嵌套都有个不起眼的小bug,嵌套中的标题会被纳入到目录大纲。

列表的嵌套

列表的嵌套相对复杂,目前一般的实现方式有两种,一是Tab方式,二是对齐方式。

Tab方式是原生Markdown提出嵌套方式,使用4个空格或1个Tab缩进实现多级嵌套。(这里的Tab指4个空格,有点编辑器Tab键值不一样,或者会根据上一行变化,需要注意)

几个Tab对应几级嵌套:

多级嵌套

对齐方式是CommonMark提倡的方式,不固定每次嵌套所需的空格数量,使用空格缩进至嵌套内容与列表项目首行内容对齐为止。

对齐方式的列表嵌套

两种方式各有优势,Tab方式更易写,每次缩进按一个Tab就可以;对齐方式更易读,写出来的文档与最后显示的结果更接近。

为知对Tab方式的支持更好,而Editor.md插件对对齐方式的支持更好。

使用插件的朋友需要注意一下几点:

  1. Editor.md插件中第一次编辑md会用缩进符显示Tab,这样录入和修改都很方便,但是第二次打开md文件tab符会自动转化成4个空格。
  2. Editor.md插件的Tab键值是F1。

其实还有一种混合的方法:在写多级嵌套表格的时候,用项目标识后多加1到2个空格让项目内容前面有4个字符的宽度,这样后面的次级列表用4个空格缩进既是Tab式又是对齐式的,如:

-   一级列表
    1.  一个
        1.  两个
-   一级列表
1.  一级列表

范围元素的嵌套和交叉

在原生Markdown中将所有的行内元素叫做范围元素。但是这里的范围元素指行内元素中采用标识包裹的语法元素,包括强调、重强调、删除线和行内代码。

删除线内嵌套强调1~~234*56*789~~0

强调重强调交叉:**1234*567**890*

注意:

  1. 行内代码可以被嵌套,但是不能嵌套其他范围元素。
  2. 强调、重强调与删除线不支持与自身嵌套或交叉,只能嵌套或交叉不同的范围元素。
  3. 为知对嵌套和交叉的支持有些小问题,Editor.md插件对交叉基本不支持。

Lazy输入

Markdown的目标是成为一种网络书写语言,所以为了让用户更方便书写,Markdown为部分语法提供了一些更简便更宽松的输入办法,这里将其称为“Lazy输入”(懒人输入办法)。

这里列举一些目前为知支持的Lazy输入:

  • 缩进式区块代码和列表中的空行允许不缩进: 

  • 365961.jpg
    这二者会得到一样的结果。

  • 区块引用中空行行首允许不添加>: 
    引用引用的Lazy输入
    二者会得到一样的结果。

  • 区块引用中的段落、区块代码、表格、区块公式允许只在区块首行添加>,其他行省略。 
     
    要求被包含的区块不能有空行,如果有空行,在空行的下一非空行需要添加>

  • 列表中被嵌套的段落、区块代码、表格、区块公式允许只在区块首行缩进,其他行不缩进。 

  • 一个段落区块中直接回车实现强制换行。在很多Markdown语法中,段落内部直接回车只能得到一个软换行。软换行就是Md源码中换行了,但是最后输出时不显示换行。段落内部强制换行需要行末先敲两个空格之后再回车。而为知中直接回车即可实现段落之内强制换行。

  • 允许缩进一个空格快速实现2级列表和一级区块嵌套。一般建立二级列表或嵌套需要用对齐或Tab方式缩进,但是为知允许只缩进一个空格。但是这个方式不能用于两级以上的列表,会造成格式混乱。

  • 允许直接插入自动链接。原生Markdown提供了快速插入链接的方法,称作自动链接,与一般的行内式和参考式方法不同,自动链接只需要把链接(或邮箱地址)用尖括号< >包裹起来即可。

另外,在区块相接部分,我们也可以理解为极大部分区块都使用空行区分,但是编辑器提供了Lazy输入办法,让部分区块可以不使用空行相接(只是可以这么理解,目前还没有一份Markdown说明是这么说的)。

软输入

软输入指只在源码中显示,却不影响最终显示的输入方法。软输入是为了让源码更加易读。软输入主要包括文本行首4个以下的空格,行末多余的空格,还有多余的空行,还有前面提到的原生Markdown中的行末回车软换行。这些在最终显示的时候都会移除。 
在我看来显然Markdown受到了其他标记语言的影响,虽然文本行、段落和软换行这些概念在HTML之类的语言中很实用,但是Markdown拿来使用就显得有点画蛇添足。像多余的空行空格可以提高Markdown书写的容错率。但是软换行显然与Markdown易读易写的设计理念相悖,好在现在很多编辑器(包括为知)已经移除了软换行。

转义

Markdown之所以易写易读,很大程度的功劳在于它使用了大量的常见符号(甚至是空格空行回车)来构建语法,但是如果需要写入被占用的这些特殊符号,就会面临特殊符号被误识别为Markdown语法的可能性。这个时候就需要对特殊符号进行转义,转义方式为在符号前添加一个反斜线\

比如想输入: 
2017. 金鸡报喜!

就需要在Markdown中这么写,否则会被识别为有序列表: 
2017\. 金鸡报喜!

下面是John Gruber提供的符号列表,这些符号常常需要被转义(当然不限于这些符号):

\ 反斜线(backslash)` 反引号(backtick)* 星号(asterisk)_ 下划线(underscore){} 大括号/花括号(curly braces)[] 中括号/方括号(square brackets)() 小括号/括弧(parentheses)# 井号(hash mark)+ 加号(plus sign)- 减号/连字符(minus sign/hyphen). 英文句号/小数点(dot)! 感叹号(exclamation mark)

输入Markdown代码

这里有个问题,如果我们想用区块代码记录Markdown围栏式区块代码怎么办?想用行内代码的内添加反引号`怎么办?比如我现在使用Markdown写一篇Markdown教程,这种情况就会遇到。

我们知道无论围栏式区块代码还是行内代码,输入的内容都会原样输出,直到结束的反引号出现,如果代码内包含反引号,就可能被错误识别,提前结束代码。代码内部也不支持转义,上一节提到的转义技巧是无法使用的。

如果我们这么写,得到的结果会大跌眼镜:

目前有两个方法可以解决:

  1. 用更大的围栏包裹代码,如用4个反引号`

  2. 使用缩进式的方式写围栏式代码。

坏消息是为知两种方法都不支持,为知围栏式代码只支持3个反引号,不支持4个及以上的反引号,所以不能使用第一种方法。为知目前缩进式代码有bug,所以第二种方法也不能使用。Editor.md插件明明两种方法都支持的啊,为知差评。

那么行内代码内怎么添加反引号呢?行内代码也不能使用反斜线转义,无论```` ` `都不能得到想要的结果。这时应该使用一种类似上面围栏式代码的方法。如果要行内代码内添加一个反引号,就用两个反引号包裹,如果要添加两个连续的反引号,就用三个反引号包裹代码,以此类推。

这是一个反引号的写法:`` ` ``

这是两个连续反引号的写法:``` `` ```

如果代码存在多个反引号,但不连续,用两个反引号包裹:`` 行内代码用`反引号`包裹 ``

这个为知是支持的,不用担心。

兼容HTML

非程序员用户可能不知道,Markdown兼容HTML标签语法。这就能解释为什么有的用户用尖括号< >包裹内容的时候会发现内容消失了,因为它被识别当作为HTML标签了!这时候对尖括号转义即可。

虽然Markdown兼容HTML,但是在Markdown使用HTML标签显然不符合Markdown的设计的本意,而且懂HTML的人也不多,所以HTML标签是不推荐使用的。

本人觉得目前用得上的HTML标签只有两个: 
一是<!-- -->,用于区分特殊的区块,比如引用。 
二是<u> </u>,用于实现下划线样式。