Markdown 完全入門(下)

如果你是第一次接觸 Markdown,可能會覺得之前提及的 Markdown 擁有的編輯功能稍顯羸弱;而如果你之前接觸過 Markdown,就會發現一個奇怪的現象:在一些 Markdown 文檔中出現的標記字元,居然不在這份 John Gruber 寫的官方文檔里。這就自然聯繫到下一個話題——Markdown 語法的增強和不同語法之間的異同。

正如任何一門自然語言都會存在方言的現象一樣,隨著 Markdown 的發展和普及,越來越多人不滿足於 John Gruber 定義的那些功能有限的標記字元,開始以他的語法為基礎,拓展出各種各樣的「Markdown 方言」。這些改進主要體現在兩個方面:

  1. 增加新的標記字元,帶來了新的編輯功能,例如表格、腳註和目錄等。
  2. 修改了現有的標記字元,這主要出現在一些編輯器中,例如 Ulysses。

對基本語法的拓展

提到在編輯功能上對原生 Markdown 的拓展,最好的例子當屬 Github Flavored Markdown。這是一套由 Github 網站為了幫助他們的主體用戶群——程序員——更好的書寫項目文檔而推出的 Markdown 版本。由於其網站本身的影響力,以及他們的用戶和 Markdown 用戶高度重合,所以這套語法在互聯網中得到了廣泛推廣。

原有的 Markdown 語法的功能稍顯不足,Github Flavored Markdown 在前面所說的語法的三個方面都做出了相應的增強。同樣的,你可以通過 官方文檔 來查看全部的語法。相較原生語法,Github Flavored Markdown 主要做了以下改進:

  • 在對文字處理方面,它可以直接將網址高亮出來(原生語法需要加相應的標記字元)。
  • 在對段落的處理方面,對原有代碼塊進行了增強,如果你在代碼塊後表明代碼語言:

```python def 點贊機(): if 文章不錯: return 點贊 else: return 差評 ```

就能直接看到相應編程語言的語法高亮。

  • 要插入文章元素方面,它支持在 Markdown 里寫表格,如果你這麼寫:

| First Header | Second Header || ------------- | ------------- || Content Cell | Content Cell || Content Cell | Content Cell |

就會顯示成:

First HeaderSecond HeaderContent CellContent CellContent CellContent Cell

Github Flavored Markdown 是個很好的案例,說明了為什麼會有人對原有的基本 Markdown 語法進行改進——就是為了滿足各種原生 Markdown 沒有提供的需求

除了 Github Flavored Markdown 之外,MultiMarkdown 也不能不提。事實上目前眾多編輯器都或多或少從 Multimarkdown 獲取了一些靈感,相比 Github Flavored Markdown,Multimarkdown 是一套功能更為強大,同時語法更複雜的體系。如果有興趣,你可以去 官網 查看完整的語法文檔。而你會在很多編輯器中都能發現,它們或多或少的支持了 MultiMarkdown 的語法。

不過如果你是初學者,我能給的建議是:先不要一上來就接觸太多不同的增強型語法,這樣會使得你愈發困惑。如果在日後使用中遇到了某些特殊的需求,例如腳註,再去搜索了解有哪些語法和編輯器支持你想要的那些功能1。

對通用語法的修改

除了上面所說的對基本語法的修改,還有的編輯器會對某些在通用語法中出現過的標記字元進行定製。例如,刪除線的語法通常情況下是~~要刪除的文字~~,但是在 Bear 中,開發者將它定義成-要刪除的文章-

這種情況的出現,主要還是不同的開發者對 Markdown 的標記字元的「好用」理解不同。遇到這種情況大可不必擔心,一般的編輯器都會給出自己的標記字元文檔,有的還會讓用戶做出選擇,是使用通用的語法標記,還是這個編輯器專屬的語法。

既然有了多種選擇就有比較,而作為使用者,我認為我們只需認識到有這種「方言現象」的存在就好,如果過於糾結哪套語法更好,其實並不能提高多少使用上的效率。由於 Markdown 編輯器的效率高度依賴使用者的肌肉記憶,也就使得使用者的習慣才是最主要的影響因子。對於你來說,你習慣的語法才是效率最高的

Markdown 的使用

