爲何要學習 Markdown?究竟有什麼用?怎麼用?

做者:JackTian
微信公衆號:傑哥的IT之旅(ID:Jake_Internet)javascript

1、什麼是 Markdown?

Markdown 是一種輕量級標記語言,創始人是約翰·格魯伯(John Gruber)。容許人們使用易讀易寫的純文本格式編寫文檔,能夠導出 HTML 、Word、圖像、PDF、Epub 等多種格式的文檔,文檔後綴爲.md.markdownphp

據說Markdown是目前互聯網上最流行的寫做語言,它使用一些簡單的符號# * / > [] ()\來標記文本格式,語法很是簡單。除此以外,還有不少很是好看的格式可自行選擇。css

2、爲何學習 Markdown?

自從運營公衆號起,剛開始那會,我都是經過公衆號後臺編輯的文章。這裏確定有很多讀者,不知道公衆號後臺是如何編輯文章的,給你們看下,具體見下圖。java

公衆號後臺編輯文章時,不只輸出的同時,還要調整字體大小、加粗、對齊、縮進等一系列的操做,剛開始推送出去的文章,排版總體以爲不是很美觀,後來,慢慢接觸了業界的大佬們吸收了他們的經驗,慢慢改善,逐步轉向了markdown編輯器,排版格式也獲得了讀者們的承認。python

通過一段時間的研究後,Markdown 編輯器不只能夠幫助公衆號排版以外,還能夠給其餘文檔進行排版,使其文章更有結構感,總體佈局也更加好看。我相信你們,只要你喜歡記錄和輸出,Markdown 是一個很是值得學習和掌握的技能,良好的平臺擴展性,專一於寫做自己而不是格式。windows

3、Markdown 編輯器工具

  • 平臺文章編輯器:簡書、CSDN 等;bash

  • 本地APP:MarkText、Typora、Notable、vnote 等;微信

  • Web APP:md2all、mdeditor 等;markdown

4、Markdown 有哪些特色?

  • 一鍵建立運維

  • 支持主流的語法

  • 支持插入圖片

  • 支持多種模式切換

  • 跨平臺同步

  • 演示模式

5、Markdown 的基本語法

Markdown 標題

使用#號可表示1-6級標題,一級標題對應一個#號,二級標題對應兩個#號,以此類推。

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

字體

斜體文本:能夠在須要標註爲斜體文本前及斜體文本結尾,輸入一個星號*或者一個下劃線_

粗體文本:能夠在須要標註爲粗體文本前及粗體文本結尾,輸入兩個星號**或者兩個下劃線__

粗斜體文本:能夠在須要標註爲粗斜體文本前及粗斜體文本結尾,輸入三個星號***或者三個下劃線_

*斜體文本*
_斜體文本_
**粗體文本**
__粗體文本__
***粗斜體文本***
___粗斜體文本___

分隔線

在一行中用三個(以上)的星號、減號、底線來創建一個分隔線,該分隔線行內不能輸出任何其餘文本,也能夠在星號或是減號中間插入空格。

***
* * *
*****
- - - 

刪除線

若是段落上的文字需添加刪除線,在須要添加刪除線的文字首部和尾部加上兩個波浪線~~便可

~~這行文字已被刪除~~

這行文字已被刪除

下劃線

若是段落上的文字需添加下劃線,在須要添加下劃線的文字首部和尾部加上<u>文本</u>便可

<u>這行文字已被添加下劃線</u>

這行文字已被添加下劃線

腳註

腳註是對文本的備註說明。

print ^Hello World

[^Hello World]:你好,世界

列表

Markdown 支持有序列表和無序列表。

無序列表使用星號(*)加號(+)或是減號(-)做爲列表標記;

有序列表使用數字並加上 . 號標記;

* 第一
+ 第二
- 第三
1.第四
2.第五
3.第六

列表嵌套

列表嵌套需在子列表中的選項中添加四個空格

1. 第一
    - 第一個列表嵌套
