Markdown溫故知新(1):Markdown面面觀

<h2 id="1">一、什麼是 Markdown?</h2>html

從技術角度看,Markdown 是一種輕量級的標記語言。只須要在文檔中增長一些標記符號,Markdown 引擎就能根據這些文本格式符號渲染出豐富多樣的效果。git

從應用角度看,Markdown 是一種用於編寫結構化文檔的純文本格式。Markdown 使得咱們能用易於讀寫的純文本格式編寫文檔,而後轉換成標準格式的 HTML 頁面。程序員

其實 Markdown 的工做原理很簡單,就是經過引擎把預約義的標記語法轉換成對應的 HTML 標籤。Markdown 自然就是跨平臺的,基本不會有兼容性問題,純文本的格式使得其易於作版本管理,至於怎麼渲染 HTML 那就是瀏覽器的事情了。github

Markdown 經過簡單的標記符號使得普通文本呈現出必定的格式,即內容和樣式分離,巧妙的規避了繁重的排版工做,可讓使用者專一於內容寫做,而沒必要過分分心到內容格式處理上,熟練以後,給人一種優雅的沉浸式寫做體驗。瀏覽器

<h2 id="2">二、有哪些人在用 Markdown?</h2>微信

曾幾什麼時候,Markdown 還只是在程序員羣體中流行的書寫格式,好比全球最大的開源代碼庫 GitHub 和全球最大的 IT 技術問答社區 StackOverFlow 的默認書寫格式都是 Markdownmarkdown

現現在,國內的博客園和 CSDN 等 IT 社區也都對 Markdown 提供了支持。Markdown 已經被被愈來愈多的知識工做者、寫做愛好者等有文字編輯需求的羣體普遍應用。網絡

好比:做家們用 Markdown 來寫書、寫小說;寫做愛好者們用 Markdown 來寫日記、寫文章;科研工做者和學生們用 Markdown 來記筆記、寫論文;老師們用 Markdown 來寫講義;博主們用 Markdown 來寫博文等等。編輯器

我我的主要是用 Markdown 來寫技術文檔和技術博客,好比本文就是用 Markdown 寫成的。估計大部分程序員用 Markdown 也都是用來寫文檔、寫博客、作幻燈片之類的吧。ide

<h2 id="3">三、用 Markdown 的優點是什麼?</h2>

Markdown 的主要優勢是易學、易讀、易編寫、易分享,且無需排版。Markdown 引擎會在用戶輸入的同時自動進行排版,因此寫做者可以絕不費力地寫出排版整齊的文章來。

一說寫文檔或寫做軟件,多數人首先想到的就是家喻戶曉的 Word。的確 Word 功能很強大,並且多年以來 Word 一直都是全世界最流行的文字處理工具。但 Word 的功能堆砌過多,排版過程耗時費力,容易讓人分心;且不一樣版本或平臺可能還會有兼容性問題;版本管理更是無從談起。

Markdown 幾乎完美規避了 Word 的這些缺陷。通常來講,要成爲一名 Word 達人,你須要熟練的掌握許多操做技巧,學習成本比較高。而 Markdown 平常使用僅需掌握幾個簡單的標記符號,學習成本很低。

Word 和 PowerPoint 的大部分功能對大部分人的大多數需求來講都是多餘的。而 Markdown 則只解決能夠用純文本表示的問題,沒有亂七八糟的樣式和花裏花俏的排版,顯得很純粹、很清新,給人一種極簡主義的感受。

Markdown 是一種自然兼容 HTML 的寫做格式,所以能以 HTML 格式發佈 Markdown 文檔,而 HTML 格式是很方便分享的,且 HTML 自然是跨平臺、跨終端的。不少工具甚至還容許 Markdown 文檔以 PDF、Word、圖片等格式發佈。

對程序代碼的良好支持是 Markdown 一大亮點,這大概也是不少技術博客積極採用 Markdown 的緣由之一吧。

