我用 Markdown,所以顯得很酷嗎?

不得不說的一些問題

你真的知道 Markdown 的原作者是誰嗎?

Markdown 的原作者只有一個,叫 John Gruber。但很多人以為 Aaron Swartz(具體了解請觀看《互聯網之子》)也是共同作者之一,這是謬傳。

下面這個是 John Gruber 的原話:

Probably referring to Aaron Swartz, whom Wikipedia incorrectly credited as co-creator for years.

I should write about it, but its painful. More or less:Aaron was my sounding board, my muse.

至於為什麼 Markdown+Aaron,會產生化學作用被謬傳這麼久,這裡面或許也有荒唐的一面:因為 Aaron 很酷,信息變革而獻身的悲劇式英雄人物

當不少人認為 Markdown 也是 Aaron 的遺作之一,Markdown 就有了光環,它相當的酷啊,從而顯得認為它很酷的自己也很酷……

John Gruber 發明的 Markdown 跟你用的可能不一樣

John Gruber 發明了 Markdown,這個 Markdown 既是語法規則,也是一個成品的程序。但這個 Markdown 跟你實際在使用的,應該說不完全是同一個東西。

Markdown 是十多年前發布的,很多語法規則有當時的歷史原因造成的,比如為什麼原始 Markdown 語法換行需要兩個空格、為什麼默認使用縮進來處理代碼塊、為什麼本身語法傾向於去除 HTML 的冗餘但其自身卻有好些冗餘的語法 .etc,如果放置在當時的年代,應該就能隱約理解這些設計的緣由。

還有,John Gruber 發布的 Markdown,實際上是用 Perl 寫的一個 1000 多行的程序,可以直接命令行調用,主要功能是將 Markdown 文本解析為 HTML。

客觀的來說,(最初發布的)Markdown 就是一個很小的程序。或許在很多普通人眼中,都不能算程序,因為沒有操作界面呀。

再另外一方面,我們現在實際用到的各種 Markdown 解析庫,極其罕見到有誰會選擇 John Gruber 提供的這個……

把 Markdown 的意義誇張了吧?

有人說 Markdown 是只做「標記」,不負責樣式、排版的。說的當然,沒錯。但實際上 Markdown 的最終產物 HTML 根據各個標籤而有默認樣式的,「標記」跟「樣式」並不是完全有機割離的。

有些時候,我覺得有些荒謬,因為有人問為什麼 Markdown 不能做到首行縮進,就被另外的人開啟嘲諷狀態。

而實際上呢,這個是 CSS 規則決定的,Markdown 默認使用 P、BR 作為最終 HTML 結構的段落、行, 10 多年前的這個選擇很自然呀!(其實現在我們也可以完全換一種渲染方案)

P 標籤可以實現首行縮進,但是 BR (默認) 不行。可這也是 10 多年前不行,現在瀏覽器的 BR 標籤也不是不能首行縮進,只是實施起來很弔詭,有瀏覽器兼容問題,而未來的 CSS 草案中,已經明確表示會支持 BR 的 text-indent 類似的屬性……

總之,Markdown+首行縮進,就會被嘲諷,這樣的局面我不是太能理解。有時候,我們中的部分朋友,會不會把 Markdown 的 原旨主義 誇張了,從而形成自己不切實際的、作為Markdown使用者的驕傲感?

我所理解的 Markdown 的意義,就是懶、高效、舒服,沒有一點是跟逼格相關的。

Markdown 的表現不夠?

除了 Markdown 之外,你或許還聽過 LaTeX、reStructuredText、Org-Mode、AsciiDoc,或許也看過一些對比的文章。

實際上很多 xx VS xx 的論據是站不住腳的,很難評判誰更好誰更糟,但是 Markdown 的門檻很低,這是毋庸置疑的,所以相比其它標記類語言,Markdown 才被更多的人接受。

而至於 Markdown 什麼能做,什麼做不了,其實很大程度並不是 Markdown 本身決定的,而是某些具體工具決定的。在我的理解中,Markdown 的存在就像是一種基礎協議,至於後面怎麼演繹、完成什麼的工作,就不管了;這種角色很像 HTML,它只負責基本的結構定義,至於最終的頁面好看不好看、變成什麼樣,並不是它要負責的。

