前言
日常工作中,我们通常习惯使用Office软件来编辑我们的文档。编辑过程中,你有没有遇到以下问题:
- 编辑中,经常需要我们在编辑好图文后,利用鼠标来选择一定的样式对文档进行排版。从而不可避免的需要在鼠标、键盘操作之间来回切换。
- 更有甚者,当我们看到一篇文档的排版非常漂亮并想要使用的时候,不得不一对照该文档的格式进行操作应用。
- 我们在复制文档的时候经常希望将文字希望连带格式一并复制粘贴过来,而这个时候往往出现格式丢失或者扭曲的现象。
那有没有一种方法可以解决以上问题?
我们可以通过Markdown
来定义文档,然后使用外部工具进行排版。本文的编辑便是使用Markdown
完成,然后通过Markdown here插件进行的排版。
什么是Markdown?
Markdown
是一种标记性语言,它规定了建立标题、插入列表、插入图片、插入公式等的规则,只要我们遵循
这些规则写好文档,就可以使用外部样式工具来建立各种样式的文章。
由于Markdown
简单易用且可以应用各种已经定义好的样式,普遍被科研工作者、新媒体文章作者和开发人员所使用。
Markdown
的目标是易于阅读,创作和编辑文章。
Markdown编辑工具
编辑Markdown
文档,可以直接使用文本编辑器。但是,不能直观的感受编辑效果。我们可以选择可以边编辑边查看效果的编辑软件,从而获取编辑什么,看到什么
的体验。以下推荐几款常用Markdown
编辑软件。
Visual Studio Code
Visual Studio Code作为软件开发人员工具,也可以同时方便快捷编辑Markdown
。
Typora
Typora作为一款Markdown
编辑器,可以边编辑边查看效果,同时提供了丰富的样式选择。
Markdown编辑
使用Visual Studio Code
作为编辑器,选择文件-》新建文件
,再选择文件-》保存
,将文件保存为.md
为后缀的文件,如还在用Word编辑文档?OUT啦.md
。
接下来,介绍下Markdown
的语法规则。
标题
Markdown
有六种标题,使用一到六个#号 + 一个空格 + 标题
表示,一级标题使用1个#
,二级标题使用2个#
,以此类推。
每个例子后面的内容可以直接复制粘贴到编辑器中,然后就可以看到效果。
例:
# 一级标题
## 二级标题
### 二级标题
#### 二级标题
##### 二级标题
###### 二级标题
效果如下图:
段落
段落的前后要有空行,所谓的空行是指没有文字内容。
若想在段内强制换行应该使用两个以上空格加上回车(引用中换行省略回车)。
例:
第一个段落第一行
第二行(显示在第一行后面)
第二个段落第一行
第二行(另起一行)
注意:上述写法中,第二个段落第一行
后面有2个空格,如下图所示。
效果如下:
第一个段落第一行
第二行(显示在第一行后面)
第二个段落第一行
第二行(另起一行)
引用
引用以> + 空格
开始。
例:
> 百日依山尽,黄河入海流
效果如下:
百日依山尽,黄河入海流
引用还可以层叠嵌套,以2个或者更多个连续> + 空格
表示嵌套引用。
例:
> 百日依山尽,黄河入海流
>> 王之涣
>>> 唐
效果如下:
百日依山尽,黄河入海流
王之涣
唐
代码区块
代码区块的建立是在每行加上4个空格或者一个制表符。
例:
function test() {
console.log('ok');
}
效果如下:
function test() {
console.log('ok');
}
注意:代码区块需要和前面的普通段落之间存在空行。
斜体和粗体
斜体
将文字包裹在*或者_字符中,表示文字是斜体。
例:
*斜体*
_斜体_
效果如下:
斜体
斜体
粗体
将文字包裹在**或者__字符中,表示文字是斜体。
例:
**粗体**
__粗体__
效果如下:
粗体
粗体
列表
无序列表
使用*
、+
、或-
再加一个空格
标记无序列表。
例:
* 第一项
这是第一项下的一段文字。
+ 第二项
- 第三项
- 第三项子项1
- 第三项子项2
- 第三项子项2的子项1
效果如下:
- 第一项
这是第一项下的一段文字。
- 第二项
- 第三项
- 第三项子项1
- 第三项子项2
- 第三项子项2的子项1
有序列表
有序列表的标记方式是将上述无序列表的符号换成数字,并辅以.
再加一个空格
。
例:
1. 第一项
1. 第一子项
2. 第二子项
2. 第二项
3. 第三项
效果如下:
- 第一项
- 第一子项
- 第二子项
- 第二项
- 第三项
注意:无序和有序列表都可以混合嵌套使用。
链接
链接有两种形式:行内式和参考式。
行内式指直接在后面给出链接地址。
而参考式则是在文末给出链接地址的别名,在文章中直接使用链接地址的别名。
行内式
例:
[IntelliJ IDEA常见乱码场景及解决方案
](http://mp.weixin.qq.com/s?__biz=MzIxNDMxOTI5OA==&mid=100000001&idx=1&sn=817324d30eb8d0d3f427b6fb94bb4032&chksm=17a828ac20dfa1baeedc203cd11e1f98f8d2927ba871497f1ea04f6c09256aba7912c589a71f#rd "乱码场景及解决方案")
效果如下:
IntelliJ IDEA常见乱码场景及解决方案
参考式
例:
[IntelliJ IDEA常见乱码场景及解决方案
][wrong_code]
效果如下:
IntelliJ IDEA常见乱码场景及解决方案
wrong_code为文末定义的别名。如下图:
图片
添加图片的形式和链接相似,只需在链接的基础上前方加一个!
例:
![Window](https://mmbiz.qpic.cn/mmbiz_png/5pjFicjjUJ5dC58dC3yUKrGemTcy4G4h2ZsJJic2GhYdiaIxKtcdNKuSOllk5XMSLv1K2VexnEadSytibJJout4Grg/0?wx_fmt=png)
效果如下:
例:
![PyCharm][pycharm]
pycharm为文末定义的别名。如下图:
效果如下:
分割线
分割线使用三个或以上的连续*、-或者_。
例:
***
---
___
效果如下:
特殊字符
反斜杠
反斜杠\相当于反转义作用,使符号成为普通符号。
例:
显示\-
效果如下:
显示-
符号`
符号`起到标记作用。
例:
`mark`
效果如下:
mark
代码
使用三个```包裹。在```后面标注所使用的编程语言。
例:
效果如下:
删除线
使用删除线的文字使用~~
包裹。
例:
~~删除线~~
效果如下:
删除线
表格
表格各列之间使用|分割;
表格表头和数据行之间使用多个-分割。
关于表格数据对齐方式:
-
:
在一列的左端表示左对齐; -
:
在一列的右端表示右对齐; -
:
在列的两端都有表示居中对齐;
默认为左对齐。
例:
| 姓名 | 语文 | 数学 | 英语 |
|----------|:--------:|---------:|:---------|
| 张三 | 85 | 80 | 90 |
| 王五 | 80 | 90 | 80 |
| 李义山 | 90 | 100 | 90 |
效果如下:
姓名 | 语文 | 数学 | 英语 |
---|---|---|---|
张三 | 85 | 80 | 90 |
王五 | 80 | 90 | 80 |
李义山 | 90 | 100 | 90 |
任务列表
任务列表以[]
和[x]
分别表示代办任务和已完成任务。在[]
和[x]
之前应该有无序列表或者有序列表规则。
例:
- [x] 支持@提及, #引用, [github](https://github.com/), **格式**, 和<del>标签</del>
- [x] 要求列表语法(无序、有序列表都可以)
- [x] 已完成任务
- [ ] 未完成任务
效果如下:
- 支持@提及, #引用, github, 格式, 和<del>标签</del>
- 要求列表语法(无序、有序列表都可以)
- 已完成任务
- 未完成任务
Latex公式
科研人员常使用的Latex公式包裹在$$中。
例:
$$(x-y)^2\equiv(-x+y)^2\equiv x^2-2xy+y^2$$
效果如下:
直接嵌入HTML标记
可以直接嵌入HTML标记。
例:
<ol>
<li>1</li>
<li>2</li>
</ol>
<strong>粗体</strong>
效果如下:
<ol>
<li>1</li>
<li>2</li>
</ol>
<strong>粗体</strong>