Markdown温故知新(3):六个实用扩展语法
1、表格(Table)
没用过 Markdown 表格的人,乍一看会觉得表格很复杂,其实是因为表格中包含了很多内容,尽管看上去密密麻麻的一片,但其语法规则却特别简单。
我们可以把表格拆成两部分来看,表头和数据行,表头就一行,而数据行可以有很多行。在 Markdown 中,表头和数据行的写法是一样的,都是在列之间加竖线。为了区分表头和数据行,需要在二者之间加个分割行,分割行也是由竖线来区分列,竖线之间写上减号即可。
示例一下,输入文本如下:
|名次|姓名|语文|数学|评语|
|-|-|-|-|-|
|1|张三|81|100|优秀,数学天赋异禀|
|2|李四|91|75|优秀,语文不错|
|3|王五|74|78|良好|
显示效果如下:
| 名次 | 姓名 | 语文 | 数学 | 评语 |
|---|---|---|---|---|
| 1 | 张三 | 81 | 100 | 优秀,数学天赋异禀 |
| 2 | 李四 | 91 | 75 | 优秀,语文不错 |
| 3 | 王五 | 74 | 78 | 良好 |
有没有发现表格的语法和表格的结构非常类似呢?其实每一行头尾的竖线是可以省略的,为了看起来更整齐,我个人一般是都会写上的。分割行里的减号可以写多个,起初为了排版更美观,我曾尝试过根据每一列的内容来确定减号个数,后来发现太费劲了,毕竟内容是会改的,所以我现在一般就只写一个减号了。
细心的你可能已经注意到,表头中的文字被自动加粗和居中了。但依然美中不足的是,数据行默认全都居左了,像姓名这种长度相对固定的列还是居中比较好看,而分数这类数字列一般居右会更好。
Markdown 允许我们指定表格中单元格的对其方式,在分割行减号的左边加上冒号就表示左对齐,在右边加上冒号就表示右对齐,在两边都加上冒号则表示居中对齐。需要注意的是,这种写法会同时改变表头和数据行的对齐方式。
让我们来优化一下上面的表格,指定单元格的对齐方式,在表头文本之间加个空格,给满分加粗,让零分倾斜,顺带再加个引用,示例一下,输入文本如下:
>
|名 次|姓 名|语 文|数 学|评 语|
|:-:|:-:|-:|-:|-|
|1|张三|81|**100**|优秀,数学天赋异禀|
|2|李四|91|75|优秀,语文不错|
|3|王五|74|*0*|-|
显示效果如下:
| 名 次 | 姓 名 | 语 文 | 数 学 | 评 语 |
|---|---|---|---|---|
| 1 | 张三 | 81 | 100 | 优秀,数学天赋异禀 |
| 2 | 李四 | 91 | 75 | 优秀,语文不错 |
| 3 | 王五 | 74 | 0 | - |
尽管 Markdown 表格并不是标准语法,甚至连 CommonMark 标准中都没有,但在我用 Markdown 的这几年里,还没发现那个稍微好点的网站或软件是支持了 Markdown 却不支持 Markdown 表格的。换句话说,Markdown 表格是一种非官方通用标准。
2、待办事项或清单(To Do List)
在日常生活及工作中,我们常常需要列一个代办事项或任务清单。在 Markdown 中,你只需要在待办的事项文本或者清单文本前加上- [ ]或- [x]即可,前者会被渲染成一个未被选中的复选框,而后者会被渲染成一个被勾选的复选框。
注意减号和左中括号之间得留一个空格,右中括号与文本之间也要留一个空格,中括号中能且只能有一个空格或字母x,且不区分大小写,其它任何字符都不行,多个空格或字母x也不行。
一般待办事项或清单,示例一下(截自印象笔记):
分级待办事项或清单,示例一下(截自印象笔记):
3、自动目录 TOC
Word 中有个生成目录的功能,但需要逐级设置,操作步骤特别繁琐,时间一长就容易忘记,下次再用还得花时间去查或尝试,相当于每用一次就得学一遍,一句话——真心累。
而在 Markdown 中,你只需要在整篇文章的任意地方,新起一行并输入[toc],即可在该位置自动生成一个全文内容结构的目录。这个目录是根据你在内容中设置的分级标题来自动生成的。
一般目录结构,示例一下(截自印象笔记):
分级目录结构,示例一下(截自印象笔记):
上图右边的红框内即为自动生成的目录。如果有需要,你可以在文章的头尾各输入一个[toc],不区分大小写,这样就可以在开头和结尾就都能看到目录了。
4、流程图
常见的流程图扩展插件有两个,分别是 mermaid 和 flowchart.js。本节会结合印象笔记和马克飞象两款编辑器分别给出两个示例,相信会看本文的你仔细一看就能明白。
mermaid 的流程图语法以三个反单引号开头,并且以三个反单引号结尾。在开头的反单引号之后写上mermaid,然后新起一行写上graph XX,用以确定流程图的走向,这里的 XX 有 5 种可能的取值,释义如下:
- TB,top bottom,自上而下
- BT,bottom top,自下而上
- LR,left right,从左到右
- RL,right left,从右到左
- TD,与 TB 的含义相同
常用图形(mermaid),示例一下(截自印象笔记):
常用连接线(mermaid),示例一下(截自印象笔记):
高中学生成为社会人士的流程(mermaid),示例一下(截自印象笔记):
flowchart.js 的流程图语法也是以三个反单引号开头和结尾。整个语法分为元素定义部分和元素连接部分。并且还有 6 个含义很形象的关键词,分别是 start、end、operation、subroutine、condition 和 inputoutput,其中 condition 有 yes 和 no 两个分支。
示例一下(截自马克飞象):
相比较而言,mermaid 和 flowchart.js 各有千秋。flowchart.js 对流程图形的支持更全面和深入,但语法比较复杂,且流程定义较为严格,对使用者的要求较高。mermaid 的语法则比较简洁和简单,用起来也更灵活,很容易入门。另外 flowchart.js 中 subroutine 的样子很丑,而 mermaid 中的判断图形看起来像一个竖起来的正方形,太占地方,也不够协调。
5、时序图
时序图又名序列图,是一种 UML 交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
示例一下(截自印象笔记):
示例一下(截自印象笔记):
示例一下(截自印象笔记):
示例一下(截自马克飞象):
6、甘特图
在工作中制作项目计划进度表时,甘特图绝对是不二选择。mermaid 插件对甘特图的支持比较好。
mermaid 的甘特图语法以三个独占一行的反单引号开头,并且以三个独占一行的反单引号结尾。在开头的反单引号之后写上mermaid,然后新起一行写上gantt,用以确定将要绘制的是甘特图。然后可以用title来指定标题,用dateFormat来指定时间格式,用section来定义任务。
示例一下(截自印象笔记):
示例一下(截自印象笔记):
7、总结
本文主要讲解了 6 个比较实用的 Markdown 扩展语法的用法。
本文链接:http://www.cnblogs.com/hanzongze/p/markdown-extensions.html
版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!个人博客,能力有限,若有不当之处,敬请批评指正,谢谢!
Markdown温故知新(3):六个实用扩展语法的更多相关文章
- Markdown温故知新(0):导航目录
Markdown温故知新(0):导航目录 Markdown温故知新(1):Markdown面面观 Markdown温故知新(2):详解七大标准语法 Markdown温故知新(3):六个实用扩展语法 M ...
- Markdown温故知新(4):更多扩展语法及HTML
1.强调(删除 & 高亮) 2.脚注(注脚) 3.数学公式 4.更多扩展语法 5.终极扩展之内嵌 HTML 5.1.文本修饰类标签 5.2.内容排版类标签 5.3.图片及多媒体标签 5.4.锚 ...
- 一些Markdown扩展语法
相信很多人跟我一样,对Markdown是"一知半解",会打一点,知道一点,但是其实从没花哪怕一分钟了解过.其实除了标题粗体插入代码,Markdown还有很多有趣的基础语法和扩展语法 ...
- Markdown温故知新(1):Markdown面面观
1.什么是 Markdown? 2.有哪些人在用 Markdown? 3.用 Markdown 的优势是什么? 4.Markdown 的语法标准简介 5.怎么用 Markdown? 6.如何选择 Ma ...
- [书籍翻译] 《JavaScript并发编程》第六章 实用的并发
本文是我翻译<JavaScript Concurrency>书籍的第六章 实用的并发,该书主要以Promises.Generator.Web workers等技术来讲解JavaScript ...
- Markdown学习——Typora入门之常用操作语法及其快捷键
Markdown 学习--Typora入门 Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档. 由于Markdown的轻 ...
- Visual Studio 实用扩展推荐
Visual Studio 拥有非常不错的可扩展性,在之前的文章中,我也给大家示范了如何进行编辑器的扩展(详见文末参考资源).在本篇文章中,我将介绍几款非常实用的扩展,从而帮助我们提高开发效率. C# ...
- [转]Visual Studio 实用扩展推荐
本文转自 http://www.cnblogs.com/stg609/p/3726898.html Visual Studio 拥有非常不错的可扩展性,在之前的文章中,我也给大家示范了如何进行编辑器的 ...
- .NET 实用扩展方法
.NET 实用扩展方法(持续更新...) 1. 字符串转换为可空数值类型(int, long, float...类似) /// <summary> /// 将字符串转换成32位整数,转换失 ...
随机推荐
- GIC , SPI , PPI (窝窝科技的文章题目改了下)【转】
转自:https://www.cnblogs.com/tureno/articles/6403408.html 转载于: http://www.wowotech.net/irq_subsystem/ ...
- vm|vmware workstation 15|14 pro 激活|密钥|序列号|许可证
VMware Workstation Pro 15 激活许可证 UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA VF750-4MX5Q-488DQ-9WZE9-ZY2D6 UU54R-FV ...
- 其他综合-VMware 从模板机快速克隆多台
VMware 从模板机快速克隆多台 1.实验描述 通过 CentOS 7.6 的模板机快速克隆,为实现搭建其他项目而提供干净的实验平台. [基于此文章的环境]点我快速打开文章 2.实验环境 使用软件的 ...
- AssetBundleMaster_ReadMe_EN
Before we start use it, you'd better import it to an empty project, following the ReadMe to learn th ...
- HTTP 2.0 之压测工具 Jmeter
年后,德国总部工业平台要做中国本地化,德国的同事过来给我们展示日志的时候,无意间看到了他们应用日志里的 HTTP/2,下意识到,原来他们都已经提供Http 2.0的服务了. 那么问题来了,除了h2lo ...
- 201871010107-公海瑜《面向对象程序设计(java)》第七周学习总结
201871010107-公海瑜<面向对象程序设计(java)>第七周学习总结 项目 内容 这个作业属于哪个课程 ...
- 第十二周博客作业 <西北师范大学| 周安伟>
第十二周作业 助教博客链接https://home.cnblogs.com/u/zaw-315/ 作业要求链接https://www.cnblogs.com/nwnu-daizh/p/10831971 ...
- Fedora增加rc-local服务开机自启项
最近新装了一台Fedora 30系统,服务已经正常运行起来了,但是偶然发现当我的系统重启后,写在rc.local配置文件里的命令居然没生效,导致我系统重启,但是服务却没有正常运行,后来经过一番查阅 ...
- nwjs-简单应用于基本结构
简单应用 1.在解压目录下创建文件夹dmeo01 2.在文件夹中创建index.html和package.json两个文件 3.index.html内容: <!DOCTYPE html> ...
- docker--(MAC ubuntu centos)安装
MacOS 安装 1.homebrew安装(需要mac密码) brew cask install docker 2.手动下载安装 如果需要手动下载,请点击以下链接下载 Stable 或 Edge 版本 ...