多年經驗總結,寫出最驚豔的 Markdown 高階用法
阿新 • • 發佈:2021-01-11
> 點贊再看,養成習慣,微信搜尋【**高階前端進階**】關注我。
>
> 本文 **GitHub** [https://github.com/yygmind](https://github.com/Advanced-Frontend/Daily-Interview-Question) 已收錄,有一線大廠面試完整考點和系列文章,歡迎 Star。
最近在學習的時候看到了 Markdown 程式碼 diff 高亮的效果,感覺挺有意思的。突然發現還有這麼一個好玩的用法,然後我就想著整理一波 Markdown 的高階用法,下面是我整理的一些內容,如果還沒用過 Markdown 這些技巧,快來試試吧。
## 程式碼diff
如果你做過程式碼 Code Review,對下面這種效果肯定很熟悉
```diff
// 陣列去重
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 中會轉換成下面這段(不過在不同轉化器中轉換效果會有所差異),最終通過修改樣式達到上面的效果。
```bash
這時候我們可以使用 `img` 標籤,原始寫法如下
```bash
// 寫法二,自動縮放
```
原理也很簡單,因為 `![]()` 轉化成 html 後就會變成 `img` 標籤,所以我們直接在 Markdown 中寫 `img` 標籤並且加上寬高就可以了。
```bash
// 原始 markdown 語法
![圖片描述](https://img2020.cnblogs.com/other/1550214/202101/1550214-20210111091359236-1514429303.png)
// 轉化成 html 後語法
```
## 摺疊
之前寫過一篇 [Array 原型方法原始碼實現大解密](https://muyiy.cn/blog/6/6.3.html) 的文章,裡面就用到了這一能力。點選下面例子的「展開檢視規範」後,就會展開更多內容。
這是展開後的內容1
原始寫法比較簡單,用到了 `
"// 陣列去重"
"const unique = (arr)=>{"
"- return Array.from(new Set(arr))"
"+ return [...new Set(arr)]"
"}"
```
## 待辦事項
很多 Demo 程式碼都會實現一個 TodoList,我們用 Markdown 來做一個,實現下面這種 Todo 效果
- [ ] 待完成
- [x] 已完成
- [ ] ~~未完成~~
原始寫法是下面這樣
```bash
-空格[空格]空格待完成
-空格[x]空格已完成
-空格[空格]空格~~未完成~~
```
## 圖片設定寬高
![圖片描述](https://img2020.cnblogs.com/other/1550214/202101/1550214-20210111091359236-1514429303.png)
插入圖片方式比較簡單,上面這張圖片原始寫法如下,只要有 `![]()` 就行了
```bash
![圖片描述](https://img2020.cnblogs.com/other/1550214/202101/1550214-20210111091359236-1514429303.png)
```
但是這時候的圖片寬高是不受限制的,如何生成給定寬高的圖片,我們先來看下效果。
展開檢視規範
`和 `` 標籤
```bash