前面是完整的對 Markdown 的介紹,看完之後,理論上你應該能上手 Markdown。這時「什麼時候該用」和「用什麼工具」的選擇就會浮現出來。事實上,我並不希望作為初學者你一開始就陷入「對工具得選擇」而忘記了 Markdown 的初衷,所以接下來對這兩個問題的回答,我都只會提出一兩個例子,作為引導,而非像之前力求全面系統的闡述。

Markdown 的局限性

「什麼時候該用 Markdown」,其實是個回答非常個性化的問題。為了釐清 Markdown 和其他編輯器的邊界,與其枚舉一個個應用場景,不如把問題改為「什麼時候不該用 Markdown」

前文有提到,Markdown 只是一個「輕量級標記語言」,相比同為標記語言的 Latex 、Word 或 Pages 這類文字處理軟體,更不用說 Indesign 這種專業級的排版軟體,Markdown 在排版的功能上顯得羸弱。與最熟悉的 Word 相比,稍微對比一下就能發現其中的缺陷:

  1. Markdown 無法對「段落」進行靈活處理。在 Word 中你可以隨意插入文本框,調整它的位置。儘管這並不是一個常見的用法,但是這意味著,Word 能以段落為單位進行排版(Latex 也可以做到相似的效果),相比 Markdown 只能線性的對文字排版,專門的排版軟體無疑是更能滿足專業需求的。
  2. Markdown 對非純文本元素的排版能力很差,最常見的例子就是圖片。誠然,現在很多編輯器都支持了圖文混排,但是受制於純文本格式,Markdown 編輯器幾乎不可能做到 Word 一樣對圖片靈活的調整位置,更不用說文字圍繞圖片進行自適應排版之類的效果。

可以看出,這些弱勢都來源於 Markdown 本身的純文本格式,因為 Markdown 從一開始就定位為「文字輸入工具」,排版功能也是基於 HTML 的延伸,並不適合對排版格式自定義程度較高的文檔進行排版。

適用 Markdown 的幾個場景

儘管 Markdown 尚不是大眾化的工具,但是感謝開發者們源源不斷的創意,為我們提供了極為豐富的工具選擇。工具的多樣,讓 Markdown 能滲透進各種各樣的場景。小到寫備忘錄,大到完成一部書稿,都有相應優秀 Markdown 工具。想在一篇文章里羅列全部的場景基本不可能,所以我們在這篇還是從 Markdown 本身的特質出發,看看它在某些場景下的表現。

網路環境下的寫作

Markdown 基於 HTML 語言而被開發出來,開發它的目的就是創造一門「更易讀、更易寫」的語言用於網路世界的寫作。可以說,沒有什麼工具比 Markdown 更適合用於網路環境下的寫作了。

早前的「網路環境下的寫作」可能專指博客或者個人站點,但是隨著移動互聯網的興起,微信公眾號等媒介的出現,讀者的閱讀習慣也漸漸改變,Markdown 也順應了這一時代的變化。對於原本的「自留地」——博客或個人站點—— Markdown 保持了一貫的方便,例如 MWeb 可以幫你把使用 Markdown 所寫的文字一鍵生成靜態網站。在長微博和微信公眾號寫作方面,Markdown 也有優勢,例如 MarkEditor 可以直接把文章從編輯器中發送到微信(朋友圈或好友),也可以複製成微信公眾號格式,省去了在微信後台編輯的功夫。

總結起來,在網路環境下的寫作, Markdown 可以讓使用者專心於文章書寫,而非排版

文檔協作

之前是利用了 Markdown 「寫作即排版」的特點,而現在是利用它「純文本格式」的優勢。一份 Markdown 文本用任何軟體在任何系統下打開,都能保證基本的格式不錯亂(起碼能打開沒有亂碼的純文本文檔),這使得:

  1. 團隊成員間可以自由選用自己喜歡的操作系統和編輯器工具來進行寫作,而不局限於 Word 或者 Google Docs等只支持富文本編輯的軟體。
  2. 文檔的展示方式不僅僅是在編輯器中,你可以隨時把文檔轉換成網頁,任何時候任何人都可以方便地查看。

用 Markdown 來協作,你既可以選擇熟悉的共享文件的方式(藉助網盤),也可以用 Simplenote 或者 Quip 這類內置了協作功能的編輯器。無論如何,用 Markdown 來文檔協作會比其他工具更自由。

其他領域

正如上文所講,由於開發者們的創意,讓 Markdown 幾乎滲透進每一個需要文字書寫的領域。

