Markdown分級語法手冊

[TOC]

PS: 本地預覽目錄OK,但是簡書貌似不支持,暫時先這樣。

前言(可以不看)

最開始只是想寫一篇博文,準備使用markdown,感覺很流行(github、簡書……很多都支持),而且渲染出來很好看,一直很想學,沒有合適的機會,結果拖到了現在。比起什么python、C之類的編程語言,markdown常用的語法也就10個左右,還是比較容易的,網上資料也很多,看了兩天,有了一點初步的認識,感覺現在來說基本夠用了,后面用到一些特殊or高級功能的時候再通過參考鏈接進行學習和使用就好。畢竟markdown也只是一種工具、一種表現形式,私以為不用在上面花費太多精力,而且它自己也說了,這是為了讓大家專注于寫作的一種輕量級語言。

下面的參考手冊從語法、工具兩個方面寫了一些參考(因為別人的博客已經寫得很好了,就不用重新貼一遍引用,直接指路鏈接),主要目的是如果自己忘了,能夠查找起來非常迅速。可能對完全沒有接觸過markdown的小白同學來說不是很友好,但我在最后列了一下從小白到入門到中級到高級balabala的路線。私以為我現在的學習進度應該是入門和中級之間,當前來看,已知的這些知識已經夠用,我需要一段時間進行使用、鞏固,后面如果有需要我再繼續往上。

私以為markdown語法分3級(因為沒有詳細調研,所以可能不太對):最基本的Markdown,擴展的 Markdown Extra,GitHub Flavored Markdown (GFM)(可能GFM就是一種 Markdown Extra)。下面的語法,絕大多數markdown編輯器都是支持的,但有一些很棒的功能只有支持解析GFM的才能支持,還有一些只能在GitHub上寫,暫時還沒學會,所以先記下,后面用到了再慢慢學。

好像說了一堆廢話,下面直接開始吧。

基本語法(18)

  • 純文字(1-3):能夠撰寫文章大綱,展現基本的層級、邏輯關系,表達基本的含義;
  • + 強調樣式(4-8):能夠在基本的含義之上,添加一些簡單樣式,表達的含義更豐富;
  • + 鏈接跳轉(9-10):不管文章長度如何,如果有索引跳轉機制,可以顯著提升讀者閱讀體驗;
  • + 參考引用(11-13):如果就是自己的記錄,可能沒什么參考引用的地方,但只要是寫正式的文章,參考引用肯定是必需的;
  • + 通用多媒體對象(14-15):上面基本都還是純文字,雖然加了一些樣式、鏈接引用之類,但表現力、感染力還是弱了一些,在添加一些通用多媒體對象后,能夠表達更多的含義,感染力更強;
  • + 特定多媒體對象(16-18):對大部分人來說可能不會用到,針對特定需求去學習使用。

可能有些效果有多種實現形式,這里只列舉私以為簡單有用的形式(1個或2個),如果想要了解更多,去看參考文獻更好。另外,快捷鍵均為 Sublime Text 插件 MarkdownEditing 編輯器環境下,后文就不一一說明了。

1. 標題#

    # 一級標題
    ## 二級標題
    ### 三級標題
    #### 四級標題
    ##### 五級標題
    ###### 六級標題

快捷鍵:

  • Ctrl+1/2/3/4/5/6,分別插入一級至六級標題.

2. 無序列表-

    - 無序列表
    - 無序列表
    - 無序列表

3. 有序列表1.

    1. 有序列表
    2. 有序列表
    3. 有序列表

4. 斜體*

    *斜體*

5. 粗體**

    **粗體**

6. 加粗斜體***

    ***加粗斜體***

7. 刪除線~~

    ~~刪除線~~

8. 分隔線---

    ---

9. 目錄:[TOC]

    [TOC]