有朋友認為 Markdown 不能進行嚴肅的寫作,LaTeX 可以,Org-Mode 可以。其實不盡然,Markdown 當然能進行嚴肅的寫作,完成一本書、一個 API 說明的文檔都是能勝任的。如果說 Markdown 真正技窮的地方,那就是 Markdown 不能進行過於複雜的寫作,Markdown 要取代 LaTeX,這個絕無可能;就如 LaTex 變得跟 Markdown 一樣容易入門也絕無可能一般。

很重要的一點,或許大家會忽略的:其實,多數人、多數時間、多數場合,我們書寫文本的要求,是並不複雜的。在這個時候,怎麼簡單怎麼來,反正最終效果不會有本質的差別;而此時採用的解決方案,不論是 Markdown 還是 Org-Mode 或者 AsciiDoc,都只是習慣而已。

當然,也可能是我的短見,LaTex 或許也可以變得很簡潔,而 Markdown 也可以變得很強大。這種可能性未必是不存在的,只是短期來看,不太現實。

呃,還沒有形成自己的書寫習慣? 那還想什麼,當然是 Markdown。

Markdown 應該不用學習吧……

Markdown 涉及到的語法是有限的,基本上就不用學習,只要花 1 - 2 分鐘,了解標題、加粗幾個基本語法就足夠了。更多的,在使用過程中慢慢了解就夠了。

並不需要一次性把它所有的語法都掌握了,沒有必要,特別有些第一次接觸的朋友,「遺忘」會是一個比較大的敵人,當下語法都記住了,後來又都忘記了。

放棄一些,就會發現 Markdown 的規則實在太簡單了,簡單到很難忘記。

這种放棄,也延續在 Markdown 的擴展性中,只需要理解它運行的方式,放棄對一些華麗的格式的控制,Markdown 在不斷的使用過程中,會帶來更多的驚喜。

關於 Markdown 的編輯器

編輯器們的泛濫?

Markdown 的編輯器,從某種角度來說,確實很多,甚至有段時間猶如雨後春筍一般。又一個 Markdown 編輯器從最初的自我介紹,差點能成為別人口中調侃的理由。

但是如果將這些軟體按照作者的開發時間分兩類,相信很多會被歸檔到耗時不多的練手之作類別內。

耗時比較多的 Markdown 相關軟體,其實也不算太少,而且免費、付費都已經很好的覆蓋到了。

拋開練手之作,個人不會覺得 Markdown 軟體有什麼泛濫,反倒是一個比較恰當的狀態,並不會產生真正的選擇困難症。

Markdown 的編輯器們

從表現形式來來看:一種是平文本,這個比較常見; 另外則是可視可見的富文本,也叫WYSIWYG(what you see is what you get) ,這個比較少見,典型的是 Typora。

我個人更喜歡的是平文本模式,而不是 WYSIWYG,很多 Markdown Editor 中,這種模式是被改良過的,一方面是各種標記文字用色彩進行高亮區分,另一方面支持圖片拖入、粘貼等方式插入以及直接顯示,實際效果來看,是介於「純平」與 WYSIWYG 之間,甚至更傾向於後者。

而純粹 WYSIWYG 的模式,實現的基礎要藉助 HTML 本身的編輯,這很難!因為 Markdown 轉為 HTML 的結果是可預見的,而 HTML 轉回 Markdown 是不可完全預見的,並非完全等價轉換。

如果要實現一個 WYSIWYG 的 Editor,需要應對的例外情況很多,個別情況下甚至可能無法保證完全對應。

至於 WYSIWYG 是否適合 Markdown 的編輯,這本身是有爭議的。但所謂「爭議」其實也沒多大意義,重點是能否適合自己的書寫習慣。

於我而言,不太喜歡 WYSIWYG,因為它會大大降低自己的寫作效率;但同樣也有朋友很喜歡這種模式,因為他實際上並不太依賴 Markdown 的語法,作為 Word 的一個替代品,WYSIWYG 式的 Markdown 編輯器反而是一個很棒的選擇。

從管理的表現來看:一種是純編輯器不帶管理,一種則是自帶管理(文件管理器或者 Library 的模式)。

我個人更喜歡的後者。因為對文本處理工作有重度依賴的時候,沒有管理功能的 Editor 其實在不少場景下有些著急,會產生不必要的效率浪費。

