文章目錄
Markdown學習筆記
起於2020.05.15
結束於…
若學到新的技巧,會及時更新
參考文獻
- [1] 菜鳥教程
- [2] CSDN教程:幾款主流好用的markdown編輯器介紹
一、Markdown簡介
以前一直用work寫文檔和筆記,但是work的格式太難控制了,而且如果到了寫論文的時候,變一個版本,格式可能就會變了,當然,對於寫論文來說,Markdown可能不是最好的選擇,而應該選擇Latex,不過,對於寫博客,還有Github,等等,都支持Markdown排版,用來寫普通筆記也是一個不錯的選擇,爲了以後更好地使用Markdown,這裏整理一下Markdown的學習筆記。
這份筆記就是一邊看着1一邊寫的,基本就是把它抄過來,然後自己補充一些。
其實,還有一個很直接的方法,就比如在Haroopad編輯器中,在菜單欄點插入,就會有相應的語法出來了!!
幾款Markdown編輯器
二、基本格式
2.1 標題
1) 1、2級標題
在標題下加-
和=
分別表示一級和二級標題
一級標題
========
二級標題
--------
標題效果就不顯示了。
2) 六級標題表示
可以用在標題前加#
,#
的個數表示標題等級
#一級標題
##二級標題
###三級標題
####四級標題
#####五級標題
######六級標題
標題效果就不顯示了,影響目錄。
2.2 段落格式
1) 段落
Markdown 段落沒有特殊的格式,直接編寫文字就好,段落的換行是使用兩個以上空格加上回車。
第一段(空格 空格 回車)
(空格 空格 回車)空一段
第二段
效果
第一段
第二段
2) 字體
*斜體文本*
_斜體文本_
**粗體文本**
__粗體文本__
***粗斜體文本***
___粗斜體文本___
效果
斜體文本
斜體文本
粗體文本
粗體文本
粗斜體文本
粗斜體文本
3) 分隔線
你可以在一行中用三個以上的星號、減號、底線來建立一個分隔線,行內不能有其他東西。你也可以在星號或是減號中間插入空格。下面每種寫法都可以建立分隔線:
***
* * *
*****
- - -
----------
效果
4) 刪除線
如果段落上的文字要添加刪除線,只需要在文字的兩後都加上兩個波浪線~~
即可,實例如下:
RUNOOB.COM
GOOGLE.COM
~~BAIDU.COM~~
效果:
RUNOOB.COM
GOOGLE.COM
BAIDU.COM
5) 下劃線
下劃線可以通過 HTML 的 <u>
標籤來實現:
<u>帶下劃線文本</u>
效果:
帶下劃線文本
6) 腳註
腳註是對文本的補充說明。
Markdown 腳註的格式如下:
[^要註明的文本]
以下實例演示了腳註的用法
創建腳註格式類似這樣 [^RUNOOB]。
[^RUNOOB]: 菜鳥教程 -- 學的不僅是技術,更是夢想!!!
效果:(好像沒什麼用,是版本問題嗎?Haroopad好像不能顯示,但是在CSDN中可以看到文章最後有顯示的。)
創建腳註格式類似這樣 1。
7) 中文空格
中文不好加入空格,那就加入空格分隔符
,更多的參考:
- 插入一個空格 (non-breaking space)
或 
或 
- 插入兩個空格 (en space)
 
或 
或 
- 插入四個空格 (em space)
 
或 
或 
- 插入細空格 (thin space)
 
