Markdown(3)
链接
自动链接
写一个网址,Typora会自动识别。在Typora里按Ctrl加鼠标左键点击就可以打开对应网站。导出的网页或者PDF中这些网址会被渲染为链接。鼠标左键点击就可以打开对应网站。
不过这是不太标准的写法。标准写法应该是把网站用尖括号括起来。所见即所得模式下,光标移开后尖括号会隐藏。光标重新移动到链接上时尖括号会显示。
这是一个网址<http://www.google.com>
实际上也不仅仅限于网址。URL都可以。比如邮箱地址:
我的邮箱地址是<qiwangnuc@foxmail.com>
文字链接
如果想把链接绑定到特定的文字上可以使用这种行内格式。要链接的文字用方括号括起来,后边紧跟一对圆括号,圆括号内写链接地址。
这是一个[链接](http://www.google.com)。
链接地址也可以是本地文件的路径(相对路径和绝对路径都可以),这样点击的时候就能打开路径对应的文件。
这个[链接](006_MarkDown(2).md)不一定会生效。因为你电脑上可能没有一个与之同名的文件。
如果你觉得这种写法太过冗长。可以用引用式文字链接。
首先要定义引用链接。引用由一对方括号和紧邻的冒号组成。方括号内写引用ID(实际就是一个字符串做标识符),冒号后边写链接地址。
[link12]:http://www.google.com
然后就可以在正文中使用行内引用式文字链接了。只需要把写链接的圆括号换成方括号,并且其中写上已定义的链接的ID。
这也是一个[链接][link12]。
注意,引用链接的定义一般不会被渲染出来(但是Typora的所见即所得模式会显示)。建议统一定义在文章最后或者一个固定的地方。
title属性
在HTML的链接标签中,有一个可选的title属性。如果浏览器支持,当鼠标悬停在链接上时将会显示链接的title属性。一般可以作为链接的补充说明。
在文字链接中,如果在链接地址后空一格写一个字符串(以双引号作为字符串标记),那么所写的字符串就会被解读为title属性。
这是一个[链接](http://www.google.com "真的是个链接")。
这也是[一个链接][link15]。
[link15]:https://www.wikipedia.org/ "维基主页"
注意所有的语法符号都是英文符号。尤其小心,不要把圆括号打成中文圆括号。
图片
Markdown可以插入图片。但是图片不会保存在Markdown文件中。你可以通过链接在Markdown中引用所要插入的图片。这样在渲染的时候会自动把图片渲染出来。如果导出成PDF,则会把图片保存到PDF文件中。
图片链接的格式和文字链接类似。不过开头加!
。虽然格式类似文本链接,但是我还是建议图片链接单独占一段,当作段落标记使用。

图1:Markdown标志
可能你会问,既然插入图片了,还要方括号里的文字干什么。这个文字叫做替代文字。当你引用的图片找不到的时候,就会用这串文字替代在本来应该图片出现的地方。
图片链接后边也可以空格写title属性。这点和文字链接类似。但是图片链接一般不能点击打开。
你可以使用本地图片。只需要把图片链接换为本地文件链接就可以。注意在写本地文件路径的时候,如果图片和Markdown文本在同一目录层级之下,可以直接写图片文件名(记得后缀名)。这算是相对路径。另外注意路径中尽量不要用一些特殊符号,以防无法解析路径。
Typora中可以设置开启自动保存图片。当你从剪贴板往Markdown中粘贴图片时,Typora会自动在本地保存图片并且在Markdown中生成引用路径。
你可以插入GIF动态图。Typora编辑器和大部分浏览器也支持浏览动态图。但是打包成PDF后,似乎只能打包成静态图片。
注脚
注脚类似于引用式的文字链接的使用方法。你需要定义一条注释,然后在需要引用注释的地方写上角标。这样,当你鼠标悬停到注脚上的时候就会显示注释中的内容。注脚的写法是方括号内加^
然后写注释代号。注释则一般写成一个单独的段落。注释开头写上所对应的注脚,然后加:
,然后空一格写注释内容。
一天世界君一睡觉就是一天[^1]。
[^1]: 来源是关于一天世界君的传闻。
需要注意,注释的定义不同于链接定义,一般渲染后会显示出来。所以建议统一写在文末。另外注释的内容可以是普通文字叙述,不一定是链接。
注释和注脚的作用,就相当于论文中的文献引用标记。如果你希望把文章写得引述详实,有理有据,又不希望行文冗长,可以使用注脚来说明引用、出处、文献参考等。
表格
有的编辑器可能不支持Markdown表格,或者所支持的表格不是这种写法。我这里是按照GFM和Typora介绍的。
Markdown中的表格只是一个很轻量级的展示数据的方式。并不像Excel等电子表格那样有复杂的处理功能。
表格的基本语法是这样的:
- 一整个表格是一个段落,前后最好空行。但是表内部的行之间不能空行。
- 用LF换行来表示不同的行。
- 而用
|
表示列的分割。一行的开头和结尾都要有|
,但是表中任何地方不能连用两个|
。 - 在一对
|
之间填写单元格中的内容。单元格内容和|
之间至少空一格。 - 空单元格用建议空格作为填充内容。
源码中表格的第一行和第二行有特殊作用。
- 第一行是表头。
- 第二行是表头和表格主体的分割线。第二行中的单元格以大于等于3个
-
填充 - 第二行的单元格中可以往连续的几个
-
前后加:
。如果加左侧表示这一列左对齐,加右侧表示右对齐,加双侧表示居中。不加表示默认对齐方式(Typora默认貌似是左对齐)。
表5: 太玄关注的Up的特点
| 酒石酸 | 黑猫 | 一天世界君 | 太玄 |
| :--- | ---: | :------: | --- |
| 勤劳 | 大佬 | 咕咕咕 | 自恋 |
| 东方厨 | 萌 | 睡觉 | |
| 分析纯 | 萌 | 咕咕咕 | |
| MC | 萌 | 睡觉 | |
强迫症可以用空格把源码对齐。但是不是特别必要。
Typora的所见即所得模式下输入表头行后按Enter就能自动渲染。填写表格的时候,按Tab移动到右边一格。按Enter移动到下边一格。按Ctrl+Enter增加一行。按Shift+Ctrl+Backspace或者Shift+Ctrl+Backspace删除光标所在行(只剩一行时不能删除)。
鼠标移动到行首位置可以拖动整行,更换表格行顺序。
另外在Typora中可以右键空白处使用表格工具插入表格。当光标在表格内的时候也会浮现表格编辑工具按钮。Typora的Mac版还支持Touch Bar。
杂项
分割线
标记---
单独占一行表示一条分割线。你也可以用***
单独占一行表示分割线。但是不管用那种,请统一使用一种。
唐王被困淤泥河,欲知何人前来救驾,且听下回分解。
---
上回书说到唐王被困淤泥河……
emoji
如果用UTF-8编码保存的话,直接把emoji表情粘贴到文本中或者直接用输入法输入表情就可以。这里介绍的是GFM风格的一种Markdown语法。你可以在书写的时候在一对:
之间写上emoji表情的名字。这样在编译渲染之后就会转化为对应的表情。
在嘛?
我要睡觉了:smile:
更多表情名参见GFM风格Markdown所支持的表情列表。
Unicode字符
如果要插入一些输入法不支持的Unicode字符。在Typora中可以直接按HTML中Unicode的使用方式书写。开头&#
结尾;
。中间Unicode编号(x
表示十六进制编号。)
插入HTML风格的Unicode字符插入方式Ĩ。
HTML
Markdown中可以直接使用HTML标签。所以有什么Markdown本身不支持的语法直接用HTML标签表示就可以。
例如<u>下划线</u>。
<span style='color:red'>span标签。</span>
键盘按键显示<kbd>Ctrl</kbd>。
<ruby>
上 <rp>(</rp><rt>Shang</rt><rp>)</rp>
标 <rp>(</rp><rt>Biao</rt><rp>)</rp>
注 <rp>(</rp><rt>Zhu</rt><rp>)</rp>
释 <rp>(</rp><rt>Shi</rt><rp>)</rp>
</ruby>
整段的HTML也是可以的。并且Typora的所见即所得模式下,编辑整段HTML时HTML会以代码段那样的样式显示。编辑完后自动渲染为应该表现出来的效果。下边是一段Typora官网上的示例代码。
<details>
<summary>I have keys but no locks. I have space but no room. You can enter but can't leave. What am I?</summary>
A keyboard.
</details>
由于有的HTML标签有交互性。在 Typora的所见即所得模式下,当你点击一段已经完成的HTML时可能打不开编辑模式。这时可以按Ctrl同时左键点击,进入HTML段落的编辑模式。
Markdown本身没有注释功能。可以用HTML的注释标签。在Typora中编辑的时候能看到注释标签。但是导出之后不会显示注释的内容。
<!--我很怀疑Markdown这类排版语言是否真的需要注释功能。难道你像我一样有什么小声哔哔的话要写进去?-->
Markdown的所有样式都能用内嵌HTML的方式实现。但是建议尽量用Markdown。不得已再用内嵌HTML。因为Markdown的写法非常简洁,容易写也容易读。
音频和视频
使用HTML标签可以插入音频和视频。实现原理类似插入图片,就是在Markdown中引用音频或视频文件。在Typora中可以直接播放引用的视频或者音频(如果找得到的话)。但是导出后不一定支持(看具体的导出格式和路径)。
<video src="C:/Users/TaiXuan/Videos/20181001-204042287.mp4"/>
<audio src="C:/Users/TaiXuan/Music/Jose Cancela & Amy Marie Beauchamp - An Entrance.mp3">
博客
Typora对YAML博客系统在Markdown中新增的标题头有语法支持。详见官方说明。
拓展模块
Typora还支持很多拓展语法。但是由于这些语法基本上都是独立的小语言,在这篇文章中三言两语介绍不完。这里就先简单提一下。
- TeX风格的数学公式。
- 用标记语言描述框图。
- Typora支持用js-sequence渲染序列图。
- Typora支持用flowchart.js渲染流程图。
- Typora支持用mermaid渲染序列图、流程图和甘特图。