現在愈來愈多的網絡筆記和內容社區都提供了對 Markdown 的支持,如印象筆記、爲知筆記、有道雲筆記、簡書等,讓內容生產者能以較小的輸入代價來輸出富有表現力的內容,也給讀者帶來了統1、溫馨、美好的閱讀體驗。

<h2 id="4">四、Markdown 的語法標準簡介</h2>

John Gruber 與 Aaron Swartz 合做開發了 Markdown,並於 2004 年以語法描述和 Perl 腳本的形式對外發布。John Gruber 還開發了一個用於將符合 Markdown 語法的純文本文檔轉換爲對應 HTML 的 Perl 工具。

在接下來的十多年中,Markdown 逐漸被各大軟件社區採用,然而 Markdown 中只定義了標題、強調、列表、連接、代碼塊、引用、分割線這 7 類語法,自己的功能極爲有限,一些特定的需求和場景沒法被知足。不少人都但願做者能繼續完善 Markdown,可做者再也沒提供任何更新(其中 Aaron Swartz 在 2013 年自殺了)。

Reddit、Stack Exchange、GitHub 等組織曾合聯合起來,想要將 Markdown 標準化,但在發佈 Standard Markdown 以後,卻被 John Gruber 要求更名,最後不得不改爲了 CommonMark

慢慢的有人建立了轉換工具,能夠生成帶有略微差別的 HTML 文檔,也有人爲 Markdown 增長了一些功能,如表格、清單、腳註等。因而乎就產生許多第三方的擴展語法,相應的,原做者定義的那些語法就被稱之爲標準語法了。

目前最知名、最主流的兩個三方擴展語法分別是 GFM(GitHub Flavored Markdown)CommonMark

<h2 id="5">五、怎麼用 Markdown?</h2>

由於 Markdown 文檔是純文本格式的,因此你能夠用任何你熟悉的文本編輯器來寫 Markdown 文檔。然而就比如程序員們都用 IDE 寫代碼同樣,咱們通常也會挑一款趁手的 Markdown 編輯器來提高寫做效率和寫做體驗。

爲何要用 Markdown 編輯器呢?首先,Markdown 編輯器通常會提供菜單欄、工具欄以及快捷鍵支持,讓咱們可以方便快捷的輸入內容;其次,好的 Markdown 編輯器還有會有所見即所得的實時預覽功能,讓咱們可以實時預覽當前的編輯效果。另外,有些 Markdown 編輯器還有諸如打印、導出、上傳等強大又實用的功能,讓咱們的寫做如虎添翼。

<h2 id="6">六、如何選擇 Markdown 編輯器?</h2>