或 
或 
2.3 列表
1) 無序列表
Markdown 支持有序列表和無序列表。
無序列表使用星號*
、加號+
或是減號-
作爲列表標記,符號後面還要加一個空格:
* 第一項
* 第二項
* 第三項
+ 第一項
+ 第二項
+ 第三項
- 第一項
- 第二項
- 第三項
效果:
- 第一項
- 第二項
- 第三項
- 第一項
- 第二項
- 第三項
- 第一項
- 第二項
- 第三項
2) 有序列表
有序列表使用數字並加上 .
號來表示,如:
1. 第一項
2. 第二項
3. 第三項
效果
- 第一項
- 第二項
- 第三項
3) 列表嵌套
列表嵌套只需在子列表中的選項添加四個空格即可:
1. 第一項:
- 第一項嵌套的第一個元素
- 第一項嵌套的第二個元素
2. 第二項:
- 第二項嵌套的第一個元素
- 第二項嵌套的第二個元素
效果:
- 第一項:
- 第一項嵌套的第一個元素
- 第一項嵌套的第二個元素
- 第二項:
- 第二項嵌套的第一個元素
- 第二項嵌套的第二個元素
2.4 區塊
1) 一般的使用
Markdown 區塊引用是在段落開頭使用 >
符號 ,然後後面緊跟一個空格符號。
> 區塊引用
> 菜鳥教程
> 學的不僅是技術更是夢想
區塊引用
菜鳥教程
學的不僅是技術更是夢想
2) 區塊分塊
另外區塊是可以嵌套的,一個 >
符號是最外層,兩個 >
符號是第一層嵌套,以此類推:
> 最外層
> > 第一層嵌套
> > > 第二層嵌套
最外層
第一層嵌套
第二層嵌套
3) 區塊中使用列表
> 區塊中使用列表
> 1. 第一項
> 2. 第二項
> + 第一項
> + 第二項
> + 第三項
效果:
區塊中使用列表
- 第一項
- 第二項
- 第一項
- 第二項
- 第三項
4) 列表中使用區塊
如果要在列表項目內放進區塊,那麼就需要在 >
前添加四個空格的縮進。
區塊中使用列表實例如下:
* 第一項
> 菜鳥教程
> 學的不僅是技術更是夢想
* 第二項
效果:
- 第一項
菜鳥教程
學的不僅是技術更是夢想 - 第二項
2.4 插入代碼
1) 行內代碼
如果是段落上的一個函數或片段的代碼可以用反引號把它包起來 `,例如:
`printf()` 函數
效果:
printf()
函數
Tips: 如何把
`加入代碼中?
空格
空格
`
不過這個方法在顯示上好像沒有問題,但是在代碼框中就好像有點問題了。
2) 插入代碼塊1
代碼區塊使用 4 個空格或者一個製表符(Tab 鍵)。
實例如下:
Hellow world!!!
Display codes block.
效果好像不行
3) 插入代碼塊2
你也可以用 ` ````包裹一段代碼,並指定一種語言(也可以不指定):
```javascript
$(document).ready(function () {
alert('RUNOOB');
});
```<!--怎麼在代碼塊顯示這三個點?-->
2.5 插入鏈接
1) 普通鏈接
鏈接名稱](鏈接地址)
或者
<鏈接地址>
例:
這是一個鏈接 [菜鳥教程](https://www.runoob.com)
效果:
這是一個鏈接 菜鳥教程
直接使用鏈接地址:
<https://www.runoob.com>
2) 高級鏈接
我們可以通過變量來設置一個鏈接,變量賦值在文檔末尾進行:
這個鏈接用 1 作爲網址變量 [Google][1]
這個鏈接用 runoob 作爲網址變量 [Runoob][runoob]
然後在文檔的結尾爲變量賦值(網址)
[1]: http://www.google.com/
[runoob]: http://www.runoob.com/
效果:
這個鏈接用 1 作爲網址變量 Google
這個鏈接用 runoob 作爲網址變量 Runoob
然後在文檔的結尾爲變量賦值(網址)
3) 頁內跳轉
實現在文件中跳轉
目的:
<span id='ID_Name'>跳轉到這</span>
起點:
[從這跳轉](#ID_Name)
效果:
目的:
跳轉到這
起點:
從這跳轉
2.6 插入圖片
Markdown 圖片語法格式如下:
![alt 屬性文本](圖片地址)
![alt 屬性文本](圖片地址 "可選標題")
- 開頭一個感嘆號 !
- 接着一個方括號,裏面放上圖片的替代文字
- 接着一個普通括號,裏面放上圖片的網址,最後還可* 以用引號包住並加上選擇性的 ‘title’ 屬性的文字。
- 地址也可以用本地的,直接從地址欄複製就行。
使用實例:
![RUNOOB 圖標](http://static.runoob.com/images/runoob-logo.png)
![RUNOOB 圖標](http://static.runoob.com/images/runoob-logo.png "RUNOOB")
效果:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-bIviC76X-1589624657634)(http://static.runoob.com/images/runoob-logo.png “RUNOOB”)]
當然,你也可以像網址那樣對圖片網址使用變量:
這個鏈接用 1 作爲網址變量 [RUNOOB][1].
然後在文檔的結尾爲變量賦值(網址)
[1]: http://static.runoob.com/images/runoob-logo.png
Markdown 還沒有辦法指定圖片的高度與寬度,如果你需要的話,你可以使用普通的 <img>
標籤。
<img src="http://static.runoob.com/images/runoob-logo.png" width="50%">
效果:
2.6 插入表格
表格語法
Markdown 製作表格使用 |
來分隔不同的單元格,使用 -
來分隔表頭和其他行。
語法格式如下:
| 表頭 | 表頭 |
| ---- | ---- |
| 單元格 | 單元格 |
| 單元格 | 單元格 |
效果:(爲什麼Haroopad中不顯示?前後空一行可以解決!)
表頭 | 表頭 |
---|---|
單元格 | 單元格 |
單元格 | 單元格 |
對齊方式
我們可以設置表格的對齊方式:
-:
設置內容和標題欄居右對齊。:-
設置內容和標題欄居左對齊。:-:
設置內容和標題欄居中對齊。
實例如下:
| 左對齊 | 右對齊 | 居中對齊 |
| :-----| ----: | :----: |
| 單元格 | 單元格 | 單元格 |
| 單元格 | 單元格 | 單元格 |
效果:
左對齊 | 右對齊 | 居中對齊 |
---|---|---|
單元格 | 單元格 | 單元格 |
單元格 | 單元格 | 單元格 |
三、高級技巧
3.1 支持的HTML元素
Markdown是內嵌HTML的,通過HTML的語法,我們可以設置字體大小、顏色等等。
不在 Markdown 涵蓋範圍之內的標籤,都可以直接在文檔裏面用 HTML 撰寫。
目前支持的 HTML 元素有:<kbd>
<b>
<i>
<em>
<sup>
<sub>
<br>
等 ,如:
使用 <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>Del</kbd> 重啓電腦
效果:
使用 Ctrl+Alt+Del 重啓電腦
3.1.1 字體類型、大小、顏色
<font face="黑體">我是黑體字</font>
<font face="微軟雅黑">我是微軟雅黑</font>
<font face="STCAIYUN">我是華文彩雲</font>
<font color=red>我是紅色</font>
<font color=#008000>我是綠色</font>
<font color=Blue>我是藍色</font>
<font size=5>我是尺寸</font>
<font face="黑體" color=green size=5>我是黑體,綠色,尺寸爲5</font>
效果:
我是黑體字
我是微軟雅黑
我是華文彩雲
我是紅色
我是綠色
我是藍色
我是尺寸
我是黑體,綠色,尺寸爲5
3.1.2 爲文字添加背景色
由於 style 標籤和標籤的 style 屬性不被支持,所以這裏只能是藉助 table, tr, td 等表格標籤的 bgcolor 屬性來實現背景色。故這裏對於文字背景色的設置,只是將那一整行看作一個表格,更改了那個格子的背景色(bgcolor)
<table><tr><td bgcolor=yellow>背景色yellow</td></tr></table>
效果:
背景色yellow |
- 設置圖片百分比
<img src="http://pic11.photophoto.cn/20090626/0036036341009653_b.jpg" width="50%" height="50%">
- 設置圖片大小
<img src="http://pic11.photophoto.cn/20090626/0036036341009653_b.jpg" width="251" height="350" >
- 設置圖片位置
<div align=right><img src="http://pic11.photophoto.cn/20090626/0036036341009653_b.jpg" width="50%" height="50%"></div>
更多的:center
, left
, left
3.2 轉義
- Markdown 使用了很多特殊符號來表示特定的意義,如果需要顯示特定的符號則需要使用轉義字符,Markdown 使用反斜槓轉義特殊字符:
**文本加粗**
\*\* 正常顯示星號 \*\*
效果:
文本加粗
** 正常顯示星號 **
- Markdown 支持以下這些符號前面加上反斜槓來幫助插入普通的符號:
\ 反斜線
` 反引號
* 星號
_ 下劃線
{} 花括號
[] 方括號
() 小括號
# 井字號
+ 加號
- 減號
. 英文句點
! 感嘆號
3.3 公式
當你需要在編輯器中插入數學公式時,可以使用兩個美元符 $$ 包裹 TeX 或 LaTeX 格式的數學公式來實現。提交後,問答和文章頁會根據需要加載 Mathjax 對數學公式進行渲染。如:
- 這個需要了解Latex語法。
$$
\mathbf{V}_1 \times \mathbf{V}_2 = \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\
\end{vmatrix}
${$tep1}{\style{visibility:hidden}{(x+1)(x+1)}}
$$
效果:
KaTeX parse error: Can't use function '$' in math mode at position 249: …
\end{vmatrix}
$̲{$tep1}{\style{…
3.4 插入目錄
插入目錄只要在想插入的地方加入[TOC]
即可:
文章目錄
3.5 小技巧,解決代碼不編譯
我發現在Haroopad上寫的時候,比如插入表格,需要在前面空一行表格纔會顯示出來,還有其它一些問題也是可以在前面空一行解決的,還比如列表會連續,空一行就可以斷開了。
在CSDN上,標題後比如##要加入一個空格才行,否則不顯示,可能還有其它一些小問題了。
這些問題的出現可能是不同的編譯器上的小差別造成的,不過寫代碼需要規範,規範了一般不會有什麼問題的。
四、框圖
4.1 橫向流程圖
```mermaid
graph LR
A[方形] -->B(圓角)
B --> C{條件a}
C -->|a=1| D[結果1]
C -->|a=2| E[結果2]
F[橫向流程圖]
- ***注意:***需要把` ````也輸入才能寫表格,這裏並不是markdown的代碼註釋了。
效果:
4.2 豎向流程圖
```mermaid
graph TD
A[方形] --> B(圓角)
B --> C{條件a}
C --> |a=1| D[結果1]
C --> |a=2| E[結果2]
F[豎向流程圖]
效果:
4.3 標準流程圖
```mermaid
flowchat
st=>start: 開始框
op=>operation: 處理框
cond=>condition: 判斷框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 輸入輸出框
e=>end: 結束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
效果:(好像沒有效果?可能是Haroopad不支持吧?)
4.4 標準流程圖源碼格式(橫向)
```mermaid
flowchat
st=>start: 開始框
op=>operation: 處理框
cond=>condition: 判斷框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 輸入輸出框
e=>end: 結束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op
效果:
4.5 UML時序圖源碼樣例
```mermaid
sequenceDiagram
對象A->>對象B: 對象B你好嗎?(請求)
Note right of 對象B: 對象B的描述
Note left of 對象A: 對象A的描述(提示)
對象B-->>對象A: 我很好(響應)
對象A->>對象B: 你真的好嗎?
效果:
4.6 UML時序圖源碼複雜樣例
```mermaid
sequenceDiagram
Title: 標題:複雜使用
對象A->>對象B: 對象B你好嗎?(請求)
Note right of 對象B: 對象B的描述
Note left of 對象A: 對象A的描述(提示)
對象B-->>對象A: 我很好(響應)
對象B->>小三: 你好嗎
小三-->>對象A: 對象B找我了
對象A->>對象B: 你真的好嗎?
Note over 小三,對象B: 我們是朋友
participant C
Note right of C: 沒人陪我玩
效果:
4.7 UML標準時序圖樣例
```mermaid
%% 時序圖例子,-> 直線,-->虛線,->>實線箭頭
sequenceDiagram
participant 張三
participant 李四
張三->王五: 王五你好嗎?
loop 健康檢查
王五->王五: 與疾病戰鬥
end
Note right of 王五: 合理 食物 <br/>看醫生...
李四-->>張三: 很好!
王五->李四: 你怎麼樣?
李四-->王五: 很好!
效果:
4.8 甘特圖樣例
```mermaid
%% 語法示例
gantt
dateFormat YYYY-MM-DD
title 軟件開發甘特圖
section 設計
需求 :done, des1, 2014-01-06,2014-01-08
原型 :active, des2, 2014-01-09, 3d
UI設計 : des3, after des2, 5d
未來任務 : des4, after des3, 5d
section 開發
學習準備理解需求 :crit, done, 2014-01-06,24h
設計框架 :crit, done, after des2, 2d
開發 :crit, active, 3d
未來任務 :crit, 5d
耍 :2d
section 測試
功能測試 :active, a1, after des3, 3d
壓力測試 :after a1 , 20h
測試報告 : 48h
效果:
%% 語法示例
gantt
dateFormat YYYY-MM-DD
title 軟件開發甘特圖
section 設計
需求 :done, des1, 2014-01-06,2014-01-08
原型 :active, des2, 2014-01-09, 3d
UI設計 : des3, after des2, 5d
未來任務 : des4, after des3, 5d
section 開發
學習準備理解需求 :crit, done, 2014-01-06,24h
設計框架 :crit, done, after des2, 2d
開發 :crit, active, 3d
未來任務 :crit, 5d
耍 :2d
section 測試
功能測試 :active, a1, after des3, 3d
壓力測試 :after a1 , 20h
測試報告 : 48h
五、Markdown轉PDF
- 安裝Latex
- 想要更好的PDF體驗,還是老實學習Latex吧!
5.1 使用pandoc轉換
5.1.1 下載與安裝pandoc
- 網上的人推薦用pandoc,不過好像要結合Latex,上面給出了Latex的安裝方法!
- pandoc簡介:Pandoc 是一個用 haskell 編寫的開源文本轉換工具,小巧迅速且支持格式廣泛,堪稱文本轉換應用的瑞士軍刀。支持很多種輸入輸出,有關 Pandoc 可以在其官網進行詳細瞭解。下載頁面可以點此進入,在其中選擇合適的版本即可(GitHub 下載不多贅述)。
- 參考1
- 參考2
- 參考3
首先我們打開pandoc的官方網站,然後點擊Installing,下載即可,或者點擊Releases,到github上下載,這是一個開源的項目,放心使用吧!
- 我選擇了x64的下載,他提供了一個zip包和一個msi包,都下了,msi可以安裝的,但是zip提供了exe文件,不會用,zip裏會有說明,沒細看了。那就下載msi文件安裝吧,雙擊運行安裝即可!
5.1.2 Getting started
下載好後參照pandoc管網的Getting started來操作吧,也可以看pandoc幫助手冊,還有指令demos。
- 安裝好後打開
cmd
或者PowerShell
,輸入:
pandoc --version
可以查到版本號就說明安裝成功了!
2. 更改當前目錄
在powershell中輸入pwd
可以查看當前目錄,dir
可以查看當前目錄下的文件,cd
可以轉換目錄,可以打開需要轉換的文件所在目錄,直接轉換過去,比如:
cd your_directory
Example:
cd D:\Software_Study\Markdown\Latex安裝與配置
輸入cd ..
可以跳轉到上一個目錄,等等。
3. 轉換命令
如果只是英文的,所說可以用:
pandoc input.md -o output.pdf
但是,有中文不行,需要latex,但是我試了幾種方法都不行,但是關鍵都是latex,所以先學latex吧!
5.2 使用Haroopad的打印功能
這個很簡單,但是出來的pdf文件的鏈接沒有了,字也不能複製。
如果想格式可調一點的話,那就先導出HTML,再用瀏覽器打開,打印成pdf,不過還是一樣會丟失鏈接。
- 不過轉成pdf都面臨一個排版的問題,有時候不盡人意。
5.3 使用markdownpad2轉換
markdownpad2帶有轉爲pdf的功能,所以是一個不錯的選擇,但是收費!!!
到官網上下載就可以了,下載後直接安裝,不過好像又要安裝一個visual c++什麼的,我沒安裝成功,看看再說吧。
5.3.1 註冊
安裝好後,會彈出註冊的框,填入以下信息即可註冊成功。如果沒有彈出,可以這麼做:
不過我遇到點問題,輸入註冊信息後還是不行,提示html錯誤什麼的,結果重新打開一下軟件又可以了,不知道爲什麼。
以下提供一個可用的license:
Email address :
[email protected]
License key :
GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwfeTG7kUdnhKE0vVy4RidP6Y2wZ0q74f47fzsZo45JE2hfQBFi2O9Jldjp1mW8HUpTtLA2a5/sQytXJUQl/QKO0jUQY4pa5CCx20sV1ClOTZtAGngSOJtIOFXK599sBr5aIEFyH0K7H4BoNMiiDMnxt1rD8Vb/ikJdhGMMQr0R4B+L3nWU97eaVPTRKfWGDE8/eAgKzpGwrQQoDh+nzX1xoVQ8NAuH+s4UcSeQ==
激活後,隨便打開一個markdown文件,但是無法顯示預覽,需要下載一個跟html有關的文件,Awesomium,下載安裝好後,重啓電腦就可以使用了。
如果使用註冊機,只需要隨便給一下郵箱地址就可以生成license key了!
5.3.2 轉換pdf
在markdownpad2中寫好文章後,點擊file
->export
,導出到PDF文件就可以了,文字可以複製,鏈接能保留,但是排版不是很理想,而且表格好像也無法顯示,等等一些問題,以後想到解決辦法再補充吧。
菜鳥教程 – 學的不僅是技術,更是夢想!!! ↩︎