在上一篇文章 中,我們已經(jīng)了解了 Markdown 的基本語法和背后的邏輯,但都更多是在理論層面上去討論。在下篇中我們將更側(cè)重于實際應(yīng)用,去看看現(xiàn)今的 Markdown 的實用性,以及有哪些編輯器值得推薦給初接觸 Markdown 的你。
▍Markdown 語法的演進
如果你是第一次接觸 Markdown,可能會覺得之前提及的 Markdown 擁有的編輯功能稍顯羸弱;而如果你之前接觸過 Markdown,就會發(fā)現(xiàn)一個奇怪的現(xiàn)象:在一些 Markdown 文檔中出現(xiàn)的標記字符,居然不在這份 John Gruber 寫的官方文檔里。這就自然聯(lián)系到下一個話題——Markdown 語法的增強和不同語法之間的異同。
正如任何一門自然語言都會存在方言的現(xiàn)象一樣,隨著 Markdown 的發(fā)展和普及,越來越多人不滿足于 John Gruber 定義的那些功能有限的標記字符,開始以他的語法為基礎(chǔ),拓展出各種各樣的「Markdown 方言」。這些改進主要體現(xiàn)在兩個方面:
增加新的標記字符,帶來了新的編輯功能,例如表格、腳注和目錄等。
修改了現(xiàn)有的標記字符,這主要出現(xiàn)在一些編輯器中,例如 Ulysses。
對基本語法的拓展
提到在編輯功能上對原生 Markdown 的拓展,最好的例子當屬 Github Flavored Markdown。這是一套由 Github 網(wǎng)站為了幫助他們的主體用戶群——程序員——更好的書寫項目文檔而推出的 Markdown 版本。由于其網(wǎng)站本身的影響力,以及他們的用戶和 Markdown 用戶高度重合,所以這套語法在互聯(lián)網(wǎng)中得到了廣泛推廣。
原有的 Markdown 語法的功能稍顯不足,Github Flavored Markdown 在前面所說的語法的三個方面都做出了相應(yīng)的增強。同樣的,你可以通過 官方文檔 來查看全部的語法。相較原生語法,Github Flavored Markdown 主要做了以下改進:
在對文字處理方面,它可以直接將網(wǎng)址高亮出來(原生語法需要加相應(yīng)的標記字符)。
在對段落的處理方面,對原有代碼塊進行了增強,如果你在代碼塊后表明代碼語言:
```python def 點贊機(): if 文章不錯: return 點贊 else: return 差評 ```
就能直接看到相應(yīng)編程語言的語法高亮。
要插入文章元素方面,它支持在 Markdown 里寫表格,如果你這么寫:
| First Header | Second Header || ------------- | ------------- || Content Cell | Content Cell || Content Cell | Content Cell |
就會顯示成:
First Header | Second Header |
---|---|
Content Cell | Content Cell |
Content Cell | Content Cell |
Github Flavored Markdown 是個很好的案例,說明了為什么會有人對原有的基本 Markdown 語法進行改進——就是為了滿足各種原生 Markdown 沒有提供的需求。
除了 Github Flavored Markdown 之外,MultiMarkdown 也不能不提。事實上目前眾多編輯器都或多或少從 Multimarkdown 獲取了一些靈感,相比 Github Flavored Markdown,Multimarkdown 是一套功能更為強大,同時語法更復(fù)雜的體系。如果有興趣,你可以去 官網(wǎng) 查看完整的語法文檔。而你會在很多編輯器中都能發(fā)現(xiàn),它們或多或少的支持了 MultiMarkdown 的語法。
不過如果你是初學者,我能給的建議是:先不要一上來就接觸太多不同的增強型語法,這樣會使得你愈發(fā)困惑。如果在日后使用中遇到了某些特殊的需求,例如腳注,再去搜索了解有哪些語法和編輯器支持你想要的那些功能。
對通用語法的修改
除了上面所說的對基本語法的修改,還有的編輯器會對某些在通用語法中出現(xiàn)過的標記字符進行定制。例如,刪除線的語法通常情況下是~~要刪除的文字~~,但是在 Bear 中,開發(fā)者將它定義成-要刪除的文章-。
這種情況的出現(xiàn),主要還是不同的開發(fā)者對 Markdown 的標記字符的「好用」理解不同。遇到這種情況大可不必擔心,一般的編輯器都會給出自己的標記字符文檔,有的還會讓用戶做出選擇,是使用通用的語法標記,還是這個編輯器專屬的語法。
既然有了多種選擇就有比較,而作為使用者,我認為我們只需認識到有這種「方言現(xiàn)象」的存在就好,如果過于糾結(jié)哪套語法更好,其實并不能提高多少使用上的效率。由于 Markdown 編輯器的效率高度依賴使用者的肌肉記憶,也就使得使用者的習慣才是最主要的影響因子。對于你來說,你習慣的語法才是效率最高的。
▍Markdown 的使用
前面是完整的對 Markdown 的介紹,看完之后,理論上你應(yīng)該能上手 Markdown。這時「什么時候該用」和「用什么工具」的選擇就會浮現(xiàn)出來。事實上,我并不希望作為初學者你一開始就陷入「對工具得選擇」而忘記了 Markdown 的初衷,所以接下來對這兩個問題的回答,我都只會提出一兩個例子,作為引導(dǎo),而非像之前力求全面系統(tǒng)的闡述。
Markdown 的局限性
「什么時候該用 Markdown」,其實是個回答非常個性化的問題。為了厘清 Markdown 和其他編輯器的邊界,與其枚舉一個個應(yīng)用場景,不如把問題改為「什么時候不該用 Markdown」。
前文有提到,Markdown 只是一個「輕量級標記語言」,相比同為標記語言的 Latex 、Word 或 Pages 這類文字處理軟件,更不用說 Indesign 這種專業(yè)級的排版軟件,Markdown 在排版的功能上顯得羸弱。與最熟悉的 Word 相比,稍微對比一下就能發(fā)現(xiàn)其中的缺陷:
Markdown 無法對「段落」進行靈活處理。在 Word 中你可以隨意插入文本框,調(diào)整它的位置。盡管這并不是一個常見的用法,但是這意味著,Word 能以段落為單位進行排版(Latex 也可以做到相似的效果),相比 Markdown 只能線性的對文字排版,專門的排版軟件無疑是更能滿足專業(yè)需求的。
Markdown 對非純文本元素的排版能力很差,最常見的例子就是圖片。誠然,現(xiàn)在很多編輯器都支持了圖文混排,但是受制于純文本格式,Markdown 編輯器幾乎不可能做到 Word 一樣對圖片靈活的調(diào)整位置,更不用說文字圍繞圖片進行自適應(yīng)排版之類的效果。
可以看出,這些弱勢都來源于 Markdown 本身的純文本格式,因為 Markdown 從一開始就定位為「文字輸入工具」,排版功能也是基于 HTML 的延伸,并不適合對排版格式自定義程度較高的文檔進行排版。
適用 Markdown 的幾個場景
盡管 Markdown 尚不是大眾化的工具,但是感謝開發(fā)者們源源不斷的創(chuàng)意,為我們提供了極為豐富的工具選擇。工具的多樣,讓 Markdown 能滲透進各種各樣的場景。小到寫備忘錄,大到完成一部書稿,都有相應(yīng)優(yōu)秀 Markdown 工具。想在一篇文章里羅列全部的場景基本不可能,所以我們在這篇還是從 Markdown 本身的特質(zhì)出發(fā),看看它在某些場景下的表現(xiàn)。
網(wǎng)絡(luò)環(huán)境下的寫作
Markdown 基于 HTML 語言而被開發(fā)出來,開發(fā)它的目的就是創(chuàng)造一門「更易讀、更易寫」的語言用于網(wǎng)絡(luò)世界的寫作??梢哉f,沒有什么工具比 Markdown 更適合用于網(wǎng)絡(luò)環(huán)境下的寫作了。
早前的「網(wǎng)絡(luò)環(huán)境下的寫作」可能專指博客或者個人站點,但是隨著移動互聯(lián)網(wǎng)的興起,微信公眾號等媒介的出現(xiàn),讀者的閱讀習慣也漸漸改變,Markdown 也順應(yīng)了這一時代的變化。對于原本的「自留地」——博客或個人站點—— Markdown 保持了一貫的方便,例如 MWeb 可以幫你把使用 Markdown 所寫的文字一鍵生成靜態(tài)網(wǎng)站。在長微博和微信公眾號寫作方面,Markdown 也有優(yōu)勢,例如 MarkEditor 可以直接把文章從編輯器中發(fā)送到微信(朋友圈或好友),也可以復(fù)制成微信公眾號格式,省去了在微信后臺編輯的功夫。
總結(jié)起來,在網(wǎng)絡(luò)環(huán)境下的寫作, Markdown 可以讓使用者專心于文章書寫,而非排版。
文檔協(xié)作
之前是利用了 Markdown 「寫作即排版」的特點,而現(xiàn)在是利用它「純文本格式」的優(yōu)勢。一份 Markdown 文本用任何軟件在任何系統(tǒng)下打開,都能保證基本的格式不錯亂(起碼能打開沒有亂碼的純文本文檔),這使得:
團隊成員間可以自由選用自己喜歡的操作系統(tǒng)和編輯器工具來進行寫作,而不局限于 Word 或者 Google Docs等只支持富文本編輯的軟件。
文檔的展示方式不僅僅是在編輯器中,你可以隨時把文檔轉(zhuǎn)換成網(wǎng)頁,任何時候任何人都可以方便地查看。
用 Markdown 來協(xié)作,你既可以選擇熟悉的共享文件的方式(借助網(wǎng)盤),也可以用 Simplenote 或者 Quip 這類內(nèi)置了協(xié)作功能的編輯器。無論如何,用 Markdown 來文檔協(xié)作會比其他工具更自由。
其他領(lǐng)域
正如上文所講,由于開發(fā)者們的創(chuàng)意,讓 Markdown 幾乎滲透進每一個需要文字書寫的領(lǐng)域。
統(tǒng)計學者可以利用 R Markdown 直接將自己的腳本和圖表排版成一篇報告,這項功能甚至是直接集成到 RStudio(一款 R 語言的 IDE)中的;由于有 Pandoc 這個格式轉(zhuǎn)換利器,理論上可以將 Markdown 轉(zhuǎn)換為常見的 Docx 或者 Tex 格式文檔,這讓學術(shù)寫作者和辦公人士可以將 Markdown 作為初稿的工具;借助馬克飛象等工具,使得 Markdown 可以和 Evernote 這類筆記軟件結(jié)合起來。
這些 Markdown 進階的用法,在本文就不做展開。由此來看,相比熟悉的 Word 等工具,Markdown 的應(yīng)用場景不是更窄,反而是更廣。
▍Markdown 工具的推薦
本文是定位于完全不了解或者還沒有習慣 Markdown 的讀者來入門的文章,而不是給已有自己使用習慣或者工具選擇的讀者,同時也不是 Markdown 工具的橫向?qū)Ρ仍u測,所以,在工具的選擇上,我也只會給出我認為最適合入門的那一款。這意味著,這不是要選出最好的 Markdown 編輯器,而是最適合作為入門使用的 Markdown 編輯器。至于什么算是適合入門者的?我認為最好要達到以下三點要求:
能使用通用語法書寫。盡管各式各樣的拓展型語法增強了 Markdown 的功能,但是對于剛開始接觸這門工具的人來說,首先掌握最常見的用法更利于以后的自由選擇。
有明確的使用場景。Markdown 實在是太容易學了,但是對很多人而言,沒有使用起來的原因之一是:缺乏一個明確的「這里我要用 Markdown」 的場景。所以編輯器的設(shè)計上最好有明確的使用場景。
在功能或設(shè)計上優(yōu)化 Markdown。原則上來說,任何能輸入文本的地方都能寫 Markdown 格式的文本(甚至在 Word 里)。那么對于入門者的工具而言,一定要在某些地方優(yōu)化了書寫 Markdown 的體驗。比如解決了圖文混排,提供了語法高亮等一些附屬功能。
下文針對各平臺的推薦我都是根據(jù)上述三個角度來挑選的。所以再一次強調(diào),以下的推薦只是我認為最適合入門者的編輯器,并不代表其他軟件不如這三款或者不適合剛?cè)腴T的人上手。事實上你可以完全根據(jù)上述三點,去自己感受和選擇其他的編輯器。
iOS/macOS : Bear
在 Bear 之前,這兩個平臺可能要分開推薦,但是 Bear 的出現(xiàn)讓它成為 Mac 和 iPhone(包括 iPad)用戶最適合入門的選擇。相比其他名聲在外的軟件,初出茅廬的 Bear 有著不少讓人喜愛的特點:
雙平臺基礎(chǔ)功能免費(多種格式導(dǎo)出和主題等一些不影響 Markdown 使用的高級功能收費)雖然缺少云同步功能讓人遺憾,不過 Bear 作為一款 Markdown 的上手工具,從練習的角度來說功能上已經(jīng)足夠強大。
極高的顏值、支持圖文混排、針對清單列表進行了優(yōu)化。如果說,缺少云同步讓你覺得 Bear 不能擔起作為未來主力編輯器的重擔,這些特質(zhì)都讓它可以成為備忘錄和短筆記軟件的首選。
對 Markdown 的語法進行了優(yōu)化,但是也保留了通用語法可以選擇。在插入網(wǎng)址等這類相對比較復(fù)雜的語法符號時,Bear 在編輯界面中進行了改進,使得初學者更容易理解,但是也給了用戶使用 Markdown 通用語法的選擇權(quán)。
盡管 Bear 只是剛面世不久的后起之秀,但功能的完成度極高,在產(chǎn)品設(shè)計上做出了許多對使用者,特別是剛上手 Markdown 的用戶的改進。目前來說,Bear 是我認為最值得向初入 Markdown 大門的使用者推薦的工具。
Windows:Typora
盡管總的來看,Windows 上的 Markdown 編輯器的質(zhì)量和數(shù)量遜色于 macOS,但是 Typora 絕不是一個將就的產(chǎn)品,而是真正有其優(yōu)秀和獨特的地方值得推薦。
作為一款 Windows 生態(tài)環(huán)境下的產(chǎn)品,它有著不少讓人喜愛的品質(zhì)。
簡潔清新的編輯界面,有內(nèi)置6款主題可選,讓它在顏值上不輸任何 macOS 上的編輯器。特別是在免費的條件下保證了軟件界面的清爽,讓人第一印象尤佳。
不僅僅是一款支持通用 markdown 語法的編輯器,在圖文混排和表格等復(fù)雜格式的元素處理上都做出了相應(yīng)的改良。讓剛接觸 Markdown 的用戶易于上手這門語言。
書寫文本的時候,打字機模式和專注模式都是很好提升使用體驗的功能,很難想象這么深度的細節(jié) Typora 都實現(xiàn)了。
特別值得說明的是,Typora 其實主打的特色是將編輯界面(帶有 Markdown 語法標記)和預(yù)覽界面合為一體,即輸入完標記字符后,就會在窗口中顯示為所表示的格式效果。
對于剛接觸的 Markdown 的寫作者來說,這個特性可以很好的緩解純 Markdown 字符界面的不適感。但是我以為,即時預(yù)覽的特性會使得可能出現(xiàn)的格式錯誤難以排除,特別是在對 Markdown 不熟悉的情況下,所以建議大家開啟 Source Code Mode,即傳統(tǒng)的 Markdown 標記字符和文本混合的編輯界面。
Android:易寫
如果讓我只用一個詞來形容易寫,那一定是「純粹」。盡管乍看之下易寫并不顯得功能強大,但是正是它的簡潔和易用讓它十分適合初學者上手。
開發(fā)者在介紹中提到「易寫的設(shè)計原則是保持簡單」,所以它做到了小于 1 M 的軟件體積;包含最基本的「重做」功能;支持基本的 Markdwon 格式。但是作為 Google 應(yīng)用商店中評分 4. 7 的產(chǎn)品,它在使用體驗上做到了足夠的流暢和穩(wěn)定,滑動頁面時沒有絲毫的卡頓。這看似最基本的要求其實是一款文字編輯器最應(yīng)該做到的。而功能上的簡單也讓使用者能專心于書寫而非擺弄工具。
雖然以簡潔為美,但是它也有類似于夜間模式、字數(shù)統(tǒng)計和導(dǎo)出為其他格式等保障使用體驗的功能。讓人驚喜的是,易寫還支持藍牙鍵盤的快捷鍵,能有效的提高輸入的速度。看來功能上的簡約并非開發(fā)者的偷懶,而是有意為之??偟膩砜矗讓懯且豢钭銐蚝唵蝸砩鲜?,卻能滿足大部分剛接觸 Markdown 用戶的需求的產(chǎn)品。
關(guān)于編輯器選擇的一點絮叨
現(xiàn)如今的互聯(lián)網(wǎng)上有一股風氣:當試圖「客觀」地進行對比時,總會想著把自己的個人情感抽離出來,站在第三者的角度來分析。
但對「編輯器的選擇」這種事來說,我們大不可必如此「客觀」,畢竟軟件作為一種「客體」,勢必會影響我們的情感。就推薦編輯器來說,可能你會聽到很多種不同的建議,但是不妨先放下這些「客觀」的比較,直接去試用(大部分桌面軟件都會提供試用版),看看在使用中你的直接感受如何,再去「客觀」的對比功能或者價格。相比先看完整的測評或者軟件教程,我認為直接上手軟件,試著把玩一些基礎(chǔ)功能,更能帶來直觀的感受和讓自己安心的決定。
▍結(jié)語
毫無疑問,只是「看完」了這篇文章你肯定是做不到行云流水的使用 Markdown,其實就像學習任何其他技能一樣,掌握方法和原理和熟練的使用是兩個不同的階段。另一方面,由于 Markdown 本身可以說毫無門檻,可能看完本后你就已經(jīng)掌握了基本的使用方法,但是在日后的使用中你有可能會遇上不同的問題,甚至是對 Markdown 的質(zhì)疑,所以本文的另一個目的在于,當你對 Markdown 產(chǎn)生邏輯上的困惑時,能幫你更深層次的理解它。
總而言之,看完本文不是學習 Markdown 的結(jié)束,而是一切的開始。希望你們寫的開心!
聯(lián)系客服