多年經驗總結,寫出最驚豔的 Markdown 高級用法

點贊再看,養成習慣,微信搜索【高級前端進階】關注我。html

本文 GitHub github.com/yygmind 已收錄,有一線大廠面試完整考點和系列文章,歡迎 Star。前端

最近在學習的時候看到了 Markdown 代碼 diff 高亮的效果,感受挺有意思的。忽然發現還有這麼一個好玩的用法,而後我就想着整理一波 Markdown 的高級用法,下面是我整理的一些內容,若是還沒用過 Markdown 這些技巧,快來試試吧。java

代碼diff

若是你作過代碼 Code Review,對下面這種效果確定很熟悉git

// 數組去重
const unique = (arr)=>{
- return Array.from(new Set(arr))
+ return [...new Set(arr)]
}
複製代碼

這種代碼的增刪對比效果就是經過 diff 來作的,原始代碼以下github

​```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 效果bash

  • 待完成
  • 已完成
  • 未完成

原始寫法是下面這樣微信

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

-空格[x]空格已完成

-空格[空格]空格~~未完成~~
複製代碼

圖片設置寬高

圖片描述

插入圖片方式比較簡單,上面這張圖片原始寫法以下,只要有 ![]() 就好了markdown

![圖片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/13973f2a07bb45feb159aa2584997913~tplv-k3u1fbpfcp-zoom-1.image)
複製代碼

可是這時候的圖片寬高是不受限制的,如何生成給定寬高的圖片,咱們先來看下效果。

這時候咱們可使用 img 標籤,原始寫法以下

<img src='https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/13973f2a07bb45feb159aa2584997913~tplv-k3u1fbpfcp-zoom-1.image' width=300px height=200px />

// 寫法二,自動縮放
<img src='https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/13973f2a07bb45feb159aa2584997913~tplv-k3u1fbpfcp-zoom-1.image' width=40%/>
複製代碼

原理也很簡單,由於 ![]() 轉化成 html 後就會變成 img 標籤,因此咱們直接在 Markdown 中寫 img 標籤而且加上寬高就能夠了。

// 原始 markdown 語法
![圖片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/13973f2a07bb45feb159aa2584997913~tplv-k3u1fbpfcp-zoom-1.image)

// 轉化成 html 後語法
<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/13973f2a07bb45feb159aa2584997913~tplv-k3u1fbpfcp-zoom-1.image" 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 github.com/yygmind 已收錄,有一線大廠面試完整考點和系列文章,歡迎 Star。

有任何問題均可以來問我

相關文章
相關標籤/搜索