博客已迁移至自建网站,此博客已废弃.
请移步至:https://blog.ours1984.top/posts/tenmmd/欢迎大家访问
在日常工作和互联网写作中,Markdown几乎随处可见,并且扮演着越来越重要的角色。不管你是不是程序员,只要关乎写作,都离不开Markdown。知乎、简书、CSDN、GitHub、WordPress、印象笔记、有道笔记等都支持Markdown,Markdown俨然已成为最流行的“写作语言”。
emmet前身是Zen coding,他使用仿css选择器的语法来生成代码,极大提高了编写HTML/CSS的效率,之后改名为emmet,但是随之而来的改变不仅限于名字,还增加了许多新的特性。
我们分别使用十分钟来入门
Markdown是由约翰·格鲁伯(John Gruber)在亚伦·斯沃茨(Aaron Swartz)的帮助下开发,并在2004年发布的标记语言。其设计灵感主要来源于纯文本电子邮件的格式,目标是让人们能够使用易读、易写的纯文本格式编写文档,而且这些文档可以转换为HTML(Hyper Text Markup Language,超文本标记语言)文档。
Markdown是一种轻量级标记语言,排版语法简洁,让人们更多地关注内容本身而非排版。它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML、PDF 以及本身的 .md 格式的文件。因简洁、高效、易读、易写,Markdown被大量使用,如Github、Wikipedia、简书等。嘿嘿嘿,这不就是和Markup唱反调吗
大家可能也知道,排版界有一个神器,latax。它对标word排版,但没有那么多按钮让你点,所有的一切都是文本,文本话排版格式.Markdown也是类似的,全文本化,解放了程序员宝贵的双手,不用再去点可恶的鼠标了!
同时,解决了二进制文件不可读问题。是的,一篇写好的markdown文章,你可以把它扔给别人排版,如果有版本管理工具,你们就可以愉快地解决冲突了!
千万不要被「标记」、「语言」吓到,Markdown的语法十分简单,常用的标记符号不超过十个,用于日常写作记录绰绰有余,不到半小时就能完全掌握。
就是这十个不到的标记符号,却能让人优雅地沉浸式记录,专注内容而不是纠结排版,达到「心中无尘,码字入神」的境界。
John Gruber的原始设计文档中概述的基本语法主要是为了应付大多数情况下的日常所需元素,但对于某些人来说还不够,这就是扩展语法的用武之地。
一些个人和组织开始通过添加其他元素(例如表,代码块,语法突出显示,URL自动链接和脚注)来扩展基本语法。可以通过使用基于基本Markdown语法的轻量级标记语言,或通过向兼容的Markdown处理器添加扩展来启用这些元素。
#
的数量代表了标题的级别。
# 标题1
## 标题2
### 标题3
第一段第一行
第一段第二行
第二段第一行
第二段第二行
** 加粗文本 **
* 斜体文本 *
*** 粗斜体文本 ***
> 第一块:引用第一段第一行
> 第一块:引用第一段第二行
>
> 第一块:引用第二段第一行
> 第一块:引用第二段第二行
- 无序列表第一元素
- 无序列表第二元素
1. 有序列表第一元素
2. 有序列表第二元素
1. 嵌套有序列表第一元素
2. 嵌套有序列表第而元素
3. 有序列表第三元素
行内代码`这是代码`
以下是围栏式代码块
```json
{
"firstName": "John",
"lastName": "Smith",
"age": 25
}
```
标题行内元素和内容行内元素用|分割开来
标题和内容之间用|—-|—-|分割开来
表格的语句上一行必须为空行,不然表格不生效
| 左对齐标题 | 右对齐标题 | 居中对齐标题 |
| :------| ------: | :------: |
| 短文本 | 中等文本 | 稍微长一点的文本 |
| 稍微长一点的文本 | 短文本 | 中等文本 |
|、-、:
之间的多余空格会被忽略,不影响布局。左对齐标题 | 右对齐标题 | 居中对齐标题 |
---|---|---|
短文本 | 中等文本 | 稍微长一点的文本 |
稍微长一点的文本 | 短文本 | 中等文本 |
vs code安装Markdown Table插件,可以使用ctrl+shift+f快速格式化表格
超链接 <https://blog.ours1984.top>
发邮件 <no-reply@ours1984.top>
[这是一个链接](https://blog.ours1984.top/,"鼠标悬停提示文字")
![这是一个图片](https://pic.ours1984.top/img/20220701203016.png!shuiyin "图片悬停文字")
Mermaid 是一个用于画流程图、状态图、时序图、甘特图的库,使用 JS 进行本地渲染,广泛集成于许多 Markdown 编辑器中。
vs code中需要安装Markdown Preview Mermaid Support
扩展启用支持
Mermaid 支持多种图表的方向,语法如下:
```mermaid
graph 方向描述
图表中的其他语句...
```
其中“方向描述”为
用词 | 含义 |
---|---|
TB | 从上到下 |
BT | 从下到上 |
RL | 从右到左 |
LR | 从左到右 |
流程图中每个文本块,包括开始、结束、处理、判断等。Mermaid 中每个节点都有一个 id,以及节点的文字。
表述 | 说明 |
---|---|
id[文字] | 矩形节点 |
id(文字) | 圆角矩形节点 |
id((文字)) | 圆形节点 |
id>文字] | 右向旗帜状节点 |
id{文字} | 菱形节点 |
如果节点的文字中包含标点符号,需要时用双引号包裹起来
节点间的连线表述如下
表述 | 说明 |
---|---|
> | 添加尾部箭头 |
- | 不添加尾部箭头 |
— | 单线 |
—text— | 单线上加文字 |
== | 粗线 |
==text== | 粗线加文字 |
-.- | 虚线 |
-.text.- | 虚线加文字 |
使用以下语法添加子图表
subgraph 子图表名称
子图表中的描述语句...
end
举个例子如下
```mermaid
graph TB
id1(圆角矩形)--普通线-->id2[矩形]
subgraph 子图表
id2==粗线==>id3{菱形}
id3-.虚线.->id4>右向旗帜]
id3--无箭头---id5((圆形))
end
```
graph LR
id1(圆角矩形)--普通线-->id2[矩形]
subgraph 子图表
id2==粗线==>id3{菱形}
id3-.虚线.->id4>右向旗帜]
id3--无箭头---id5((圆形))
end
对于html文档来说,文档类型DOCTYPE,<head>、<html>、<body>
这些标签都是必须的,如果每次都手工录入的话效率很低,使用emmet就可以在空白html文档中输入!
或者html:5
,快速生成结构
emmet的一个强大特性,使用类CSS选择器的方式,.是生成类名,#是生成id,{}中生成文本内容,[]中可以设置属性,可以嵌套使用。
编写lab#id.class[attr="some"]{content}
即可生成如下html代码
<lab id="id" class="class" attr="some">content</lab>
div是默认的标签,可以省略
emmet又一个强大的特性,也是让你写html速度起飞的关键因素。
>:子元素符号,表示嵌套的元素
+:同级标签符号
^:可以使该符号前的标签提升一行
其中^用的不多,容易让人逻辑混乱,这个时候就需要分组()
来实现。
编写(p>h1+h2)+span
或者p>h1+h2^span
即可生成如下html代码
<p>
<h1>hhh</h1>
</p>
<span>sss</span>
写页面的时候经常会遇到很多重复的结构用来显示数据,比如无序列表ul,如果列表项很多,手打就显得效率十分低下,好在emmet可以帮我们完美解决这个问题。
编写(div.warp>p.bar+span#foo)*2
即可生成如下html代码
<div class="warp">
<p class="bar"></p>
<span id="foo"></span>
</div>
<div class="warp">
<p class="bar"></p>
<span id="foo"></span>
</div>
对于列表项,经常会碰到有顺序的计数,这个时候,如果手工修改,吃力不讨好,且看我们的emmet如何大显神通。使用$
来表示数字占位,如果想要两位数的序号,添加两个$$
即可,依此类推
编写ul>li{item$$}*3
即可生成如下html代码
<ul>
<li>item01</li>
<li>item02</li>
<li>item03</li>
</ul>
添加@
可以指定计数起始点,添加-
号课倒序计数
编写ul>li{item$$@-89}*4
即可生成如下html代码
<ul>
<li>item92</li>
<li>item91</li>
<li>item90</li>
<li>item89</li>
</ul>