一文全面掌握Markdown语法,轻松开启写作之旅

总第008篇

这一篇也是对专栏 深入理解机器学习方法及Python实现 的写作做一些准备工作,全面掌握Markdown语法在编辑写作过程中的应用,从而大大提升写作效率。通过阅读本文,你将比较系统地掌握Markdown的编辑技巧,从而轻松开启你的写作之旅。

Markdown是一种轻量级的【标记语言】,语法比较简单,允许人们以纯文本的形式编辑文档。用Markdown编辑的文档,其文件后缀为.md、.markdown,也可以轻松导出为HTML、Word、PDF、图片、Epub等多种文档格式。Markdown可用来撰写电子书,如Gitbook,但目前更多的是用来撰写在线文档 。

1.MarkDown 语法

Markdown的语法简单,学习成本是比较低的。在掌握语法的情况下,多多练习就可以信手拈来。这里是提供一下Markdown创始人的语法文档说明:Markdown语法官方文档

  • Markdown 标题语法

Markdown支持两种方式的标题:Stextatx

第一种方式时,在内容文字下方输入等号线标记一级标题,在内容下方输入点划线标记二级标题。画线的个数可以任意个,都可以生效。如下所示:

        This is an H1
=============

This is an H2
-------------
      

第二种方式时,在内容首部加#后并加上空格来设定标题,1-6个分别表示一到六级标题。

  • Markdown 段落语法

Markdown段落没有特殊的格式,直接在内容的末尾加上两个空格回车即可。 当然,也可以在段落后使用一个空行来重新开启一个段落。

可以在一个空行中用三个以上的*-_来建立一个分割线, 符号间可以插入空格。

可以在文字两端分别添加~~,即可在文字上显示删除线。

  • Markdown 脚注语法

Markdown脚注的格式为[^要注明的文本] ,其实际用法如下:

        这是一个创建脚注的例子[^武三郎]
[^武三郎]:https://www.zhihu.com/people/wujitao 
      
  • Markdown 字体语法

Markdown有以下几种设置字体的形式,如下示例:

        *斜体文本*
_斜体文本_
**粗体文本**
__粗体文本__
***粗斜体文本***
___粗斜体文本___
      
  • Markdown 列表语法

可以在内容前使用*+- 并加上空格的形式创建无序列表。 有序列表直接使用数字加上.并加上空格来表示。

列表的嵌套只需要在子列表的选项中添加四个空格即可实现。有序列表与无序列表均嵌套。

  • Markdown 区块语法

Markdown区块引用是在段落开头用>并加上空格来实现的, 用>>表示第二层嵌套,依次类推。在区块中也可以使用列表等其它特性,语法是一致的。在列表中放区块时,也要有首部有四个空格的缩进。

  • Markdown 代码语法

若要在文字段落内添加一个一句代码,可以使用反引号` 将其包围。

对于代码区域,可以用四个空格一个制表符(Tab键) 来实现,也可以用``` 包围一段代码,并可以选择性的指定一门语言。如下示例:

        ```python    # 这里也可以不指定语言
plt.plot(x_points, real_func(x_points), label='real')
plt.plot(x_points, fit_func(p_lsq[0], x_points), label="fitted curve")
plt.plot(x_points, fit_func(p_lsq_regularization[0], x_points), label="regularization")
plt.plot(x, y, 'bo', label='noise')
plt.legend()
```
      
  • Markdown 链接语法

Markdown链接的使用方法有两种:[链接名称](链接地址)<链接地址>。也可以使用更高级的链接方式,即链接地址用变量代替,在文章末尾处为变量赋值即可。示例如下:

        这是一个高级的链接方式:[武三郎][wu],用这种方式可以更高效。

[wu]:https://www.zhihu.com/people/wujitao

      
  • Markdown 图片语法

Markdown的图片语法格式也有两种:![Alt 属性文本](图片地址)![Alt 属性文本](图片地址 "可先标题")。其中,属性文本用来放图片的替代文字 。

目前,Markdown还不能指定图片的尺寸大小,若有需要,可以使用普通的<img>标签,示例如下:

        <img src="https://zhuanlan.zhihu.com/machine-learning-methods/logo.png" width="50%">
      
  • Markdown 表格语法

Markdown使用|来分隔不同的单元格,使用-来分隔 表头和其它行。在分隔表头和单元格的行处设置对齐方式,默认是左对齐的。对齐方式有:左对齐:-、右对齐-:、居中对齐:-:。 其示例如下:

        | 左对齐 | 右对齐 | 居中对齐 |
