點贊再看,養成習慣,微信搜尋【高階前端進階】關注我。
本文 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>
"// 陣列去重"
<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://i.iter01.com/images/cddafb43802c3b666bb4b24c8ff0d00f992f4cf48a837909d6a38667706f5c88.png)
但是這時候的圖片寬高是不受限制的,如何生成給定寬高的圖片,我們先來看下效果。
這時候我們可以使用 img
標籤,原始寫法如下
<img src='https://i.iter01.com/images/cddafb43802c3b666bb4b24c8ff0d00f992f4cf48a837909d6a38667706f5c88.png' width=300px height=200px />
// 寫法二,自動縮放
<img src='https://i.iter01.com/images/cddafb43802c3b666bb4b24c8ff0d00f992f4cf48a837909d6a38667706f5c88.png' width=40%/>
原理也很簡單,因為 ![]()
轉化成 html 後就會變成 img
標籤,所以我們直接在 Markdown 中寫 img
標籤並且加上寬高就可以了。
// 原始 markdown 語法
![圖片描述](https://i.iter01.com/images/cddafb43802c3b666bb4b24c8ff0d00f992f4cf48a837909d6a38667706f5c88.png)
// 轉化成 html 後語法
<img src="https://i.iter01.com/images/cddafb43802c3b666bb4b24c8ff0d00f992f4cf48a837909d6a38667706f5c88.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。
有任何問題都可以來問我