乐趣区

关于前端:多年经验总结写出最惊艳的-Markdown-高级用法

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

本文 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://resource.muyiy.cn/image/20201209093632.png)

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

这时候咱们能够应用 img 标签,原始写法如下

![](https://resource.muyiy.cn/image/20201209093632.png)

// 写法二,主动缩放
![](https://resource.muyiy.cn/image/20201209093632.png)

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

// 原始 markdown 语法
![图片形容](https://resource.muyiy.cn/image/20201209093632.png)

// 转化成 html 后语法
![](https://resource.muyiy.cn/image/20201209093632.png)

折叠

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

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

原始写法比较简单,用到了 <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> 标签就能够了。

下面这一行就是换行成果了

退出移动版