| :-----| ----: | :----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
      

其效果为:

v2-9591d51f72eef4c5e3438d6eff0dfc78_b.jpg

2.Markdown 高级应用

  • 支持HTML元素

对于不在Markdown范围之内的标签,可以直接在文档中写HTML标签。目前支持的HTML标签有:<b>、<i>、<kbd>、<em>、<sup>、<br>、<sub>等 。如下示例:

        使用 <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd> 打开任务管理器
      

其显示结果为:

v2-0be0cde67d3ed041896c4e68496492df_b.png
  • 字符的转义

Markdown中很多的字符用来表示特定的意义,若要显示这些符号,要用反斜杠\来转义。下表列出了需要转义的字符:

v2-f8d0b19d67cb473e1e752e6af0f48af8_b.jpg
  • 插入公式

若想插入公式,可以用两个$$包围LaTex格式的公式来实现,具体的LaTex插入公式的方法可参考文章:用LaTex语法快速编辑数学公式及好用的在线编辑工具

下面列举一个插入公式的例子:

        $$
\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix} 
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} &  \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} &  \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
$$
      

其输出显示结果为:

\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}  \mathbf{i} & \mathbf{j} & \mathbf{k} \\ \frac{\partial X}{\partial u} &  \frac{\partial Y}{\partial u} & 0 \\ \frac{\partial X}{\partial v} &  \frac{\partial Y}{\partial v} & 0 \\ \end{vmatrix}

3. Markdown 编辑工具

Typora是一款良好的Markdown编辑工具,支持MacOS、Windows、Linux平台,内部包含多种主题,编辑后直接渲染出效果,并且支持导出多种文件格式。Typora的下载地址为:Markdown编辑工具

在Typora中插入代码块,在里在写入代码并选择相应的语言,可以快速地画出各种流程图,这个比Visio要简单很多。下面举几个例子。

  • 横向流程图的书写
        ```mermaid
graph LR
A[方形] -->B(圆角)
    B --> C{条件a}
    C -->|a=1| D[结果1]
    C -->|a=2| E[结果2]
    F[横向流程图]
```
      

其显示结果为:

v2-c4682d9e49f7f673937d0640e2c65179_b.jpg
  • 标准流程图的书写
        ```flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
```
      

其显示结果为:

v2-5822400b29433ebf3d8fc88ead5c3669_b.jpg
  • UML时序图的书写
        ```sequence
Title: 标题:复杂使用
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象B->小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C
Note right of C: 没人陪我玩
```
      

其显示结果为:

v2-55115c02c25c1bec53ad6606dff1dc40_b.jpg
        ```mermaid
%% 时序图例子,-> 直线,-->虚线,->>实线箭头
  sequenceDiagram
    participant 张三
    participant 李四
    张三->王五: 王五你好吗?
    loop 健康检查
        王五->王五: 与疾病战斗
    end
    Note right of 王五: 合理 食物 <br/>看医生...
    李四-->>张三: 很好!
    王五->李四: 你怎么样?
    李四-->王五: 很好!
```
      

其显示结果为:

v2-6f98d42bcb71b2cf6578adc46f731162_b.jpg
  • 甘特图的书写
        ```mermaid
%% 语法示例
        gantt
        dateFormat  YYYY-MM-DD
        title 软件开发甘特图
        section 设计
        需求                      :done,    des1, 2019-01-06,2019-01-08
        原型                      :active,  des2, 2019-01-09, 3d
        UI设计                     :         des3, after des2, 5d
    未来任务                     :         des4, after des3, 5d
        section 开发
        学习准备理解需求                      :crit, done, 2019-01-06,24h
        设计框架                             :crit, done, after des2, 2d
        开发                                 :crit, active, 3d
        未来任务                              :crit, 5d
        耍                                   :2d
        section 测试
        功能测试                              :active, a1, after des3, 3d
        压力测试                               :after a1  , 20h
        测试报告                               : 48h
```
      

其显示结果为:

v2-fb7f43b0fe0a73da8c75a74fd5819362_b.jpg

对于Typora工具使用起来非常方便,特别是在画流程图时,只要掌握了语法,用起来简直是得心应手。希望大家多多练习使用,从而能为自己的工作和学习提高效率。

本文到此结束!

=======================================================

欢迎【关注作者、私信作者】。我们一起交流一起进步。

=======================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huixieqingchun

钟意作者

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值