從「血統」來看:一種是特定的 Markdown Editor,一種是通用的編輯器,前者的基礎格式就是支持 Markdown 的,而後者則需要通過特定的、原生的插件來實現。後者也有很多選擇,一般的 IDE、多數的代碼編輯器,常見的比如 Atom 都是很不錯的。一般性使用,通用的編輯器其實也不錯,只是有些時候太過於通用,使用者有更多想法的時候,就有點無法應對了。

很酷的 Markdown

用不起來的 Markdown 一點都不酷

使用 Markdown 很酷?

不會。

很酷的人,用什麼都會顯得很酷。

問題在於使用者本身……

可能有人告訴你:XX 很貴所以很好;我用過 N 款 Editor,就 XX 是最好的……

可以作為很好的參考意見,但是不要聽信。總而言之,花上半天、一天的時間,幾個 App 的試用版都嘗試下,就能做出自己的選擇了。

然後,最最重要的事情來了。就是要把 Markdown 用起來!

什麼才算用起來? 那就是這個寫作 App 基本上是處於常駐狀態下。

不論是工作、日常記錄、寫作、文檔、Todo .etc, 凡是跟文本相關的工作,Markdown Editor多數時候都是完全能勝任的。不要雪藏自己的利器。

甚至有些朋友花了 500 塊買 App,結果基本不用,試圖靠多花錢來督促自己多寫點東西,這樣的動機,一般是不會成功的。

但就是很酷呀

我個人認為不論潛意識還是「明意識」里把 Markdown 等同於 ,都不是推薦的操作方式。

就只是一個工具而已。

就是拿來用的,而已呀!

但奇怪的事情也發生了。

如果一個團隊願意接受 Markdown 並且用得不錯,一般來說,這個團隊不會太糟糕。反之,一個從沒聽說過 Markdown 或者拒絕 Markdown,並且沒有更好的解決方案的團隊,然後又強調自己的創新能力,這樣的團隊,就要小心了……

而這個邏輯奇怪的地方,並不在於 Markdown,而是一個很酷的團隊,總是不斷出於學習的狀態,如果一個產品、一個語言、一個工具,它具備更高的效率或者僅僅可以讓使用者更偷懶,那麼這個團隊就會去擁抱它。僅僅是擁抱還不夠,還能用得很好,這樣的團隊,才會變得又酷又成功。

這就是我的觀點:

  • 你比很多人先知道 Markdown,這不錯。
  • 你比很多人先投入 Markdown 的使用,這非常不錯。
  • 你使用 Markdown,節省了更多的時間,創作更多成果,這就非常酷了!
  • Markdown 換成別的名詞,也同樣成立。

如何才能讓 Markdown 更酷起來?

Markdown 吸引人的地方在於其簡潔。而簡潔的事物,到達一定邊界的時候,就有概率脫離其本體,產生進化。我們自己在 Markdown 應用的階段做了不少嘗試。

比如在 Markdown 的文檔中直接引入動態的腳本語言:

實際的界面效果:

我們還嘗試在 Markdown 之上,增加了一層新的、可自定義的渲染引擎:

比如下面這段文字:

// timeline## Work and EducationDec 2012 to Now: Product Leader @Z.R.E.Y Co., LTD.Nov 2011 to Dec 2012:Chief Architecture @Funny Co., LTD.Jul 2007 to Nov 2011:UED Leader @BAEDec 2003 to Jun 2007:MBA @No.1 School of the Earth// score## Technical ExperiencePython:9Coffee:7Lua:6Linux:6

最終效果會變成:

當然也有其它不少的嘗試,但一一足道,就顯得繁瑣了。

最後

Markdown 是一門很老的語言了。或許未來的十年,它會產生更多的可能。又或許有新的替代工具出現了。如果,可以讓我們的生活變得更好,就趕緊擁抱。

畢竟,因為你很酷,所以,才顯得 Markdown 這類美好的事物也是相當的酷了。

推薦閱讀:

這是一篇測試知乎上Markdown寫作的文章
如何用markdown生成多級有序列表?
一鍵!將 Word 轉換為 Markdown
Markdown 圖片如何添加超鏈接?
github上Markdown不支持LaTeX嗎?

TAG:Markdown | Markdown語法 |