統計學者可以利用 R Markdown 直接將自己的腳本和圖表排版成一篇報告,這項功能甚至是直接集成到 RStudio(一款 R 語言的 IDE)中的;由於有 Pandoc 這個格式轉換利器,理論上可以將 Markdown 轉換為常見的 Docx 或者 Tex 格式文檔,這讓學術寫作者和辦公人士可以將 Markdown 作為初稿的工具;藉助馬克飛象等工具,使得 Markdown 可以和 Evernote 這類筆記軟體結合起來。

這些 Markdown 進階的用法,在本文就不做展開。由此來看,相比熟悉的 Word 等工具,Markdown 的應用場景不是更窄,反而是更廣

Markdown 工具的推薦

本文是定位於完全不了解或者還沒有習慣 Markdown 的讀者來入門的文章,而不是給已有自己使用習慣或者工具選擇的讀者,同時也不是 Markdown 工具的橫向對比評測,所以,在工具的選擇上,我也只會給出我認為最適合入門的那一款。這意味著,這不是要選出最好的 Markdown 編輯器,而是最適合作為入門使用的 Markdown 編輯器。至於什麼算是適合入門者的?我認為最好要達到以下三點要求:

  1. 能使用通用語法書寫。儘管各式各樣的拓展型語法增強了 Markdown 的功能,但是對於剛開始接觸這門工具的人來說,首先掌握最常見的用法更利於以後的自由選擇。
  2. 有明確的使用場景。Markdown 實在是太容易學了,但是對很多人而言,沒有使用起來的原因之一是:缺乏一個明確的「這裡我要用 Markdown」 的場景。所以編輯器的設計上最好有明確的使用場景。
  3. 在功能或設計上優化 Markdown。原則上來說,任何能輸入文本的地方都能寫 Markdown 格式的文本(甚至在 Word 里)。那麼對於入門者的工具而言,一定要在某些地方優化了書寫 Markdown 的體驗。比如解決了圖文混排,提供了語法高亮等一些附屬功能。

下文針對各平台的推薦我都是根據上述三個角度來挑選的。所以再一次強調,以下的推薦只是我認為最適合入門者的編輯器,並不代表其他軟體不如這三款或者不適合剛入門的人上手。事實上你可以完全根據上述三點,去自己感受和選擇其他的編輯器。

iOS/macOS : Bear

Bear

iOS

相關文章下載

在 Bear 之前,這兩個平台可能要分開推薦,但是 Bear 的出現讓它成為 Mac 和 iPhone(包括 iPad)用戶最適合入門的選擇。相比其他名聲在外的軟體,初出茅廬的 Bear 有著不少讓人喜愛的特點:

  1. 雙平台基礎功能免費(多種格式導出和主題等一些不影響 Markdown 使用的高級功能收費)雖然缺少雲同步功能讓人遺憾,不過 Bear 作為一款 Markdown 的上手工具,從練習的角度來說功能上已經足夠強大。
  2. 極高的顏值、支持圖文混排、針對清單列表進行了優化。如果說,缺少雲同步讓你覺得 Bear 不能擔起作為未來主力編輯器的重擔,這些特質都讓它可以成為備忘錄和短筆記軟體的首選。
  3. 對 Markdown 的語法進行了優化,但是也保留了通用語法可以選擇。在插入網址等這類相對比較複雜的語法符號時,Bear 在編輯界面中進行了改進,使得初學者更容易理解,但是也給了用戶使用 Markdown 通用語法的選擇權。

儘管 Bear 只是剛面世不久的後起之秀,但功能的完成度極高,在產品設計上做出了許多對使用者,特別是剛上手 Markdown 的用戶的改進。目前來說,Bear 是我認為最值得向初入 Markdown 大門的使用者推薦的工具。

關於 Bear 的更多介紹,可以繼續閱讀 這篇。

Windows:Typora

Typora

Mac

相關文章下載

儘管總的來看,Windows 上的 Markdown 編輯器的質量和數量遜色於 macOS,但是 Typora 絕不是一個將就的產品,而是真正有其優秀和獨特的地方值得推薦。

