markdownlint是vscode上一款非常好用的 Markdown 格式檢查擴(kuò)展工具摸柄,它規(guī)定了許多規(guī)則并實(shí)時(shí)對(duì)文檔進(jìn)行檢查,防止一些語(yǔ)法錯(cuò)誤春瞬,同時(shí)維持文檔風(fēng)格的統(tǒng)一惫确,使用此工具有助于形成一個(gè)良好的寫(xiě)作習(xí)慣和規(guī)范。但因其規(guī)則較多,寫(xiě)文檔時(shí)很容易就出錯(cuò)(或不符合規(guī)則),所以需要對(duì)工具的規(guī)則有一個(gè)詳細(xì)的了解粟关,另外纵寝,有時(shí)工作要求的文檔風(fēng)格與markdownlint工具規(guī)定的規(guī)則并不相同,比如標(biāo)題扣典、列表的創(chuàng)建格式,縮進(jìn)的空格數(shù)等等,這時(shí)就需要對(duì)規(guī)則進(jìn)行一定的設(shè)置池凄。
本文主要參考markdownlint的rules文檔,對(duì)每一個(gè)規(guī)則都進(jìn)行了說(shuō)明鬼廓,指明了一些規(guī)則中可以設(shè)置的參數(shù)肿仑,便于用戶(hù)設(shè)置相應(yīng)的規(guī)則。
MD001 - Heading levels should only increment by one level at a time
標(biāo)題級(jí)數(shù)每次只能擴(kuò)大1, 也就是不能隔級(jí)創(chuàng)建標(biāo)題(從1級(jí)到6級(jí)的順序)
MD002 - First heading should be a top level heading
文檔的第一個(gè)標(biāo)題必須是最高級(jí)的標(biāo)題(標(biāo)題等級(jí)1級(jí)到6級(jí)逐漸降低)
參數(shù):
"level":指定最高級(jí)標(biāo)題的級(jí)數(shù)碎税,默認(rèn)是1
MD003 - Heading style
整篇文檔要采用一致的標(biāo)題格式
參數(shù):
"style":字符串尤慰,指定文檔標(biāo)題的格式,有("consistent", "atx", "atx_closed", "setext", "setext_with_atx", "setext_with_atx_closed")五種雷蹂,默認(rèn)是"consistent"伟端,也就是整篇文檔一致
標(biāo)題格式必須統(tǒng)一,一般不能混用匪煌,但"setext_with_atx", "setext_with_atx_closed"格式可以在"setext"格式二級(jí)標(biāo)題后接著使用"atx"或"atx_closed"格式的標(biāo)題
MD004 - Unordered list style
整篇文檔定義無(wú)序列表的格式要一致
參數(shù):
"style":字符串责蝠,指定無(wú)序列表的定義格式,有("consistent", "asterisk", "plus", "dash", "sublist")五種萎庭,分別表示“定義時(shí)符號(hào)前后一致”玛歌,“用星號(hào)定義”,“用加號(hào)定義”擎椰,“用減號(hào)定義”支子,“定義多重列表時(shí)用不同的符號(hào)定義”,默認(rèn)是"consistent"
MD005 - Inconsistent indentation for list items at the same level
同一級(jí)的列表縮進(jìn)必須一致
在有序列表中达舒,前面的數(shù)字序號(hào)可以左對(duì)齊值朋,也可以右對(duì)齊
MD006 - Consider starting bulleted lists at the beginning of the line
1級(jí)列表不能縮進(jìn)
MD007 - Unordered list indentation
無(wú)序列表嵌套縮進(jìn)時(shí)默認(rèn)采用兩個(gè)空格
參數(shù):
"indent":指定無(wú)序列表嵌套時(shí)縮進(jìn)的空格數(shù)叹侄,默認(rèn)是2
MD009 - Trailing spaces
行尾最多可以添加兩個(gè)空格,超過(guò)會(huì)給出警告昨登,兩個(gè)空格正好可以用于換行
參數(shù):
"br_spaces":指定在行尾可以添加的空格數(shù)目趾代,空格數(shù)目建議大于等于2,如果小于2丰辣,會(huì)默認(rèn)為0撒强,也就是不允許任何行尾的空格
"list_item_empty_lines":字符串,指定在列表中是否(true or false)用默認(rèn)的空格數(shù)縮進(jìn)空行笙什,有的解釋器會(huì)要求列表中的空行要縮進(jìn)
MD010 - Hard tabs
不能使用tab鍵縮進(jìn)飘哨,要使用空格
參數(shù):
"code_blocks":指定本條規(guī)則在代碼塊里是否(true or false)生效
MD011 - Reversed link syntax
檢查內(nèi)聯(lián)形式的鏈接的創(chuàng)建方式是否錯(cuò)誤,中括號(hào)和圓括號(hào)是否用對(duì)
MD012 - Multiple consecutive blank lines
文檔中不能有連續(xù)的空行琐凭,在代碼塊中此規(guī)則不會(huì)生效
參數(shù):
"maximum":指定文檔中可以連續(xù)的最多空行數(shù)芽隆,默認(rèn)值是1
MD013 - Line length
默認(rèn)行的最大長(zhǎng)度是80,此規(guī)則對(duì)代碼塊统屈、表格胚吁、標(biāo)題也生效
參數(shù):
"line_length":指定行的最大長(zhǎng)度,默認(rèn)是80
"heading_line_length":指定標(biāo)題行的最大長(zhǎng)度愁憔,默認(rèn)是80
"code_blocks":指定規(guī)則是否(true or false)對(duì)代碼塊生效腕扶,默認(rèn)true
"tables":指定規(guī)則是否(true or false)對(duì)表格生效,默認(rèn)true
"hesdings":指定規(guī)則是否(true or false)對(duì)標(biāo)題生效吨掌,默認(rèn)true
MD014 - Dollar signs used before commands without showing output
在代碼塊中蕉毯,終端命令前不需要有美元符號(hào)($)
如果代碼塊中既有終端命令,也有命令的輸出思犁,則終端命令前可以有美元符號(hào)($),如:
$ ls
foo bar
$ cat foo
hello world
MD018 - No space after hash on atx style heading
在"atx"格式的標(biāo)題中进肯,#號(hào)和文字間需用一個(gè)空格隔開(kāi)
MD019 - Multiple spaces after hash on atx style heading
在"atx"格式的標(biāo)題中激蹲,#號(hào)和文字間只能用一個(gè)空格隔開(kāi),不能有多余的空格
MD020 - No space inside hashes on closed atx style heading
在"closed_atx"格式的標(biāo)題中江掩,文字和前后的#號(hào)之間需用一個(gè)空格隔開(kāi)
MD021 - Multiple spaces inside hashes on closed atx style heading
在"closed_atx"格式的標(biāo)題中学辱,文字和前后的#號(hào)之間只能用一個(gè)空格隔開(kāi),不能有多余的空格
MD022 - Headings should be surrounded by blank lines
標(biāo)題行的上下行必須都是空行
參數(shù):
"lines_above":指定標(biāo)題行上方的空行數(shù)环形,默認(rèn)為1策泣,可以設(shè)為更大或0
"lines_below":指定標(biāo)題行下方的空行數(shù),默認(rèn)為1抬吟,可以設(shè)為更大或0
注意當(dāng)此處的空行設(shè)為比1大的數(shù)時(shí)萨咕,規(guī)則MD012的設(shè)置也要改
MD023 - Headings must start at the beginning of the line
標(biāo)題行不能縮進(jìn)
MD024 - Multiple headings with the same content
文檔不能有內(nèi)容重復(fù)的標(biāo)題
參數(shù):
"siblings_only":默認(rèn)為false,設(shè)為true時(shí)火本,不同標(biāo)題下的子標(biāo)題內(nèi)容可以重復(fù)
MD025 - Multiple top level headings in the same document
同一文檔只能有一個(gè)最高級(jí)的標(biāo)題危队,默認(rèn)是只能有一個(gè)1級(jí)標(biāo)題
參數(shù):
"level":指定文檔最高級(jí)的標(biāo)題聪建,默認(rèn)是1
"front_matter_title":字符串,指定在文檔開(kāi)頭處的front matter中的標(biāo)題茫陆,這個(gè)標(biāo)題將作為整篇文檔的最高級(jí)標(biāo)題金麸,如果文檔中再次出現(xiàn)最高級(jí)標(biāo)題,將會(huì)給出警告簿盅,另外挥下,如果不想在front matter中指定標(biāo)題,就把本參數(shù)的值設(shè)置為""
MD026 - Trailing punctuation in heading
標(biāo)題行末尾不能有以下標(biāo)點(diǎn)符號(hào):".,;:!?"
參數(shù):
"punctuation":字符串桨醋,指定標(biāo)題行尾不能有的標(biāo)點(diǎn)符號(hào)棚瘟,默認(rèn)是".,;:!?"
此規(guī)則默認(rèn)的是英文的標(biāo)點(diǎn)符號(hào),中文標(biāo)點(diǎn)符號(hào)不在規(guī)則之內(nèi)
MD027 - Multiple spaces after blockquote symbol
創(chuàng)建引用區(qū)塊時(shí)讨盒,右尖括號(hào) ( > ) 和文字之間有且只能有一個(gè)空格
MD028 - Blank line inside blockquote
兩個(gè)引用區(qū)塊間不能僅用一個(gè)空行隔開(kāi)或者同一引用區(qū)塊中不能有空行解取,如果一行中沒(méi)有內(nèi)容,則這一行要用>開(kāi)頭
MD029 - Ordered list item prefix
有序列表的前綴序號(hào)格式必須只用1或者從1開(kāi)始的加1遞增數(shù)字("one_or_ordered")
參數(shù):
"style":字符串返顺,指定前綴序號(hào)的格式禀苦,("one","ordered","one_or_ordered","zero"),分別表示只用1做前綴遂鹊,用從1開(kāi)始的加1遞增數(shù)字做前綴振乏,只用1或者從1開(kāi)始的加1遞增數(shù)字做前綴,只用0做前綴秉扑,默認(rèn)值是"one_or_ordered"
本條規(guī)則支持在前綴序號(hào)中補(bǔ)0慧邮,以實(shí)現(xiàn)對(duì)齊,如:
...
08. one
09. two
10. three
...
MD030 - Spaces after list markers
列表(有序舟陆、無(wú)序)的前綴符號(hào)和文字之間用1個(gè)空格隔開(kāi)
在列表嵌套或者同一列表項(xiàng)中有多個(gè)段落時(shí)误澳,無(wú)序列表縮進(jìn)兩個(gè)空格,有序列表縮進(jìn)3個(gè)空格
參數(shù):
"ul_single","ol_single","ul_multi","ol_multi":分別規(guī)定無(wú)序列表單個(gè)段落秦躯,有序列表單個(gè)段落忆谓,無(wú)序列表多個(gè)段落,有序列表多個(gè)段落的前綴符號(hào)和文字之間的空格數(shù)踱承,默認(rèn)是1
MD031 - Fenced code blocks should be surrounded by blank lines
單獨(dú)的代碼塊前后需要用空行隔開(kāi)(除非是在文檔開(kāi)頭或末尾)倡缠,否則有些解釋器不會(huì)解釋為代碼塊
MD032 - Lists should be surrounded by blank lines
列表(有序、無(wú)序)前后需要用空行隔開(kāi)茎活,否則有些解釋器不會(huì)解釋為列表
列表的縮進(jìn)必須一致昙沦,否則會(huì)警告
MD033 - Inline HTML
文檔中不允許使用HTML語(yǔ)句
參數(shù):
"allowed_elements":自定義允許的元素,是一個(gè)字符串?dāng)?shù)組载荔,默認(rèn)是空(empty)
MD034 - Bare URL used
單純的鏈接地址需要用尖括號(hào) (<>) 包裹盾饮,否則有些解釋器不會(huì)解釋為鏈接
MD035 - Horizontal rule style
創(chuàng)建水平線(xiàn)時(shí)整篇文檔要統(tǒng)一(consistent),要和文檔中第一次創(chuàng)建水平線(xiàn)使用的符號(hào)一致
參數(shù):
"style":字符串,指定創(chuàng)建水平線(xiàn)的方式丐谋,值有:("consistent","***","---","___")芍碧,默認(rèn)是"consistent"
MD036 - Emphasis used instead of a heading
不能用強(qiáng)調(diào)代替標(biāo)題
參數(shù):
"punctuation":字符串,指定用于結(jié)尾的標(biāo)點(diǎn)符號(hào)号俐,以此符號(hào)結(jié)尾的強(qiáng)調(diào)不會(huì)被視為以強(qiáng)調(diào)代替標(biāo)題泌豆,默認(rèn)值是".,;:!?"
此規(guī)則會(huì)檢查只包含強(qiáng)調(diào)的單行段落,如果這種段落不是以指定的標(biāo)點(diǎn)符號(hào)結(jié)尾吏饿,則會(huì)被視為以強(qiáng)調(diào)代替標(biāo)題踪危,會(huì)給出警告
MD037 - Spaces inside emphasis markers
用于創(chuàng)建強(qiáng)調(diào)的符號(hào)和強(qiáng)調(diào)的的文字之間不能有空格
MD038 - Spaces inside code span elements
當(dāng)用單反引號(hào)創(chuàng)建代碼段的時(shí)候,單反引號(hào)和它們之間的代碼不能有空格
如果要把單反引號(hào)嵌入到代碼段的首尾猪落,創(chuàng)建代碼段的單反引號(hào)和嵌入的單反引號(hào)間要有一個(gè)空格隔開(kāi)
MD039 - Spaces inside link text
鏈接名和包圍它的中括號(hào)之間不能有空格贞远,但鏈接名中間可以有空格,如:
[百 度](http://www.baidu.com "百 度")
MD040 - Fenced code blocks should have a language specified
單獨(dú)的代碼塊(此處是指上下用三個(gè)反引號(hào)包圍的代碼塊)應(yīng)該指定代碼塊的編程語(yǔ)言笨忌,這一點(diǎn)有助于解釋器對(duì)代碼進(jìn)行代碼高亮
MD041 - First line in file should be a top level heading
文檔的第一個(gè)非空行應(yīng)該是文檔最高級(jí)的標(biāo)題蓝仲,默認(rèn)是1級(jí)標(biāo)題
參數(shù):
"level":指定文檔最高級(jí)的標(biāo)題,默認(rèn)是1
"front_matter_title":字符串官疲,指定在文檔開(kāi)頭處的front matter中的標(biāo)題袱结,這個(gè)標(biāo)題將作為整篇文檔的最高級(jí)標(biāo)題,另外途凫,如果不想在front matter中指定標(biāo)題垢夹,就把本參數(shù)的值設(shè)置為""
MD042 - No empty links
鏈接的地址不能為空
MD043 - Required heading structure
要求標(biāo)題遵循一定的結(jié)構(gòu),默認(rèn)是沒(méi)有規(guī)定的結(jié)構(gòu)("null")
參數(shù):
"headings":字符串?dāng)?shù)組维费,指定標(biāo)題需要遵循的結(jié)構(gòu)果元,默認(rèn)是"null",可以自行指定結(jié)構(gòu)犀盟,如而晒;
[
"# head",
"## item",
"### detail",
"*"
]
星號(hào)(*)表示對(duì)應(yīng)的標(biāo)題是可選的,沒(méi)有強(qiáng)制要求阅畴,本條具體可以參照MD043
MD044 - Proper names should have the correct capitalization
指定一些名稱(chēng)倡怎,會(huì)檢查它是否有正確的大寫(xiě)
參數(shù):
"names":字符串?dāng)?shù)組,指定要檢查需要大寫(xiě)的名稱(chēng)恶阴,默認(rèn)是空("null")
"code_blocks":指定本規(guī)則是否(true or false)對(duì)代碼塊生效,默認(rèn)是true
一些經(jīng)常使用的名稱(chēng)可以使用本規(guī)則防止其拼寫(xiě)錯(cuò)誤豹障,比如JavaScript中字母J和S需要大寫(xiě)冯事,就可以寫(xiě)到參數(shù)"names"中,防止寫(xiě)錯(cuò)
MD045 - Images should have alternate text (alt text)
圖片鏈接必須包含描述文本(alt text)
MD046 - Code block style
整篇文檔采用一致的代碼格式
參數(shù):
"style": 字符串血公,指定代碼塊定義格式昵仅,有("consistent","fenced","indented")三種,分別代表:文檔上下文一致,使用三個(gè)反引號(hào)隔開(kāi)摔笤,使用縮進(jìn)够滑,默認(rèn)是上下文一致
MD047 - Files should end with a single newline character
文檔需用一個(gè)空行結(jié)尾