点赞再看,养成习惯,微信搜索【高级前端进阶】关注我。

本文 GitHub https://github.com/yygmind 已收录,有一线大厂面试完整考点和系列文章,欢迎 Star。

最近在学习的时候看到了 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 中会转换成下面这段(不过在不同转化器中转换效果会有所差异),最终通过修改样式达到上面的效果。

<pre>
<code>
"//&nbsp;数组去重"
<br>
"const unique = (arr)=>{"
<br>
<span class="deletion">"- return Array.from(new Set(arr))"</span>
<br>
<span class="addition">"+ return [...new Set(arr)]"</span>
<br>
"}"
<br>
</code>
</pre>

待办事项

很多 Demo 代码都会实现一个 TodoList,我们用 Markdown 来做一个,实现下面这种 Todo 效果

  • [ ] 待完成
  • [x] 已完成
  • [ ] 未完成

原始写法是下面这样

-空格[空格]空格待完成

-空格[x]空格已完成

-空格[空格]空格~~未完成~~

图片设置宽高

插入图片方式比较简单,上面这张图片原始写法如下,只要有 ![]() 就行了

![图片描述](https://img2020.cnblogs.com/other/1550214/202101/1550214-20210111091359236-1514429303.png)

但是这时候的图片宽高是不受限制的,如何生成给定宽高的图片,我们先来看下效果。

这时候我们可以使用 img 标签,原始写法如下

<img src='https://img2020.cnblogs.com/other/1550214/202101/1550214-20210111091359236-1514429303.png' width=300px height=200px />

// 写法二,自动缩放
<img src='https://img2020.cnblogs.com/other/1550214/202101/1550214-20210111091359236-1514429303.png' width=40%/>

原理也很简单,因为 ![]() 转化成 html 后就会变成 img 标签,所以我们直接在 Markdown 中写 img 标签并且加上宽高就可以了。

// 原始 markdown 语法
![图片描述](https://img2020.cnblogs.com/other/1550214/202101/1550214-20210111091359236-1514429303.png) // 转化成 html 后语法
<img src="https://img2020.cnblogs.com/other/1550214/202101/1550214-20210111091359236-1514429303.png" alt="图片描述">

折叠

之前写过一篇 Array 原型方法源码实现大解密 的文章,里面就用到了这一能力。点击下面例子的「展开查看规范」后,就会展开更多内容。

展开查看规范

这是展开后的内容1

原始写法比较简单,用到了 <details><summary> 标签

<details>
<summary>展开查看规范</summary>
这是展开后的内容1
</details>

锚点链接

锚点是网页制作中的一种,又叫命名锚记。命名锚记就像一个迅速定位器一样,它是一种页面内的超级链接。

锚点链接就是点击后会跳转到对应的锚点位置,想到链接跳转就能想到 <a></a> 标签

在这里我们有 2 种方式实现这个效果

  • Markdown 原始写法 [名称](#id)

  • HTML 语法 <a href="#id">名称</a>

点击我跳转到目录树

名称

原始写法就是下面这种了

[点击我跳转到目录树](#目录树)

<a href="#目录树">名称</a>

目录树

这种直接在文章中使用 [TOC] 就可以,会转化成下面这种格式

<div class="table-of-contents">
<ul>
<li><a href="">代码diff</a></li>
<li><a href="">待办事项</a></li>
...
</ul>
</div>

不过这样也存在兼容性问题,Github 中并不支持,可以使用 github-markdown-toc 这个库自动生成,其实它的原理就是自动生成锚标记,然后就可以页面内跳转了。

换行

最后来介绍下怎么换行,比如最长使用的 Markdown 工具是 Typora,换行后发到 github 发现并没有什么卵用,其实这时候使用 CSS 的 <br> 标签就可以了。

上面这一行就是换行效果了

文章持续更新,可以微信搜索「高级前端进阶 」第一时间阅读,回复【资料】【面试】【简历】有我准备的一线大厂面试资料,本文 GitHub https://github.com/yygmind 已收录,有一线大厂面试完整考点和系列文章,欢迎 Star。

有任何问题都可以来问我

多年经验总结,写出最惊艳的 Markdown 高级用法的更多相关文章

  1. 多年经验,教你写出最惊艳的 Markdown 高级用法

    点赞再看,养成习惯,微信搜索[高级前端进阶]关注我. 本文 GitHub https://github.com/yygmind 已收录,有一线大厂面试完整考点和系列文章,欢迎 Star. 最近在学习的 ...

  2. 奇思妙想 CSS 3D 动画 | 仅使用 CSS 能制作出多惊艳的动画?

    本文将从比较多的方面详细阐述如何利用 CSS 3D 的特性,实现各类有趣.酷炫的动画效果.认真读完,你将会收获到: 了解 CSS 3D 的各种用途 激发你新的灵感,感受动画之美 对于提升 CSS 动画 ...

  3. 纯HTML+CSS写出一颗会飘动的树,有没有惊艳到你呢?

    前言 使用HTML+CSS能写出什么惊人的效果呢? 针对这个问题,我总会看到类似的回答,比如没有JS,前端永远都是静态的:HTML5要搭配JS,要不然一文不值. JS固然强大,但CSS也并非一文不值, ...

  4. 使用 HTML5 Canvas 绘制出惊艳的水滴效果

    HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...

  5. 理解C# 4 dynamic(4) – 让人惊艳的Clay

    Clay非常类似于ExpandoObject, 可以看做是ExpandoObject的加强版. 它们能够让我们在不需要定义类的情况下,就构建出我们想要的对象.Clay和ExpandoObject相比, ...

  6. [转载] 根据多年经验整理的《互联网MySQL开发规范》

    原文: http://weibo.com/p/2304181380b3f180102vsg5 根据多年经验整理的<互联网MySQL开发规范> 写在前面:无规矩不成方圆.对于刚加入互联网的朋 ...

  7. 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上)【转载】

    转自: DBAplus社群 http://www.toutiao.com/m5762164771/ 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上) - 今日头条(TouTiao.com ...

  8. 如何写出没有BUG的代码

    1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 Mark III 计算机进行研究工作.她的团队跟踪到 Mark II 上的一个错误,操作人 ...

  9. 理解C# 4 dynamic(4) – 让人惊艳的Clay(转)

    作者:Justrun名字来自<阿甘正传>,是希望自己能够更更傻一点. link: http://www.cnblogs.com/JustRun1983/p/3529157.html   理 ...

随机推荐

  1. 半夜删你代码队 Day5冲刺

    一.每日站立式会议 1.站立式会议 成员 昨日完成工作 今日计划工作 遇到的困难 陈惠霖 跟进作业 完成注册界面 相关界面设计内容知识不充足 侯晓龙 开始双人合作 开始与数据库结合 无 周楚池 初步完 ...

  2. 学习笔记:Link Cut Tree

    模板题 原理 类似树链剖分对重儿子/长儿子剖分,Link Cut Tree 也做的是类似的链剖分. 每个节点选出 \(0 / 1\) 个儿子作为实儿子,剩下是虚儿子.对应的边是实边/虚边,虚实时可以进 ...

  3. AcWing 329. 围栏障碍训练场

    大型补档计划 题目链接 考虑模拟这个过程. \(f[i][0 / 1]\) 表示从第 \(i\) 个围栏的 左/右端点开始往下走,走到原点的最小花费. 转移很容易想到,就是考虑找到一个往下走第一个碰到 ...

  4. STL——容器(Set & multiset)的大小

    1. set.size();  //返回容器中元素的数目 2. set.empty();//判断容器是否为空 empty() 是由一下代码实现的,可以发现,当长度为0时返回 false,以此判断容器为 ...

  5. 剑指Java高效编程教程

    教程介绍 所谓"武以快为尊,天下武功唯快不破".本课程剑指Java高效编程,致力于从"技术"和"工具"两大 维度提高编程效率,帮助广大程序员 ...

  6. 可选链plugin-proposal-optional-chaining的使用(优化)

    第一步 安装 npm install --save-dev @babel/plugin-proposal-optional-chaining 然后在.babelrc.js文件夹里进行配置 plugin ...

  7. axios 封装 跨域 实现 (后端跨域配置白名单)

    1. 始vue化项目 vue init webpack deaxios # 使用脚手架创建项目 deaxios(项目名,随便取得) cd deaxios # 进入项目cnpm install npm ...

  8. ASP.NET Core 中间件的使用(二):依赖注入的使用

    写在前面 上一篇大家已经粗略接触了解到.NET Core中间件的使用:ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件, .NET Core框架中很多核心对象都是通过依 ...

  9. 个人微信公众号搭建Python实现 -个人公众号搭建-永久素材管理(14.3.5)

    @ 目录 1.说明 2.上传素材 3.获取素材列表 关于作者 1.说明 个人微信公众号开发的功能有限,因为很多权限没有,但支持上传永久素材,具体查看微信公众号文档 这里的请求都要将本地IP地址放到微信 ...

  10. Golang--函数签名相同

    Golang--函数签名相同 条件 必须函数的函数名,参数和返回值(类型,个数,顺序)都相同. 验证 例子: 定义函数类型,让相同签名的函数自动实现某个接口. Negtive: package int ...