人人都遇到过排版难题
写作是每个人日常生活和工作中必不可少的内容,无论是写博客、写邮件,还是写报告、写接口文档、写项目方案文档。
在用 Word 或类似编辑工具写作时,想必你一定纠结过字体、字号、间距等等的排版问题吧 :)。
Word 这类富文本编辑工具,以所见即所得的方式,为用户提供了大量的可选样式和排版支持,用户在编辑时所看到的文章样式就是最终所呈现的样式。它的功能十分强大,样式选择也足够自由。
但也正是它的强大和自由,让没有经验的用户面对排版样式的汪洋,不知所措:
- 一级标题用什么字号什么字体?
- 二级辩题用什么字号什么字体?
- 正文用什么字号什么字体?
- 正文与前后标题的边距怎么设定?
- 行间距,字间距,段落间距?
- ......
想要让文字排版成一篇看起来有模有样的文章确实不是一件容易的事,不仅需要掌握一些排版知识,也需要培养基本的排版审美。要是你向我一样有强迫症那就惨了,不停地去调整比对,却总是不尽人意 :)。
那有没有这样一个模版,推荐一个好看的样式,让我不用关心各类字体、字号、间距等等的问题,而是可以直接往里头套?
试试 Markdown 吧。
Markdown 是什么
Markdown 是一种标记语言。在写作时,你的所有文字都是纯文本的,在你的文字中插入若干 Markdown 标记,被标记的文字便有了样式,样式将会在渲染的时候呈现,并且样式的显示效果是由渲染工具决定的。
比如,在你所写的文字中,有一行你希望是最终排版呈现一级标题的样式,那就给这行文字加个一级标题的标记;某个地方有两个字需要加粗,那就给这两个字加个粗体标记,最终的排版效果中这两字就会是粗体模样。
Markdown 支持对多种文章元素做标记,包括但不限于:
- 一至六级标题
- 粗体
- 斜体
- 引用
- 列表
- 图片
- 表格
- 链接
- 代码块
当前这篇文章就是用 Markdown 写的,你正在看的这个章节内容的 Markdown 形式是这个样子的:
### Markdown 是什么
Markdown 是一种纯文本的标记语言。在写作时,在你的文字中插入若干 Markdown 标记,被标记的文字便有了样式,样式将会在渲染(编译)的时候呈现,并且样式的显示效果是由渲染工具决定的。
比如,在你所写的文字中,有一行你希望是最终排版呈现一级标题的样式,那就给这行文字加个一级标题的标记;某个地方有两个字需要加粗,那就给这两个字加个粗体标记,最终的排版效果中这两字就会是粗体模样。
Markdown 支持对多种文章元素做标记,包括但不限于:
- 一至六级标题
- 粗体
- 斜体
- 引用
- 列表
- 图片
- 表格
- 链接
- 代码块
复制代码
内容经过渲染之后便是你所看的的效果。
Markdown 怎么用
前面说了,Markdown 就是给文章元素作标记,把某处内容标记成什么那它最终就呈现对应的样式,而所用到的标记其实就是一些符号。
那 Markdown 标记都有哪些,样式效果是怎么的呢?
常用的标记
-
二级标题
## 这是二级标题 复制代码
这是二级标题
-
三级标题
### 这是三级标题 复制代码
这是三级标题
-
四级标题
#### 这是四级标题 复制代码
这是四级标题
-
粗体
这是**粗体** 复制代码
这是粗体
-
引用
>这是引用 复制代码
这是引用
-
有序列表
Markdown 中列表有两种: 1. 有序列表,像这样带序号的。序号以数字、点、空格组成 2. 无序列表,不带序号的,也就是后面那种 复制代码
Markdown 中列表有两种:
- 有序列表,像这样带序号的。序号以数字、点、空格组成
- 无序列表,不带序号的,也就是后面那种
-
无序列表
无序列表有两种相同效果的写法: * 用 * 和一个空格开头 - 用 - 和一个空格开头 复制代码
无序列表有两种相同效果的写法:
- 用 * 和一个空格开头
- 用 - 和一个空格开头
一个列表中我们应该始终用同一种写法,不用混用 * 和 -
-
链接
[这是链接文本](https://xx.xx/xx) 复制代码
这是链接文本
-
插入图片
![任意图片名称](https://xx.xx/xx) 复制代码
加载成功时:
加载失败时:
-
插入表格
| 表头1 | 表头2 | | --- | --- | | 单元格1 | 单元格2 | | 单元格11 | 单元格22 | 复制代码
表头1 表头2 单元格1 单元格2 单元格11 单元格22
不常用但可能会用到的标记
-
代码块
```python print('代码块表示多行代码,使用```来开头和结尾代码块') print('语言标识可选,若有则可自动高亮代码元素') ``` ` 复制代码
print('代码块表示多行代码,使用```来开头和结尾代码块') print('语言标识可选,若有则可自动高亮代码元素') 复制代码
-
行内代码
这是行内代码 `echo 行内代码嵌入在某一行文本中 复制代码
这是行内代码
echo 行内代码嵌入在某一行文本中
-
一级标题
# 这是一级标题 复制代码
这是一级标题
-
五级标题
##### 这是五级标题 复制代码
这是五级标题
-
六级标题
###### 这是六级标题 复制代码
这是六级标题
-
分割线
--- 复制代码
-
斜体
这是*斜体* 复制代码
这是斜体
-
删除线
这是~~删除线~~ 复制代码
这是
删除线
编辑器
Markdown 是基于纯文本的,所以你可以直接使用记事本这样的编辑器来写作,但是记事本没法渲染 Markdown 内容,也就没法呈现最终的排版效果。所以你需要一款能渲染 Markdown 内容的编辑器。
这里为大家推荐两款免费编辑器:
- Typora,适合所有人,美观,易用。(其官网的演示视频www.typora.io/img/beta.mp…)
- VS code + markdownlint 插件,适合程序员
另外大多笔记产品和博客平台支持 Markdown 写作,所以也可以直接用那些。
图床
之前介绍了 Markdown 插入图片的方式:
![任意图片名称](https://xx.xx/xx)
复制代码
这里演示的链接是网络链接地址,其实也可以使用本地的文件路径,当然这个文件路径需要是有效的图片路径,形式如下:
![任意图片名称](C:\Documents\sample.png)
复制代码
如果你的文章只会在本地浏览,那么链接使用本地图片路径完全没有问题,但是如果文章需要分享给别人,或者需要在其他电脑上浏览,那么本地图片的方式就不行了,图片无法正常加载出来。
通常情况下还是建议使用网络链接地址的方式来插入图片,因为这种方式可以跨设备,通用性更好。但是就引来一个问题,图片该如何上传到网上,并且得到这图片在网上的链接地址?
云存储作为图床
我们把网络上用来保存上传的图片,并且提供图片链接的存储叫做图床。
我们可以使用云上的存储服务作为图床,比如阿里云的 OSS 和 AWS 的 S3,另外也有很多人推荐七牛云。云存储作为图床有几个好处:
- 稳定可靠
- 费用低廉甚至免费
- 可同时用作自己的文件备份系统
这里以阿里云 OSS (云存储服务)作为示例,简单介绍下如何上传图片并得到该图片的网络链接:
- (仅第一次使用时) 首先在阿里云官网(aliyun.com)注册阿里云账号(可能需要实名认证),并登陆
- 通过网址(oss.console.aliyun.com)进入 OSS 控制台(若需要开通服务则选择开通)
- (仅第一次使用时) 找到并点击右侧的「新建 Bucket」按钮,输入一个未被占用的名称,「读写权限」选择「公共读」,其他不变,然后「确定」
- 页面左侧列表中便可以看到你刚才所设置的存储空间名称,点击进入
- 「文件管理」 -> 「上传文件」 -> 「上传文件」
- 文件上传后列表中会出现刚才上传的文件条目,点击条目右侧的「更多」 -> 「复制文件 URL」
- 至此图片已经上传,并且它的网络链接已经得到,可以在 Markdown 中使用了。值得注意的是,步骤 1. 和 3. 在第一次使用之后便可以不再操作
结语
前面总共介绍了 18 种 Markdown 标记,其实常用的也就 10 种左右,这些标记符号都很简单,不出二十分钟便能全部记住。以后在写作的时候请尽量去使用 Markdown,一方面反复的练习会使你牢牢记住各种标记符号,使用时信手拈来;另一方面,Markdown 的使用会大大方便你写作,减少排版带来的负担。请坚信 Markdown 会为你带来生产力的提升。
细心的读者可能发现了,在介绍 Markdown 标记时,「一级标题」和「斜体」这么常见的样式被我列在了「不常用但可能会用到的标记」里,这是怎么回事?
其实这两种样式虽然常见,但是按照 Markdown 的中文写作规范来看,其实是很少被用到的。写作规范是什么呢?它定义了什么时候用粗体,什么时候用二级标题,什么时候必须加空格等等,是个指导性的说明。当然这个规范并非普适性的,规范可能有多种,但差别也不会太大,下一篇文章「轻松上手写作利器Markdown:写作规范」中将会为大家介绍我正在使用的 Markdown 中文写作规范。