There are a total of 208 posts here. | 這裡總共有 208 篇貼文。

ttheng's microblog. | 侃侃而隨想極短文。

在 Markdown 上聳肩要稍加留意

之前在這篇文中,我有寫到表達聳肩動作的「顏文字」:¯\_(ツ)_/¯。

不過呢,在用 Markdown 格式寫成的原始檔案裡頭,若要讓那個「顏文字」在正式網頁上正常顯示的話,就得要寫成這樣:¯\\\_(ツ)_/¯

怎麼回事?幹嘛需要多打兩個反斜線符號?這其實是 Markdown 的語法邏輯本身所導致的「副作用」。

在 Markdown 的語法中,\_ 都是決定排版用的特殊字符,分別用於「強制換行」與「斜體」。因此,若在 Markdown 只單獨打這兩個字符,Markdown 不會將之解讀爲「真的是要輸入該字符本身」,而是根據相應的語法規則修改文字的排版。

但如果就像這裡的情況一樣,我們就「真的是要輸入該字符本身」,要怎麼辦呢?各大程式語言都有「跳脫字元」(英文:escape character)的概念,並且通常1\(反斜線符號)形式呈現,而 Markdown 也不例外。這個「跳脫字元」可以讓我們做到「真的是要輸入某些特殊字符」的效果,至於用法則是在要「真的」輸入的特殊符號前面加一個 \

例如說,要在 Markdown「真的」輸入一個 \ 符號的話,就要在原始檔案打 \\(兩個反斜線);要「真的」輸入 _ 符號的話,則要打 \_(一個反斜線配上一個底線)。

到這裡,也許讀着這篇文的你會有個疑問:「那幹嘛剛才我們需要輸入連續三個反斜線?兩個不就夠了嗎?」其實不然。因爲如果只輸入兩個的話(也就是變成 ¯\\_(ツ)_/¯),Markdown 會先將開頭的 \\ 解讀爲「真的顯示一個 \ 符號」,但這樣一來兩個反斜線都被「用掉」了,而緊隨在後的那「多出來」的 _ 沒有被「跳脫」走,然後好死不死在後面還有多一個 _,形成了完整的配對,Markdown 就會將之解讀爲「將被那兩個 _ 包圍的字符弄成斜體」,最終導致整個「顏文字」錯誤顯示,而且還會少掉了那兩個 _,就像這樣:¯\(ツ)/¯。

所以,我們需要多加一個反斜線符號(也就是總共連續三個),把前面的那個 _ 符號也一併「跳脫」走,才能讓 Markdown 不將該「顏文字」上的任何一個字符「誤判」爲特殊符號,使得它能夠正常顯示。

這個故事的教訓是什麼?就是在 Markdown 上輸入某些「顏文字」時,還得要熟悉或複習 Markdown 的語法邏輯,遇到排版用的特殊符號時要記得在前面多加一個 \ 將之「跳脫」走,以防出現在某些字符剛好是特殊符號的情況下導致「顏文字」錯誤顯示的窘態。

或是如果不想要這麼麻煩的話,直接用「繪文字」(英文:emoji)就好 LOL。


  1. 但並非全部,例外還是有的,例如 URL 網址是使用 % 符號作爲「跳脫字元」。 ↩︎

<< Previous Post

|

Next Post >>