現在市場上可選的 Markdown 編輯器有不少,有桌面軟件,也有在線工具,還有許多支持 Markdown 的博客平臺和網絡筆記,有收費的,也有免費。通常來講,全部編輯器都支持標準語法,而擴展語法則各有各的不一樣。我時常會上網搜一下,看有沒有更好的編輯器可用。下面列出的是我接觸過的一些 Markdown 工具:

  • MarkdownPad 這是我日常用的最多的一個 Markdown 編輯器,它是 Windows 下的一個多功能 Markdown 編輯器。被不少網友盛讚爲 Windows 平臺上最好用的 Markdown 編輯器。MarkdownPad 支持實時預覽,可定製編輯器,可自定義樣式表,支持多種 Markdown 處理引擎,內置圖片上傳功能,以及其它編輯器廣泛支持的一些功能。最得我心的是良好的快捷鍵支持,貌似別的編輯器都不重視這方面的用戶體驗。

  • Typora 這是一款全平臺(Mac、Windows、Linux)支持的編輯器,主要優勢是對擴展語法的支持很全,功能細節可配置餘地較大,但不少默認配置不太合理,須要本身去改,對用戶要求較高。我在 Windows 上試用了一段時間,最後仍是放棄了。主要是操做不習慣,好比看預覽效果還得切換編輯器模式,給人感受很怪,不知道是否是不重視 Windows 的緣故。

  • 馬克飛象 這是一款專爲印象筆記打造的 Markdown 編輯器,提供了桌面客戶端、Web 端、離線 Chrome App。

  • 印象筆記 知名網絡筆記,不只支持 GFM 和 CommonMark 兩種主流擴展,並且支持數學公式、流程圖、時序圖、甘特圖、圖表等高級擴展,還把這些功能都預置到工具欄中,能夠一鍵生成。

  • 小書匠 這是一款專爲 Markdown 寫做而設計的編輯器。全平臺支持,且有 Web 版,功能很強大,支持很全面,但收費。

  • Cmd Markdown 做業部落出品,全平臺支持,且有 Web 版,還配套有博客平臺。

  • Markdown Editor 極簡主義,僅支持最基本的語法,新手練習的話推薦用這個。

  • 爲知筆記 知名網絡筆記,不少年前就支持了 Markdown。

  • 有道雲筆記 大廠出品的網絡筆記,也支持 Markdown。

  • 簡書 一款支持 Markdown 的博客平臺,必須註冊才能用。

  • FarBox 一款支持 Markdown 的博客平臺,支持微信和 Dropbox,能夠創建我的網站,不過 FarBox 是按階梯收費的。官方提供的客戶端編輯器卻是免費的,我感受用起來還不錯。

  • MdEditor 一款開源的在線 Markdown 編輯器。

  • StackEdit 國外的一款開源的在線 Markdown 編輯器。

  • Dillinger 社區裏有很多人推薦這個,但我試用後發現不夠穩定。

  • MaHua 界面有點簡陋,並且會與搜狗輸入法產生衝突,幾乎無法兒用。

若是你是程序員的話,你也能夠嘗試把 VS Code、Notepad++、Sublime Text 等專業的編輯器打形成 Markdown 編輯器來用。

<h2 id="7">七、如何快速上手 Markdown?</h2>

爲了讓那些從沒接觸過 Markdown 的朋友也能比較順暢和快速的上手 Markdown,這裏給出我根據我的經驗總結出來的一個學習思路和上手步驟:

  • 第一步:試想一下,若是你要寫一篇文章,你首先會寫什麼?是標題,對吧?在 Markdown 中,你只須要在標題文字前加個#和空格,就會變成一個大標題,加兩個#就會變成一個小一點的標題,以此類推。
  • 第二步:寫完標題,就該寫段落了,段落自己不須要任何標記,直接寫就是了。若是你想突出段落中的某些文字,那麼你能夠在這寫文字先後各加兩個*表示粗體強調,或各加一個*表示斜體強調。
  • 第三步:在實際寫做中,常常須要引用別處的某段話。在 Markdown 中,只須要在一段話的開頭加個>和空格便可表示引用。
  • 第四步:當你要闡述一組並列或相關的多個觀點時,使用列表每每能更清晰的表達你的意思,只須要在每個觀點的前面都加上-和空格便可。
  • 第五步:若是你是程序員,那麼你確定有展現代碼的需求,在 Markdown 中,你只須要在代碼的前面加 4 個空格便可。

以上的這幾步操做,示例截圖以下(截自 MarkdownPad2):

完成以上幾步,你就已經能夠寫出一篇漂亮的小文章了。而後你再嘗試在文章中加個連接、嵌張圖片、畫個表格,就能夠做爲演示文稿了。相信你最後大機率會愛上 Markdown 這種獨特的書寫方式。

<h2 id="8">八、總結</h2>

本文介紹了 Markdown 這個排版語言的主要方面。Markdown 旨在儘量易於閱讀和易於編寫,因此若是你是常常寫文章的人,或者是有較多文字編輯需求的人,那麼學習用 Markdown 絕對是個明智的選擇。

本文連接http://www.cnblogs.com/hanzongze/p/markdown-aspects.html 版權聲明:本文爲博客園博主 韓宗澤 原創,做者保留署名權!歡迎經過轉載、演繹或其它傳播方式來使用本文,但必須在明顯位置給出做者署名和本文連接!我的博客,能力有限,如有不當之處,敬請批評指正,謝謝!

相關文章
相關標籤/搜索