发布时间:2023-03-27 09:30
这一篇也是对专栏 深入理解机器学习方法及Python实现 的写作做一些准备工作,全面掌握Markdown语法在编辑写作过程中的应用,从而大大提升写作效率。通过阅读本文,你将比较系统地掌握Markdown的编辑技巧,从而轻松开启你的写作之旅。
Markdown是一种轻量级的【标记语言】,语法比较简单,允许人们以纯文本的形式编辑文档。用Markdown编辑的文档,其文件后缀为.md
、.markdown
,也可以轻松导出为HTML、Word、PDF、图片、Epub等多种文档格式。Markdown可用来撰写电子书,如Gitbook
,但目前更多的是用来撰写在线文档 。
Markdown的语法简单,学习成本是比较低的。在掌握语法的情况下,多多练习就可以信手拈来。这里是提供一下Markdown创始人的语法文档说明:Markdown语法官方文档 。
Markdown支持两种方式的标题:Stext
和atx
。
第一种方式时,在内容文字下方输入等号线标记一级标题,在内容下方输入点划线标记二级标题。画线的个数可以任意个,都可以生效。如下所示:
This is an H1
=============
This is an H2
-------------
第二种方式时,在内容首部加#
后并加上空格
来设定标题,1-6
个分别表示一到六级标题。
Markdown段落没有特殊的格式,直接在内容的末尾加上两个空格
并回车
即可。 当然,也可以在段落后使用一个空行
来重新开启一个段落。
可以在一个空行中用三个以上的*
、-
、_
来建立一个分割线, 符号间可以插入空格。
可以在文字两端分别添加~~
,即可在文字上显示删除线。
Markdown脚注的格式为[^要注明的文本]
,其实际用法如下:
这是一个创建脚注的例子[^武三郎]
[^武三郎]:https://www.zhihu.com/people/wujitao
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链接的使用方法有两种:[链接名称](链接地址)
和<链接地址>
。也可以使用更高级的链接方式,即链接地址用变量代替,在文章末尾处为变量赋值即可。示例如下:
这是一个高级的链接方式:[武三郎][wu],用这种方式可以更高效。
[wu]:https://www.zhihu.com/people/wujitao
Markdown的图片语法格式也有两种:![Alt 属性文本](图片地址)
和![Alt 属性文本](图片地址 \"可先标题\")
。其中,属性文本用来放图片的替代文字 。
目前,Markdown还不能指定图片的尺寸大小,若有需要,可以使用普通的标签,示例如下:
Markdown使用|
来分隔不同的单元格,使用-
来分隔 表头和其它行。在分隔表头和单元格的行处设置对齐方式,默认是左对齐的。对齐方式有:左对齐:-
、右对齐-:
、居中对齐:-:
。 其示例如下:
| 左对齐 | 右对齐 | 居中对齐 |
| :-----| ----: | :----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
其效果为:
对于不在Markdown范围之内的标签,可以直接在文档中写HTML标签。目前支持的HTML标签有:、、、、、
等 。如下示例:
、
使用 Ctrl+Alt+Del 打开任务管理器
其显示结果为:
Markdown中很多的字符用来表示特定的意义,若要显示这些符号,要用反斜杠\\
来转义。下表列出了需要转义的字符:
若想插入公式,可以用两个$$包围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}
$$
其输出显示结果为:
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[横向流程图]
```
其显示结果为:
```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
```
其显示结果为:
```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: 没人陪我玩
```
其显示结果为:
```mermaid
%% 时序图例子,-> 直线,-->虚线,->>实线箭头
sequenceDiagram
participant 张三
participant 李四
张三->王五: 王五你好吗?
loop 健康检查
王五->王五: 与疾病战斗
end
Note right of 王五: 合理 食物
看医生...
李四-->>张三: 很好!
王五->李四: 你怎么样?
李四-->王五: 很好!
```
其显示结果为:
```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
```
其显示结果为:
对于Typora工具使用起来非常方便,特别是在画流程图时,只要掌握了语法,用起来简直是得心应手。希望大家多多练习使用,从而能为自己的工作和学习提高效率。
本文到此结束!
=======================================================
欢迎【关注作者、私信作者】。我们一起交流一起进步。
=======================================================