Markdown个人学习记录
Markdown个人学习记录
参考书籍:《了不起的Markdown》-毕小朋-电子工业出版社
第一章 Markdown概述
- Markdown作为现在最流行的轻量级 “写作语言”,具有更加易读、易写的特点。
- 起初的Markdown仅用于网络写作,但本身功能有限,无法满足所有的需求和场景,由此产生了许多的扩展语法,现在最流行的扩展语法是Github Flavored Markdown,简称GFM。
- Pandoc可以将Markdown文件转化为各种各样的文件格式,如HTML、OpenDocument等。
- Markdown适用场景:对排版无特殊要求,并且不想花太多时间再排版上,如果对排版要求较高,仍然建议适用Word,也可以将Markdown转化为Word,随后进行个性化的排版。
- Markdown通过编辑器进行文章的渲染、发布或导出,常用的编辑器如Typora、VS Code、GitBook以及印象笔记。
- 语法学习
- 基础语法
- 扩展语法
- 写作规范1
第二章 Markdown语法
第一节 基础语法
1. 字体
1.1 标题
- 标题支持适用底线(-/=)和#两种标记,但由于底线(-/=)和后续的语法会出现重合,因此建议使用**#**。
- 使用语法:#+空格+标题内容
# 一级标题
## 二级标题
###三级标题
#### 四级标题
##### 五级标题
##### 六级标题
- 语法说明:
-
#的个数表示标题的等级
-
建议在#后加一个空格
-
Markdown最多支持前六级标题
-
使用规范:
- 标题的前后都要空一行,除非标题在文档开头,另外#与标题文本之间也要有一个空格。
- 标题结尾不要有空格、标点符号
- 标题尽量简短
-
# 文档标题
参考资料
摘要
目录
## 第一章 XXXX
### 第一节 XXXX
#### 一、XXXX
##### (一)XXXX
###### 1. xxxx
### 第二节 xxxx
## 第二章
- 文档结构说明
- 文档的第一个标题应该是一级标题,写在第一行,建议与文件名相同
- 参考资料、摘要、目录等模块根据个人需要自行修改
- 正文内容,正文从二级目录开始,逐级增加,不可跳级,不可相同
个人喜欢对标题进行添加序号,也可根据自己需要自行选择,不加序号也可
对于层级较多的,用第X章、第X节、一、(一)、1.、1.1逐级递减,如果层级交少,直接选择序号从一开始
1.2 段落与换行
-
段落由一行或多行文本组成,不同的段落之间用空行来标记
-
语法说明:
- 如果行与行之间没有空行,则会被视为同一段落
- 如果行与行之间有空行,则会被视为不同段落
- 空行是指行内什么都没有,或者只有空格和制表符
- 如果想在段内换行 ,则需要在上一行的结尾插入两个以上的空格然后回车
-
使用规范
- 为便于阅读,应该限制每行字符的数量,通常每行不超过80个字符,可以在编辑器中进行设置
- 关于换行,建议如下:
- 当超过80个字符后进行换行
- 在一句话结束(。或!或?)之后换行
- 当URL较长时换行2
1.2.1 列表
-
有序列表
- 语法:
数字序号 + 英文句号 + 空格 + 列表内容 - 范例:
1. xx
- 语法:
-
无序列表
- 语法:
*/+/- + 空格 + 列表内容,但是建议使用- - 范例:
- xxxx
- 语法:
-
嵌套列表
- 有序列表和无序列表可以相互嵌套
- 用TAB嵌入下级
-
使用规范
- 建议使用-来标记无序列表,因为
*容易跟粗体和斜体混淆,而+不流行 - 如果一个列表中所有的列表项都没有换行,建议使用1个空格
- 如果列表项有换行,则建议给无序列表使用3个空格,给有序列表使用2个空格
- 如果每个列表中的每个列表项都只有1行,建议列表项之间不要有空行
- 如果列表项中有换行,建议在列表项之间空1行,这样会比较容易区分多行列表项的开始和结束
- 数字、字符、符号列表使用英文半角句号,句号后加空格
- 建议使用-来标记无序列表,因为
列表项内没有换行,则建议使用1个空格
- 秋(1个列表项)
- 围
- 软
如果列表项有换行,则建议给无序列表使用3个空格,给有序列表使用2个空格
- 这个列表项(3个空格)
有换行(一个列表项内部有换行)
- 这个没有
1. 这个有序列表(两个空格)
有换行
2. 这个没有- 这个列表项(3个空格)
有换行(一个列表项内部有换行)
- 这个没有
1. 这个有序列表(两个空格)
有换行
2. 这个没有
如果每个列表中的每个列表项都只有1行,建议列表项之间不要有空行
- 秋(1个列表项)
- 围
- 软
一个列表项内有换行,不仅要有3个空格,而且每个列表项之间要空行
- 抽很多的
烟
- 喝酒
- 烫头
数字、字符、符号列表使用英文半角句号,句号后加空格
1. 我是好人(留一个空格,一个列表项出现换行,则需要2个空格)
2. 他是好人
3. 你也是好人
a. 我是好人
b. 他是好人
1.2.2 分割线
- 分割线由3个以上的
*/-/_来标记,建议使用- - 语法:
--- - 语法说明
- 至少3个以上
- 行内不能有其他字符
- 可以在标记符中间加上空格
1.3 图片
- 语法:
 - 语法说明