10. 錨點{#}

    ## 目錄{#index}
    
    跳轉到[目錄](#index)

11. 引用>

    > 一級引用

    >> 二級引用

    >>> 三級引用

根據tab縮進不同,引用可嵌套

12. 注腳[^]

    markdown[^1], GitHub[^2]

    [^1]: Markdown 是一種純文本標記語言
    [^2]: GitHub 是一個代碼托管平臺

13. 鏈接[]( "")

    行內式:
    [blog](http://www.cnblogs.com/Chayeen/ "鼠標懸停文本")
    參考式1:
    [blog][1]
    [1]:http://www.cnblogs.com/Chayeen/ "鼠標懸停文本"
    參考式2:
    [blog][]
    [blog]:http://www.cnblogs.com/Chayeen/ "鼠標懸停文本"
    自動鏈接:<>
    <http://www.cnblogs.com/Chayeen/>

快捷鍵:

  • Ctrl+Win+V:選中的內容將自動轉換為行內式超鏈接,鏈接到剪貼板中的內容;
  • Ctrl+Win+R:選中的內容將自動轉換為參考式超鏈接(全文多處引用時),鏈接到剪貼板中的內容;
  • 輸入 “mdl + tab” :會自動生成鏈接標記:[](link)

14. 圖片![]( "")

    行內式:
    ![圖片](http://www.example.com/demo.png "demo")
    參考式:
    ![圖片][demo]
    [demo]:http://www.example.com/demo.png "demo"

快捷鍵:

  • Win+Shift+K:插入一個標準的行內式圖片(此快捷鍵可能與輸入法有沖突)
  • 輸入 “mdi + tab” :會自動插入下面的圖片標記:
    ![Alt text](/path/to/img.jpg "Optional title")

15. 表格|

    | Tables        | Are           | Cool  |
    |:------------- |:-------------:| -----:|
    | col 3 is      | right-aligned | $1600 |
    | col 2 is      | centered      |   $12 |
    | zebra stripes | are neat      |    $1 |

如果覺得表格輸入太過麻煩,這里有2個參考鏈接能夠簡化一下表格操作:

16. 代碼:`

    `行內代碼`
    ```c
    #include <stdio.h>
    int main()
    {
        printf("Hello Jianshu!")
    }
    ```

17. 公式$

    行內公式:
    $E=mc^2$
    整行公式:
    $$\sum_{i=1}^n a_i=0$$

公式也不太常用,更多語法參考: MathJax

18. 流程圖

    flow
    st=>start: Start:>https://www.zybuluo.com
    io=>inputoutput: verification
    op=>operation: Your Operation
    cond=>condition: Yes or No?
    sub=>subroutine: Your Subroutine
    e=>end
    st->io->op->cond
    cond(yes)->e
    cond(no)->sub->io

流程圖測試沒有成功,由于暫時用不到,先不管了。更多語法參考:流程圖語法參考

注意事項

  1. 由于當前各種Markdown的編輯器、解析器很多,可能有些只支持基本的Markdown語法,有些支持Markdown Extra,有些支持 GitHub Flavored Markdown,還有些語法可能需要編輯器進行特殊配置才能夠支持,特別是代碼、公式、流程圖這種特定多媒體對象,暫時還沒弄清楚,反正基本能用,后面用到了再說。
  2. 在 Markdown 編寫中私以為最重要的需要理解 空格空行tab縮進 的作用,如果渲染出來的效果不是你想象的那樣,除了明顯的語法問題以外,很多時候都是沒有用空格、空行、tab縮進進行分隔導致的。私以為記住以下三點原則就能夠hold住大部分問題:
    • 關鍵字與正文內容之間,都采用空格進行分隔
    • 一個空行才表示分段,在要分段的地方,一定要空一行;不想分段的地方,敲個回車就行了
    • tab縮進主要表示一種層級關系,在各種嵌套的時候,一定要注意縮進,縮進少一個空格都有可能出問題,詳情見參考資料Markdown 語法手冊從(完整整理版)
  3. 圖片鏈接引用主要有如下三種方式,分別進行討論:
    • 本地圖片:使用絕對 or 相對即可,但是就是只能自己看,別人是看不了的
    • 圖片外鏈:直接使用 http 鏈接即可,但如果是自己的圖片,比如說截圖、照片之類,則需要上傳圖片到圖床之后,生成一個圖片外鏈進行引用。調研了一番,最后選擇了七牛云+極簡圖床/MPic-圖床神器的方式,參考這里進行注冊、配置、上傳即可簡單使用了
    • 圖片 base64 :即利用base64 工具把圖片轉成一串字符串放在鏈接的位置即可,本來最初想用這種方式,因為它無需依賴圖床,直接把圖片寫入到了md文件中,感覺比較獨立,很不錯;結果后來看到了這個base64的弊端,發現 base64 有一些很硬的缺點,所以最后還是選擇了外鏈的方式。

參考資料

從小白到入門到中級到高級……本文撰寫很多就參考了這些,都列在了后面,還有一些后續可能會用到的進階資料,也整理到后面,給自己定個目標。

  1. 一張圖理解Markdown語法:對應關系很明顯,最最基礎的,看完可能就可以開始動手寫了。
  2. Markdown——入門指南:講解的比較詳細,比上一張圖來說,能夠看出一些效果。
  3. Markdown基礎語法總結Markdown 11種基本語法:比上面一個又多了幾個語法,基本能夠hold住大部分情況了。
  4. Markdown語法說明(簡體中文版)Markdown語法說明(詳解版):我只看完了前面的簡體中文版,感覺詳解版類似就沒看了,看完能夠發現一些小的tips,需要注意的點,推薦至少認真看完一遍。
  5. Markdown 語法手冊從(完整整理版):總結的非常多,基本的確是完整整理版了,但是里面也有一些問題作者沒有指出來,最大的問題就是并不是所有的解析器都支持某些語法,比如說上面的流程圖,估計是需要一些特殊配置。
  6. 使用Sublime Text 3寫Markdown:這個介紹了ST下的markdown環境配置,推薦看完,而且指了GFM的路。
  7. [譯] GitHub 風格的 Markdown 語法:這個說了一些 GFM 和普通的 Markdown Extra 語法的一些區別,看了這個才明白前面完整整理版里面寫了一些語法可能不是所有的解析器都能夠解析,不過 MarkdownEditing 的配置可以選擇 github,所以這里寫的有些語法能夠渲染出來,試了一個 task list,感覺很不錯。
  8. [譯] GitHub 上的書寫方式:這個大概掃了一遍,就是在 GitHub 上和別人交流的時候可以用的,后續把 GitHub 用起來的時候再好好看看。
  9. 代碼塊可用的語言標識符:代碼塊的起始三個`后面需要接一個語言標識符,這樣才能對內部代碼進行高亮,之前代碼總是不能高亮,還以為是插件配置的問題,后來才發現是少寫了個c。
  10. 我的總結之sublime text2中MarkdownEditing插件的安裝與markdown的編寫使用:這篇博客的名稱可真夠長的,主要參考了后面總結的 MarkdownEditing 快捷鍵,其實這些也寫在了插件的默認配置文件中,只是這里翻譯了一下,每個都試了,能用的就上面列舉的那些,其他不能用主要是因為快捷鍵沖突,暫時先這樣,比較關鍵的快捷鍵還都用,感覺夠了。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容