最近在学习的时候看到了 Markdown 代码 diff 高亮的效果,感觉挺有意思的。突然发现还有这么一个好玩的用法,然后我就想着整理一波 Markdown 的高级用法,下面是我整理的一些内容,如果还没用过 Markdown 这些技巧,快来试试吧。
代码diff如果你做过代码 Code Review,对下面这种效果肯定很熟悉
// 数组去重const unique = (arr)=>{- return Array.from(new Set(arr))+ return […new Set(arr)]}
这种代码的增删对比效果就是通过 diff 来做的,原始代码如下
diff// 数组去重const unique = (arr)=>{- return Array.from(new Set(arr))+ return [...new Set(arr)]}
在 Markdown 中,` 用来表示代码块,跟在后面的是语言类型,比如 js、java 和 diff 等
上面的 diff 代码最终在 html 中会转换成下面这段(不过在不同转化器中转换效果会有所差异),最终通过修改样式达到上面的效果。
“// 数组去重” “const unique = (arr)=>{” “- return Array.from(new Set(arr))” “+ return […new Set(arr)]” “}”
待办事项很多 Demo 代码都会实现一个 TodoList,我们用 Markdown 来做一个,实现下面这种 Todo 效果
[ ] 待完成
[x] 已完成
[ ] 未完成
原始写法是下面这样
-空格[空格]空格待完成-空格[x]空格已完成-空格[空格]空格~~未完成~~
图片设置宽高
插入图片方式比较简单,上面这张图片原始写法如下,只要有![]()就行了
![图片描述](https://resource.muyiy.cn/image/20201209093632.png)
但是这时候的图片宽高是不受限制的,如何生成给定宽高的图片,我们先来看下效果。
这时候我们可以使用img标签,原始写法如下
// 写法二,自动缩放
原理也很简单,因为![]()转化成 html 后就会变成img标签,所以我们直接在 Markdown 中写img标签并且加上宽高就可以了。
// 原始 markdown 语法![图片描述](https://resource.muyiy.cn/image/20201209093632.png)// 转化成 html 后语法
折叠之前写过一篇Array 原型方法源码实现大解密的文章,里面就用到了这一能力。点击下面例子的「展开查看规范」后,就会展开更多内容(公众号不支持,移步到 https://muyiy.cn 查看)。
展开查看规范这是展开后的内容1
原始写法比较简单,用到了和标签
展开查看规范这是展开后的内容1
锚点链接锚点是网页制作中的一种,又叫命名锚记。命名锚记就像一个迅速定位器一样,它是一种页面内的超级链接。
锚点链接就是点击后会跳转到对应的锚点位置,想到链接跳转就能想到标签
在这里我们有 2 种方式实现这个效果
Markdown 原始写法[名称](#id)
HTML 语法名称
点击我跳转到目录树
名称
原始写法就是下面这种了
[点击我跳转到目录树](#目录树)名称
目录树这种直接在文章中使用[TOC]就可以,会转化成下面这种格式
代码diff
待办事项
…
不过这样也存在兼容性问题,Github 中并不支持,可以使用 github-markdown-toc 这个库自动生成,其实它的原理就是自动生成锚标记,然后就可以页面内跳转了。
换行最后来介绍下怎么换行,比如最长使用的 Markdown 工具是 Typora,换行后发到 github 发现并没有什么卵用,其实这时候使用 CSS 的
标签就可以了。
上面这一行就是换行效果了