2. 第二
    - 第二個列表嵌套
  1. 第一

  • 第一個列表嵌套

  • 第二

    • 第二個列表嵌套

    引用

    Markdown 引用需在段落開頭使用>符號,後面緊跟一個空格符號,不加也可。

    > 這是一個引用
    > 做者:JackTian
    > 微信公衆號:傑哥的IT之旅(ID:Jake_Internet)

    這是一個引用
    做者:JackTian
    微信公衆號:傑哥的IT之旅(ID:Jake_Internet)

    除上述引用外,還能夠嵌套,一個>符號在第一層,兩個>符號是第一層的嵌套,以此類推。

    > 這是一個引用
    > > 做者:JackTian
    > > > 微信公衆號:傑哥的IT之旅(ID:Jake_Internet)

    這是一個引用

    做者:JackTian

    微信公衆號:傑哥的IT之旅(ID:Jake_Internet)

    引用中使用列表

    > 引用列表
    > * 這是一個引用
    > - 做者:JackTian
    > 1. 微信公衆號:傑哥的IT之旅(ID:Jake_Internet)

    引用列表

    • 這是一個引用

    • 做者:JackTian

    1. 微信公衆號:傑哥的IT之旅(ID:Jake_Internet)

    列表中使用引用

    如要在列表中使用引用,須要在>號前添加四個空格的縮進。

    - 列表中使用引用 1
    
        > 這是一個引用
        > 做者:JackTian
        > 微信公衆號:傑哥的IT之旅(ID:Jake_Internet)
    
    - 列表中使用引用 2
    • 列表中使用引用 1

      這是一個引用
      做者:JackTian
      微信公衆號:傑哥的IT之旅(ID:Jake_Internet)

    • 列表中使用引用 2

    代碼

    markdown對代碼塊的語法是開始和結束行都要添加:```,其中 ` 爲windows鍵盤左上角那個,要精確指定語言(如:java、cpp、css、xml、javascript、python、php、go、kotlin、lua、objectivec等等)時,在頭部直接指定,如:```java

    #!/bin/bash
    . /etc/init.d/functions
    for var in {11..59};
    do
    ip=172.16.1.$var
    ping -c2 $ip >/dev/null 2>&1
    if [ $? = 0 ];then
    action "$ip" /bin/true
    else
    action "$ip" /bin/false
    fi
    don

    連接

    連接語法格式:

    [連接名稱](連接地址)
    
    或者
    
    <連接地址>
    [Linux 環境下實戰 Rsync 備份工具及配置 rsync+inotify 實時同步](https://mp.weixin.qq.com/s/P8XDrr7ROIXBYOZnLy45zA)
    
    或者
    
    <https://mp.weixin.qq.com/s/P8XDrr7ROIXBYOZnLy45zA>

    除此以外,連接還能夠用變量來代替。

    這個連接用 Rsync 備份工具 做爲網址變量 Linux 環境下實戰 Rsync 備份工具及配置 rsync+inotify 實時同步

    這個連接用 無人值守安裝 做爲網址變量 RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 實現無人值守安裝

    結尾變量地址以下:

    [Linux 環境下實戰 Rsync 備份工具及配置 rsync+inotify 實時同步]: https://mp.weixin.qq.com/s/P8XDrr7ROIXBYOZnLy45zA
    [RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 實現無人值守安裝]: https://mp.weixin.qq.com/s/YcPnTT74HfturmINeDvCeA

    圖片

    圖片語法格式:

    ![圖片描述](圖片地址)
    ![圖片描述](圖片地址 "可選標題")

    除此以外,圖片網址使用變量

    這個連接用 WeChat 做爲網址變量 WeChat。

    變量賦值:

    [WeChat]:https://mmbiz.qpic.cn/mmbiz_png/nDMNE6lrvW5vhBgOCoUxyvxibYqeibicjWyFzjVIY8fEWVslGUcwPxicOggBCt0Os7ib7KYzqwNLS3sIAmGMxQRlibjg/0?wx_fmt=png

    在 Markdown 編輯器是沒法調整圖片的高度與寬度的,如須要可以使用普通的<img>標籤。

    <img src="https://mmbiz.qpic.cn/mmbiz_png/nDMNE6lrvW5vhBgOCoUxyvxibYqeibicjWyFzjVIY8fEWVslGUcwPxicOggBCt0Os7ib7KYzqwNLS3sIAmGMxQRlibjg/0?wx_fmt=png" width="50%">

    表格

    製做表格使用|來分隔不一樣的單元格,使用-來分隔表頭和其餘行。

    表格語法格式:

    |  表頭   | 表頭  |  表頭  |
    |  ----  | ----  | ----- |
    | 單元格  | 單元格 | 單元格 |
    | 單元格  | 單元格 | 單元格 |

    注意:表格在公衆號預覽時,可能在 PC 端顯示的不是正確的全屏,但在手機上預覽時會正常顯示爲全屏。

    若是你想調整表格的左對齊右對齊居中對齊,可按下述方式進行調整;

    :-:將表頭及單元格的內容左對齊;
    -:將表頭及單元格的內容左對齊;
    :-:將表頭及單元格的內容居中對齊;

    |  表頭1   | 表頭2  |  表頭3  |  表頭4  |
    |  :----  | :----: | :-----: | -----:|
    | 單元格1  | 單元格2 | 單元格3 |  單元格4 |
    | 單元格1  | 單元格2 | 單元格3 |  單元格4 |

    支持 HTML 元素

    目前支持的 HTML 元素有:<kbd> <b> <i> <em> <sup> <sub> <br>等;

    不在 Markdown 涵蓋範圍以內的標籤,可直接在文檔裏面用 HTML 撰寫,經過md2all編輯器是沒法顯示使用<kbd>Ctrl</kbd>+<kbd>C</kbd>複製文本 HTML 元素的,這裏你們能夠結合mdeditor編輯器平臺來實現。

    使用 <kbd>Ctrl</kbd>+<kbd>C</kbd> 複製文本

    轉義

    在 Markdown 編輯器裏面使用了不少特殊符號來表示特定的意義,該特殊符號將再也不顯示。那麼若是須要想讓這些特殊符號顯示出來,則須要使用轉義字符,Markdown 編輯器可以使用反斜槓來進行轉義特殊字符便可;

    轉義特殊字符格式:

    \*\* 轉義特殊符號正常顯示 \*\*

    科學公式

    當須要在 Markdown 編輯器中插入數學公式時,可使用兩個美圓符$$包裹TeXLaTeX格式的數學公式來實現。

    $$E=mc^2$$
    
    $$\sin(\alpha)^{\theta}=\sum_{i=0}^{n}(x^i + \cos(f))$$

    多行公式

    橫向流程圖

    md2all編輯器是沒法實現流程圖的製做的,能夠在有道雲筆記PC端,新建一個md的文件,開啓源代碼模式進行編輯查看效果;

    ```
    graph LR
    A(總經理) --> B(技術部)
        B --> C{開發/測試/運維}
        C --> |開發部| D[開發者1]
        C --> |測試部| E[測試者1]
        C --> |運維部| F[運維者1]
        G[橫向流程圖]```

    豎向流程圖

    ```
    graph TD
    A(總經理) --> B(技術部)
        B --> C{開發/測試/運維}
        C --> D[開發者1]
        C --> E[測試者1]
        C --> F[運維者1]
        G[豎向流程圖]
    ```

    標準流程圖

    ```flow
    st=>start: 用戶登錄
    op=>operation: 登錄操做
    cond=>condition: 登錄成功 Yes or No?
    e=>end: 進入後臺
    
    st->op->cond
    cond(yes)->e
    cond(no)->op
    ```

    標準流程圖(橫向)

    ```flow
    st=>start: 用戶登錄
    op=>operation: 登陸操做
    cond=>condition: 登錄成功(Yes or No?)
    sub1=>subroutine: 從新登陸
    io=>inputoutput: 開始操做後臺
    e=>end: 退出系統
    st(right)->op(right)->cond
    cond(yes)->io(bottom)->e
    cond(no)->sub1(right)->op
    ```

    UML時序圖

    ```sequence
    好友A->好友C: Hello,好友C!(請求)
    Note left of 好友A: 一段有趣的對話
    好友C-->好友A: Hi,好友A!(響應)
    好友A->好友B: Good night!
    好友B-->好友A: Good night!
    好友C->好友B:  How are you?
    好友B-->好友C: Fine,thank you!
    ```

    UML 複雜時序圖

    ```sequence
    Title: 標題:這是一個複雜的 UML 時序圖
    好友A->好友C: Hello,好友C!(請求)
    Note right of 好友C: 好友C的描述
    Note left of 好友A: 好友A的描述(提示)
    好友C-->好友A: Hi,好友A!(響應)
    好友B->小三: 小三,你還好嗎?
    小三-->>好友A: 好友B,今天找我了,問我還好嗎?
    好友A->好友B: 那你怎麼回覆小三的呢?
    Note over 小三,好友B: 很久不見,咱們仍是好朋友。
    participant 好友D
    Note right of 好友D: 竟然沒人問我???```

    除了上面舉例的橫向流程圖豎向流程圖標準流程圖標準流程圖(橫向)UML時序圖UML複雜時序圖,還有UML標準時序圖甘特圖等等。

    6、Markdown 能夠在哪一個平臺編寫文章?

    在上面第三標題內簡單介紹了幾款平臺文章編輯器本地 APPWeb APP,結合我自身狀況,如今用的是md2all編輯器來寫文章,只需簡單的一些特殊字符來完成便可,不會把總體的文章搞的花裏胡哨的。

    你們也能夠根據本身的需求,選擇適合本身的。這裏也歡迎你們留言說說,你是經過什麼 Markdown 編輯器工具來寫文章的。

    7、怎麼將 Markdown 編寫的文章與公衆號平臺相結合?

    公衆號編輯器是一個富文本編輯器,樣式都比較基礎,不支持直接用Markdown語法來編輯文本。

    我我的是經過md2all編輯器編寫好後,而後複製粘貼到公衆號,全部的樣式渲染地很完美,包括圖片加載等等,且格式也不會變的很亂。 (備註:這裏有修改)

    推薦一個神網站mdnice.com,能夠將Markdown源文件複製Markdown編輯器,預覽窗口便可顯示效果,並能夠複製到微信公衆號或者知乎。

    效果圖:

    往期精彩回顧
    
    
    
    
    適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)備註:加入本站微信羣或者qq羣,請回復「加羣」獲取一折本站知識星球優惠券,請回復「知識星球」

    喜歡文章,點個在看