作為一款 Windows 生態環境下的產品,它有著不少讓人喜愛的品質。

  1. 簡潔清新的編輯界面,有內置6款主題可選,讓它在顏值上不輸任何 macOS 上的編輯器。特別是在免費的條件下保證了軟體界面的清爽,讓人第一印象尤佳。
  2. 不僅僅是一款支持通用 markdown 語法的編輯器,在圖文混排和表格等複雜格式的元素處理上都做出了相應的改良。讓剛接觸 Markdown 的用戶易於上手這門語言。
  3. 書寫文本的時候,打字機模式和專註模式都是很好提升使用體驗的功能,很難想像這麼深度的細節 Typora 都實現了。

特別值得說明的是,Typora 其實主打的特色是將編輯界面(帶有 Markdown 語法標記)和預覽界面合為一體,即輸入完標記字元後,就會在窗口中顯示為所表示的格式效果。

對於剛接觸的 Markdown 的寫作者來說,這個特性可以很好的緩解純 Markdown 字元界面的不適感。但是我以為,即時預覽的特性會使得可能出現的格式錯誤難以排除,特別是在對 Markdown 不熟悉的情況下,所以建議大家開啟 Source Code Mode,即傳統的 Markdown 標記字元和文本混合的編輯界面。

關於 Typora 的更多介紹,可以繼續閱讀 這篇。

Android:易寫

易寫

Android

相關文章下載

如果讓我只用一個詞來形容易寫,那一定是「純粹」。儘管乍看之下易寫並不顯得功能強大,但是正是它的簡潔和易用讓它十分適合初學者上手。

開發者在介紹中提到「易寫的設計原則是保持簡單」,所以它做到了小於 1 M 的軟體體積;包含最基本的「重做」功能;支持基本的 Markdwon 格式。但是作為 Google 應用商店中評分 4. 7 的產品,它在使用體驗上做到了足夠的流暢和穩定,滑動頁面時沒有絲毫的卡頓。這看似最基本的要求其實是一款文字編輯器最應該做到的。而功能上的簡單也讓使用者能專心於書寫而非擺弄工具。

雖然以簡潔為美,但是它也有類似於夜間模式、字數統計和導出為其他格式等保障使用體驗的功能。讓人驚喜的是,易寫還支持藍牙鍵盤的快捷鍵,能有效的提高輸入的速度。看來功能上的簡約並非開發者的偷懶,而是有意為之。總的來看,易寫是一款足夠簡單來上手,卻能滿足大部分剛接觸 Markdown 用戶的需求的產品。

關於編輯器選擇的一點絮叨

現如今的互聯網上有一股風氣:當試圖「客觀」地進行對比時,總會想著把自己的個人情感抽離出來,站在第三者的角度來分析。

但對「編輯器的選擇」這種事來說,我們大不可必如此「客觀」,畢竟軟體作為一種「客體」,勢必會影響我們的情感。就推薦編輯器來說,可能你會聽到很多種不同的建議,但是不妨先放下這些「客觀」的比較,直接去試用(大部分桌面軟體都會提供試用版),看看在使用中你的直接感受如何,再去「客觀」的對比功能或者價格。相比先看完整的測評或者軟體教程,我認為直接上手軟體,試著把玩一些基礎功能,更能帶來直觀的感受和讓自己安心的決定。

結語

毫無疑問,只是「看完」了這篇文章你肯定是做不到行雲流水的使用 Markdown,其實就像學習任何其他技能一樣,掌握方法和原理和熟練的使用是兩個不同的階段。另一方面,由於 Markdown 本身可以說毫無門檻,可能看完本後你就已經掌握了基本的使用方法,但是在日後的使用中你有可能會遇上不同的問題,甚至是對 Markdown 的質疑,所以本文的另一個目的在於,當你對 Markdown 產生邏輯上的困惑時,能幫你更深層次的理解它

總而言之,看完本文不是學習 Markdown 的結束,而是一切的開始。希望你們寫的開心!

相關閱讀

  • Github Flavored Markdown 的文檔
  • MultiMarkdown 的官網
  • 少數派對 Bear 的介紹
  • 少數派對 Typora 的介紹

特別感謝

在本文的寫作過程中,收到了很多可貴和重要的建議和意見,正是這些珍貴的聲音,讓我有信心以「完全入門」為本文的標題。在此特別感謝以下夥伴對我的幫助(排名不分先後):@Yves、@Hepo、@codegass、@子不語Rex、@waychne、@ElijahLee


推薦閱讀:

TAG:Markdown | Markdown語法 |