MarkDown
总览
Markdown由Daring Fireball创建;原始指南在这里。
哲学
Markdown旨在尽可能地易于阅读和编写。
但是,首先要强调可读性。Markdown格式的文档应以纯文本形式原样发布,而不会看起来像已被标签或格式说明所标记。虽然Markdown的语法受到几种现有的文本到HTML过滤器的影响,包括Setext,atx,Textile,reStructuredText, Grutatext和EtText ,但Markdown语法的最大灵感来源就是纯文本电子邮件的格式。
为此,Markdown的语法完全由标点符号组成,这些标点符号经过精心选择,以使其看起来像它们的含义。例如,单词周围的星号实际上看起来像强调。Markdown列表看起来很像列表。假设您曾经使用过电子邮件,即使是块引用也看起来像是引用的文本段落。
内联HTML
Markdown的语法仅用于一个目的:用作Web 编写的格式。
Markdown不能替代HTML,甚至不能替代HTML。它的语法非常小,仅对应于很小的HTML标签子集。这个想法不是要创建一种使插入HTML标签更加容易的语法。我认为HTML标记已经很容易插入。Markdown的想法是使散文易于阅读,编写和编辑。HTML是一种发布格式;Markdown是一种书写 格式。因此,Markdown的格式语法仅解决可以以纯文本形式传达的问题。
对于Markdown语法未涵盖的任何标记,您只需使用HTML本身。无需在其前添加或定界以表明您已从Markdown切换为HTML;您只需使用标签。
唯一的限制是块级HTML元素-例如
<div>
,<table>
,<pre>
,<p>
等–必须从周围用空行内容分离,并且该块的开始和结束标签不应使用制表符或空格缩进。Markdown非常聪明,不会在HTML块级标签周围添加额外的(不需要的)标签。
例如,要将HTML表添加到Markdown文章中:
<table>
<tr>
<td>Foo</td>
</tr>
</table>
请注意,Markdown格式语法不会在块级HTML标记中处理。例如,您不能在HTML块内使用
*emphasis*
Markdown样式。
自动转义特殊字符
在HTML中,有两个字符需要特殊处理:<
和&
。左尖括号用于开始标签;“&”号用于表示HTML实体。如果要将它们用作文字字符,则必须将它们作为实体转义。
< 转义 < & 转义 &
块元素
段落与换行符
段落只是一个或多个连续的文本行,由一个或多个空行分隔。普通段落不应以空格或制表符缩进。
在markdown源代码中,段落由两个或多个空行分隔。在Typora中,只需要一个空白行(按一次
Enter
)即可创建新段落。为了使其他Markdown解析器识别换行符,您可以在行尾保留两个空格,或插入
<br/>
。
标题
Markdown支持两种样式的标题,即Setext和atx。
Atx样式的标题在行的开头使用1-6个#
字符,对应于标题级别1-6。
# This is an H1
## This is an H2
###### This is an H6
块引用
Markdown使用电子邮件样式的>
字符进行块引用。只需要在段落第一行前放置>
。
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
>
> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
> id sem consectetuer libero luctus adipiscing.
可以通过添加>
来附加级别来嵌套块引用(块引用在一个块引用中)。
> This is the first level of quoting.
>
> > This is nested blockquote.
>
> Back to the first level.
块引用可以包含其他Markdown元素,包括标题,列表和代码块。
> ## This is a header.
>
> 1. This is the first list item.
> 2. This is the second list item.
>
> Here's some example code:
>
> return shell_exec("echo $input | $markdown_script");
列表
Markdown支持有序列表(编号)和无序列表(项目符号)。
无序列表使用星号*
,加号+
和连字符-
(可互换)作为列表标记:
* Red
* Green
* Blue
+ Red
+ Green
+ Blue
- Red
- Green
- Blue
有序列表使用数字后跟句点。
1. Bird
2. McHale
3. Parish
任务列表
任务列表是带有标记为[]或[x](不完整或完整)的项目的列表。
- [ ] a task list item
- [ ] list syntax required
- [ ] normal **formatting**, @mentions, #1234 refs
- [ ] incomplete
- [x] completed
代码块
预格式化的代码块用于编写有关编程或标记源代码的代码。
要在Markdown中生成代码块,只需将代码块的每一行缩进至少4个空格或1个Tab符。
This is a normal paragraph:
This is a code block.
多行代码块在行开头输入3个```,指定代码块语言标识符,回车输入代码块内容。
行内代码块在2个`中输入代码块。
表格
使用|
进行表格分割。
| First Header | Second Header |
| ------------- | ------------- |
| Content Cell | Content Cell |
| Content Cell | Content Cell |
表中包括内联Markdown,例如链接,粗体,斜体或删除线等。
最左侧的冒号表示左对齐的列;最右边的冒号表示右对齐的列;两侧的冒号表示中心对齐的列。
| Left-Aligned | Center Aligned | Right Aligned |
| :------------ |:---------------:| -----:|
| col 3 is | some wordy text | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
分割线
可以在一行上单独放置三个或多个-
,*
,_
或者使用HTML中<hr/>
来生成分割线。符号中间可以有空格
* * *
***
*****
- - -
---------------------------------------
This is [an example][id] reference-style link.
跨度元素
链接
Markdown支持两种链接样式:inline和reference。
在这两种样式中,链接文本均由[方括号]分隔。
要创建内联链接,请在链接文本的右方括号后立即使用一组常规括号。在括号内,将URL指向链接要指向的位置,以及链接的可选 标题,并用引号引起来。例如:
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.
如果要引用同一服务器上的本地资源,则可以使用相对路径。
See my [About](/about/) page for details.
参考样式链接使用第二组方括号,在其中放置您选择的标签以标识链接
This is [an example][id] reference-style link.
[id]: http://example.com/ "Optional Title Here"
网址
插入URL作为链接用<url地址>
图片
Markdown使用一种类似于链接语法的图像语法,允许两种样式:inline和reference。
![Alt text](/path/to/img.jpg)
![Alt text](/path/to/img.jpg "Optional title")
参考样式链接使用第二组方括号,在其中放置您选择的标签以标识链接
![Alt text][id]
重点
Markdown将星号(*
)和下划线(_
)表示重点。用*
或_
包裹的文本将带有HTML <em>
标记。
*single asterisks*
_single underscores_
加粗
Markdown将2个星号(*
)和下划线(_
)表示加粗。*
或_
会导致其包含的内容被HTML <strong>
标签包裹
删除线
Markdown 使用2个~
表示删除线。
~~Mistaken text.~~
变成 错误的文字。
表情符号
使用语法输入表情符号:smile:
。😄
emoji地址:https://www.webfx.com/tools/emoji-cheat-sheet/
下标
使用2个~
来表示下标。HTML中使用<sub>
H~2~O
log~2~5
H<sub>2</sub>5
上标
使用2个^
来表示上标。HTML中使用<sup>
n^2^ = n + 1
x<sup>2</sup>
高亮
使用2个==
高亮文本。
==highlight==
下划线
Markdown中没有下划线语法,可以通过<u></u>
设置下划线。
<u>Underline</u>
嵌入内容
可以使用iframed的嵌入代码。
视频
可以通过<video>
HTML标签嵌入视频
<video src=xxx.mp4></video>
脚注
鼠标悬停在脚注上标上可以查看脚注的内容。
You can create footnotes like this[^fn1] and this[^fn2].
[^fn1]: Here is the *text* of the first **footnote**.
[^fn2]: Here is the *text* of the second **footnote**.