- 图片替代文字在图片无法显示时会比较有用,正常情况下可以为空
- 图片地址可以是本地图片的路径也可以是网络图片的地址
- 本地图片支持相对路径 和绝对路径 两种方式
1.4 链接
1.4.1 文字链接
- 语法:
[链接文字](链接地址) - 为了可读性强一些,可以采用这样一种写法,通过将链接与文字分开
在日常我们常使用的网址:[Google]、[GitHub]和[Stack Overflow]
[Google]: https://www.google.com/
[GitHub]: https://github.com/
[Stack Overflow]:
https://stackoverflow.com/?utm__source=rss&utm_medium=rss
1.4.2 引用链接
- 引用链接是指:把链接地址作为“变量”先在markdown文件的页尾定义好,然后在正文中引用
- 在正文中引用链接标记,可以理解为引用定义好的变量
- 在底部定义链接标记,可以理解为定义一个地址变量
正文
XXXX[链接文字][链接标记]
文档底部
[链接标记]: 链接地址
- 语法说明
- 链接标记可以有字母、数字、空格和标点符号
- 链接标记不区分大小写
- 定义的链接内容可以放在当前文件的任意位置,建议放在页尾
- 当链接地址为网络地址时要以http/https开头,否则会被识别为本地地址
1.4.3 网址链接
- 在Markdown中,将网络地址或邮箱地址用<>包裹起来,会被自动转换为超链接
- 语法:<URL或邮箱地址>
1.4.4 使用规范
- 使用有意义的链接标题
- <>包裹自动链接
- 自动链接要http/https开头
1.5 行内代码与代码块
1.5.1 行内代码
- 行内代码引用使用`包裹
- 语法如下
`代码`
1.5.2 代码块
- 代码块以Tab键或4个空格开头,Typora使用时要保证此从段落开头开始,否则不会实现此功能,使用```来更方便
- 因为代码块使用Tab键或四个空格开头的效果不够直观,很多扩展语法(如GFM)提供了围栏代码块,并且支持语法高亮
1.5.3 使用规范
- 除行内代码可以使用
包裹外,如果我们想转义或强调某些字符,也可以使用包裹 - 如果代码超过1行,使用围栏代码块(扩展语法),便于阅读
- 很多Shell命令都要粘贴到终端中去执行,因此最好避免在Shell命令中使用任何换行操作;可以在行尾使用一个\,这样既能避免命令换行,又能提高源代码的可读性
- 不要在没有输出内容的Shell命令加,在命令没有输出内容带情况下,是没有必要的,因为内容全是命令,我们不会把命令和输出的内容混淆
- 建议在有输出内容的Shell命令前加上$,这样会比较容易区分命令和输出的内容。
1.6 引用
-
语法:
> XXX -
语法说明
- 多行引用也可以在每一行的开头都插入
> - 在引用中可以嵌套引用
- 在引用中可以使用其他的Markdown语法
- 段落与换行的格式在引用中也是适用的
- 多行引用也可以在每一行的开头都插入
-
使用规范
- 建议在引用的标记
>后加一个空格 - 建议每一行引用都使用
> - 不要在引用中添加空行
- 建议在引用的标记
1.7 转义
- 如果想在Markdown文件中插入一些标记符号,但又不想让这些符号被渲染时,可以使用\进行转义,维持原符号的样式。
第二节 扩展语法GFM
GitHub Flavored Markdown(简称GFM)是Markdown扩展语法中最流行的语法,提供了包括表格、人物列表、删除线、围栏代码、Emoji等在内的标记语法。
- 删除线
- 语法:被删除内容
- 表情符号
- :表情代码:
- 更多表情符号:http://www.webpagefx.com/tools/emoji-cheat-sheet/
- 自动链接
- 标准语法中,<>包裹的URL地址会被自动识别并解析为超链接,使用GFM扩展语法则可以不用<>
- 自动链接只识别以www或http://开头的URL地址
- 如果不想使用自动链接,也可以使用``包裹URL地址
表格
* 单元格使用`|`来分割
* 语法说明
* 为了阅读更清晰,建议最前和最后都使用`|`
* 为了阅读更清晰,建议最前和最后都使用`|`
* 表头与其他行使用-来分割
* 表格对其格式如下
* 左对齐(默认)`:----`
* 右对齐`----:`
* 居中对齐`:----:`
* 块级元素(代码块区、引用块区)不能插入表格中
* 语法规范
* 在表格的前后各空一行
* 在每一行最前和最后都使用`|`,每一行中的|要都尽量都对齐
* 不要使用庞大复杂的表格,那样会难以维护和阅读
|表头1|表头2|表头3|
|---|---|---|
|内容1|内容2|内容3|
|内容4|内容5|内容6|
任务列表
语法:- [ ]或- [x其他内容]
x可以大写也可以小写,有些编辑器可能不支持大写,因此为避免解析错误,推荐使用小写的x
方括号中的字符为空格时,复选框是未选中状态,为x是是选中状态
围栏代码块
* 在基础语法中,使用四个空格或Tab键,可以调用代码块;在扩展语法中,围栏代码块使用连续3个~或3个`包裹,还支持语法高亮,可读性和可维护性更强一些
锚点/书签
* 锚点,也称书签,使用锚点可以跳转到当前文档或其他文档中指定的标记位置
* Markdown会被渲染成为HTML页面,在HTML页面中可以通过锚点实现跳转;GitHub、GitBook项目文档中的目录也是通过锚点实现跳转
* 语法:`[锚点名称](#锚点名#)`
* 语法规范
* 锚点名建议使用字母和数字,当然中文也是被支持的,但不排除有些网站支持不够
* 锚点名是区分大小写的
* 在锚点名中不能含有空格,也不能含有特殊字符
第三节 排版技巧
1. 空格
- 建议中文和英文之间加空格,中文/英文和数字之间也要加空格
-
一些需要加空格的情况
- 英文标点符号与后面的字符之间需要加空格,与前的字符之间不需要加空格
- 当再中文、英文中使用>(半角)标识路径时,两边都需要加空格
-
不加空格的情况
- 中文标点符号和数字、中文、英文之间不需要添加空格
- 数字和百分号之间不需要添加空格
- 数字和单位符号之间不需要添加空格
- 英文和数字组合成的名字之间不需要添加空格
- 当/()半角表示“或”、“路径”时,与前后的字符之间均不加空格
- 货币符号后不加空格
- 负号后不加空格
-
2. 全角和半角
-
辨析
- 全角:中文标点符号是全角,占2个字符
- 半角:英文标点符号和数字是半角,占1个字符
-
中文排版中,要使用全角标点符号
-
英文排版中,要使用半角标点符号
3. 大小写
- 正确使用专有名词的大小写
第三章 Typora
- Typora是当下最为流行的Markdown编辑器之一
- Typora适用场景:工作计划、学习笔记、技术博客等
- Typora主要特性
- 实时预览,Typora将源码和效果预览合二为一,实时查看
- 扩展语法,Typora不仅支持GFM,还扩展了数学公式、流程图等功能
- 快捷操作,对于各种Markdown都提供了快捷键操作
- 界面主题,可以自定义主题或使用他人分享的主体
- 文件转换,支持多种文件格式的导入导出功能
一、基础配置与认识
安装Typora
* [Typora官网](https://typora.io/download)即可下载
Typora界面预览
菜单栏
* 文件
* 编辑
* 段落
* 格式
* 视图
* 主体
* 帮助
侧边栏
* 大纲
* 文档列表
* 文件树
* 搜索框
编辑区
* 文档的编辑区
状态栏
* 普通模式切换切换到源代码模式
* 字数统计
- 安装Pandoc
- Pandoc是一个标记语言转换工具,可以实现不同标记语言间的格式转换,Typora的文件导入/导出功能便是使用它转化为不同的文件格式,若不安装Pandoc,Typora仅支持导出HTML和PDF格式
- 安装网址:https://github.com/jgm/pandoc/releases/latest
二、基础操作
(一)基础语法及其操作
- Typora支持使用所有的Markdown语法,并且可以使用菜单栏或快捷键进行操作,建议练习使用快捷键,以便操作更加熟练
- 在普通模式下,可以使用快捷键、语法以及菜单栏操作,但在源代码模式下,仅支持Markdown语法以及菜单栏操作,建议在普通模式下使用快捷键,源代码模式下使用语法
1.编辑
| 功能 | 鼠标操作位置3 | 快捷键 | 适用模式 |
|---|---|---|---|
| 撤销 | >菜单栏>编辑>撤销 | ctrl + z | 普通/源代码 |
| 重做 | >菜单栏>编辑>重做 | ctrl + y | 普通/源代码 |
| 剪切 | >菜单栏>编辑>剪切 | ctrl + x | 普通/源代码 |
| 复制 | >菜单栏>编辑>复制 | ctrl + c | 普通/源代码 |
| 粘贴 | >菜单栏>编辑>粘贴 | ctrl + v | 普通/源代码 |
| 粘贴为文本 | >菜单栏>编辑>粘贴为文本 | ctrl + shift +v | 普通/源代码 |
| 全选 | >菜单栏>编辑>选择>全选 | ctrl + a | 普通/源代码 |
| 查找 | >菜单栏>编辑>查找与替换>查找 | ctrl + f | 普通/源代码 |
| 替换 | >菜单栏>编辑>查找与替换>替换 | ctrl + h | 普通/源代码 |
| 跳转到首页 | ctrl + home | 普通/源代码 | |
| 跳转到尾页 | ctrl + end | 普通/源代码 | |
| 选择当前块 | ctrl + shift + p | 普通/源代码 | |
| 删除当前块 | alt + ctrl + shift + p | 普通/源代码 | |
| 选择当前行或句 | ctrl + shift + l | 普通/源代码 | |
| 删除当前行或句 | alt + ctrl + shift + l | 普通/源代码 | |
| 选中当前格式文本 | ctrl + shift + e | 普通/源代码 | |
| 删除当前格式文本 | alt + ctrl + shift + e | 普通/源代码 | |
| 选中当前词(到上一个标点符号) | ctrl + shift + d | 普通/源代码 | |
| 删除当前词 | alt + ctrl + shift + d | 普通/源代码 | |
| 表情 | win + 。 | 普通/源代码 |
2.段落
| 功能 | 快捷键 | 适用模式 |
|---|---|---|
| 标题 | ctrl + 对应序号层级 | 普通模式 |
| 段落 | ctrl + 0 | 普通模式 |
| 提升标题等级 | ctrl + = | 普通模式 |
| 降低标题等级 | ctrl + - | 普通模式 |
| 插入表格 | ctrl + t | 普通模式 |
| 换格 | tab | 普通模式 |
| 插入下一行 | ctrl + enter | 普通模式 |
| 删除当前行 | ctrl + shift + 退格 | 普通模式 |
| 代码块 | ctrl + shift + k | 普通模式 |
| 公式块 | ctrl + shift + m | 普通模式 |
| 引用 | ctrl + shift + q | 普通模式 |
| 任务列表 | ctrl + shift + x | 普通模式 |
- 插入强制换行符,行尾两个空格再回车
3.格式
| 功能 | 快捷键 | 模式 |
|---|---|---|
| 加粗 | ctrl + b | 普通 |
| 斜体 | ctrl + i | 普通 |
| 下划线 | ctrl + u | 普通 |
| 清除样式 | ctrl + |普通 |
4.视图
| 功能 | 快捷键 | 模式 |
|---|---|---|
| 侧边栏 | ctrl + shift + L | 普通 |
| 大纲 | ctrl + shift + 1 | 普通 |
| 文档列表 | ctrl + shift + 2 | 普通 |
| 文件树 | ctrl + shift + 3 | 普通 |
| 搜索 | ctrl + shift + F | 普通 |
| 模式切换 | ctrl + / | 普通/源代码 |
| 专注模式 | F8 | 普通/源代码 |
| 打字机模式 | F9 | 普通/源代码 |
| 全屏 | F11 | 普通/源代码 |
(二)扩展语法及其操作
1.编辑样式
下划线:<u>下划线内容<u>,也可在普通模式下使用快捷键ctrl + u
内联数学公式
上下标
1. 上标^
2. 下标~
3. 需要再偏好设置中勾选
高亮:=高亮内容=
注释
1. 在编辑和预览时,注释的内容会被显示;在导出时,会被隐藏
2. `<!--- 注释内容--->`
2.编辑段落
- 数学公式块
- 使用
$$包裹数学公式
- 目录
- 可以自动获取
- 语法:
[TOC]
- 脚注
[^内容]- 同时需要在结尾对对应的脚注进行定义
图表
1. 注意事项
* 图标是Typora支持的扩展语法,其他地方可能不支持
2. 序列图
* 语法:````mermaid
sequenceDiagram`
* 参考https://bramp.github.io/js-sequence-diagrams/
3. 流程图
* 语法:````mermaid
flowchat`
* 参考http://flowchart.js.org/
4. 支持Mermaid所支持的图表
Mermind序列图
1. https://knsv.github.io/mermaid/#loop32
Mermind流程图
1. https://knsv.github.io/mermaid/#graph18
Mermind甘特图
1. Gante chart是将活动与时间联系起来的一种图表形势,能够显示每个活动的历史长短,用于把握项目进度
2. http://knsv.github.io/mermaid/index.html#mermaid-cli
使用HTML标签(增加了难度)
1. 文字颜色和大小
2. 嵌入网页
3. 插入视频
https://support.typora.io/html/
3.常用功能
- 打开文件 ctrl + o
- 打开最近一个关闭的文件 ctrl + shift + t
- 快速打开最近打开国的文件 ctrl + p
- 偏好设置中设置自动保存
第四章 VS Code
一、基础配置
Visual Studio Code是微软推出的一款开源的代码编辑器,具有强大的插件提供各种功能。
- 可以安装中文插件
- 推荐One Dark Pro主题
- 推荐Material Icon Theme和vscode-icons图标主题插件
- 推荐IntelliJ IDEA Key Bindings for Visual Studio Code快捷键插件,同样适用于PyCharm
- Prettier:代码美化
- Wisen-Translate :翻译插件(云环境下没有)
- Live preview :实时预览html(在云环境下改用Live Server)
- Search/Translate Hero :搜索跳转和翻译(云环境下没有)
- vscode-icons :美化图标
二、写作体验
- ctrl+shift+v预览界面
- ctrl+shift+a打开命令面板
- 大纲处可以设置跟随光标
- Markdown Preview Enhanced增强预览插件
- MPE基本支持所有Typora支持的所有Markdown语法,还支持引用文件和制作幻灯片
-
遵循一定的写作规范,可以让源码(没有渲染过的文本)具有更强的可读性、可移植性(运用于多处)和可维护性(后续便于阅读、修改) ↩︎
-
通常URL较长会导致字符数量超过限制,为了提高可读性,可以在URL之前加一个换行符。 ↩︎
-
对于菜单栏上的不同功能,也可以使用快捷键Alt+功能对应的字母实现 ↩︎
