markdownlint規則詳細介紹及自定義參數設置:
MD001 - Heading levels should only increment by one level at a time
標題級數每次只能擴大1, 也就是不能隔級創建標題(從1級到6級的順序)
MD002 - First heading should be a top level heading
文檔的第一個標題必須是最高級的標題(標題等級1級到6級逐漸降低)
參數:
"level":指定最高級標題的級數,默認是1
MD003 - Heading style
整篇文檔要采用一致的標題格式
參數:
"style":字符串,指定文檔標題的格式,有("consistent", "atx", "atx_closed", "setext", "setext_with_atx", "setext_with_atx_closed")五種,默認是"consistent",也就是整篇文檔一致
標題格式必須統一,一般不能混用,但"setext_with_atx", "setext_with_atx_closed"格式可以在"setext"格式二級標題后接着使用"atx"或"atx_closed"格式的標題
MD004 - Unordered list style
整篇文檔定義無序列表的格式要一致
參數:
"style":字符串,指定無序列表的定義格式,有("consistent", "asterisk", "plus", "dash", "sublist")五種,分別表示“定義時符號前后一致”,“用星號定義”,“用加號定義”,“用減號定義”,“定義多重列表時用不同的符號定義”,默認是"consistent"
MD005 - Inconsistent indentation for list items at the same level
同一級的列表縮進必須一致
在有序列表中,前面的數字序號可以左對齊,也可以右對齊
MD006 - Consider starting bulleted lists at the beginning of the line
1級列表不能縮進
MD007 - Unordered list indentation
無序列表嵌套縮進時默認采用兩個空格
參數:
"ident":指定無序列表嵌套時縮進的空格數,默認是2
MD009 - Trailing spaces
行尾最多可以添加兩個空格,超過會給出警告,兩個空格正好可以用於換行
參數:
"br_spaces":指定在行尾可以添加的空格數目,空格數目建議大於等於2,如果小於2,會默認為0,也就是不允許任何行尾的空格
"list_item_empty_lines":字符串,指定在列表中是否(true or false)用默認的空格數縮進空行,有的解釋器會要求列表中的空行要縮進
MD010 - Hard tabs
不能使用tab鍵縮進,要使用空格
參數:
"code_blocks":指定本條規則在代碼塊里是否(true or false)生效
MD011 - Reversed link syntax
檢查內聯形式的鏈接的創建方式是否錯誤,中括號和圓括號是否用對
MD012 - Multiple consecutive blank lines
文檔中不能有連續的空行,在代碼塊中此規則不會生效
參數:
"maximum":指定文檔中可以連續的最多空行數,默認值是1
MD013 - Line length
默認行的最大長度是80,此規則對代碼塊、表格、標題也生效
參數:
"line_length":指定行的最大長度,默認是80
"heading_line_length":指定標題行的最大長度,默認是80
"code_blocks":指定規則是否(true or false)對代碼塊生效,默認true
"tables":指定規則是否(true or false)對表格生效,默認true
"hesdings":指定規則是否(true or false)對標題生效,默認true
MD014 - Dollar signs used before commands without showing output
在代碼塊中,終端命令前不需要有美元符號 $
如果代碼塊中既有終端命令,也有命令的輸出,則終端命令前可以有美元符號($),如:
$ ls
foo bar
$ cat foo
hello world
MD019 - Multiple spaces after hash on atx style heading
在"atx"格式的標題中,#號和文字間只能用一個空格隔開,不能有多余的空格
MD020 - No space inside hashes on closed atx style heading
在"closed_atx"格式的標題中,文字和前后的#號之間需用一個空格隔開
MD021 - Multiple spaces inside hashes on closed atx style heading
在"closed_atx"格式的標題中,文字和前后的#號之間只能用一個空格隔開,不能有多余的空格
MD022 - Headings should be surrounded by blank lines
標題行的上下行必須都是空行
參數:
"lines_above":指定標題行上方的空行數,默認為1,可以設為更大或0
"lines_below":指定標題行下方的空行數,默認為1,可以設為更大或0
注意當此處的空行設為比1大的數時,規則MD012的設置也要改
MD023 - Headings must start at the beginning of the line
標題行不能縮進
MD024 - Multiple headings with the same content
文檔不能有內容重復的標題
參數:
"siblings_only":默認為false,設為true時,不同標題下的子標題內容可以重復
MD025 - Multiple top level headings in the same document
同一文檔只能有一個最高級的標題,默認是只能有一個1級標題
參數:
"level":指定文檔最高級的標題,默認是1
"front_matter_title":字符串,指定在文檔開頭處的front matter中的標題,這個標題將作為整篇文檔的最高級標題,如果文檔中再次出現最高級標題,將會給出警告,另外,如果不想在front matter中指定標題,就把本參數的值設置為""
MD026 - Trailing punctuation in heading
標題行末尾不能有以下標點符號:".,;:!?"
參數:
"punctuation":字符串,指定標題行尾不能有的標點符號,默認是".,;:!?"
此規則默認的是英文的標點符號,中文標點符號不在規則之內
MD027 - Multiple spaces after blockquote symbol
創建引用區塊時,右尖括號 ( > ) 和文字之間有且只能有一個空格
MD028 - Blank line inside blockquote
兩個引用區塊間不能僅用一個空行隔開或者同一引用區塊中不能有空行,如果一行中沒有內容,則這一行要用>開頭
MD029 - Ordered list item prefix
有序列表的前綴序號格式必須只用1或者從1開始的加1遞增數字("one_or_ordered")
參數:
"style":字符串,指定前綴序號的格式,("one","ordered","one_or_ordered","zero"),分別表示只用1做前綴,用從1開始的加1遞增數字做前綴,只用1或者從1開始的加1遞增數字做前綴,只用0做前綴,默認值是"one_or_ordered"
本條規則支持在前綴序號中補0,以實現對齊,如:
MD030 - Spaces after list markers
列表(有序、無序)的前綴符號和文字之間用1個空格隔開
在列表嵌套或者同一列表項中有多個段落時,無序列表縮進兩個空格,有序列表縮進3個空格
參數:
"ul_single","ol_single","ul_multi","ol_multi":分別規定無序列表單個段落,有序列表單個段落,無序列表多個段落,有序列表多個段落的前綴符號和文字之間的空格數,默認是1
MD031 - Fenced code blocks should be surrounded by blank lines
單獨的代碼塊前后需要用空行隔開(除非是在文檔開頭或末尾),否則有些解釋器不會解釋為代碼塊
MD032 - Lists should be surrounded by blank lines
列表(有序、無序)前后需要用空行隔開,否則有些解釋器不會解釋為列表
列表的縮進必須一致,否則會警告
MD033 - Inline HTML
文檔中不允許使用HTML語句
參數:
"allowed_elements":自定義允許的元素,是一個字符串數組,默認是空(empty)
MD034 - Bare URL used
單純的鏈接地址需要用尖括號 (<>) 包裹,否則有些解釋器不會解釋為鏈接
MD035 - Horizontal rule style
創建水平線時整篇文檔要統一(consistent),要和文檔中第一次創建水平線使用的符號一致
參數:
"style":字符串,指定創建水平線的方式,值有:("consistent","***","---","___"),默認是"consistent"
MD036 - Emphasis used instead of a heading
不能用強調代替標題
參數:
"punctuation":字符串,指定用於結尾的標點符號,以此符號結尾的強調不會被視為以強調代替標題,默認值是".,;:!?"
此規則會檢查只包含強調的單行段落,如果這種段落不是以指定的標點符號結尾,則會被視為以強調代替標題,會給出警告
MD037 - Spaces inside emphasis markers
用於創建強調的符號和強調的的文字之間不能有空格
MD038 - Spaces inside code span elements
當用單反引號創建代碼段的時候,單反引號和它們之間的代碼不能有空格
如果要把單反引號嵌入到代碼段的首尾,創建代碼段的單反引號和嵌入的單反引號間要有一個空格隔開
MD039 - Spaces inside link text
鏈接名和包圍它的中括號之間不能有空格,但鏈接名中間可以有空格,如:
[百 度]
(http://www.baidu.com "百 度")
MD040 - Fenced code blocks should have a language specified
單獨的代碼塊(此處是指上下用三個反引號包圍的代碼塊)應該指定代碼塊的編程語言,這一點有助於解釋器對代碼進行代碼高亮
MD041 - First line in file should be a top level heading
文檔的第一個非空行應該是文檔最高級的標題,默認是1級標題
參數:
"level":指定文檔最高級的標題,默認是1
"front_matter_title":字符串,指定在文檔開頭處的front matter中的標題,這個標題將作為整篇文檔的最高級標題,另外,如果不想在front matter中指定標題,就把本參數的值設置為""
MD042 - No empty links
鏈接的地址不能為空
MD043 - Required heading structure
要求標題遵循一定的結構,默認是沒有規定的結構("null")
參數:
"headings":字符串數組,指定標題需要遵循的結構,默認是"null",可以自行指定結構,如;
星號(*)表示對應的標題是可選的,沒有強制要求,本條具體可以參照MD043
MD044 - Proper names should have the correct capitalization
指定一些名稱,會檢查它是否有正確的大寫
參數:
"names":字符串數組,指定要檢查需要大寫的名稱,默認是空("null")
"code_blocks":指定本規則是否(true or false)對代碼塊生效,默認是true
一些經常使用的名稱可以使用本規則防止其拼寫錯誤,比如JavaScript中字母J和S需要大寫,就可以寫到參數"names"中,防止寫錯
MD045 - Images should have alternate text (alt text)
圖片鏈接必須包含描述文本(alt text)
MD046 - Code block style
整篇文檔采用一致的代碼格式
參數:
"style": 字符串,指定代碼塊定義格式,有("consistent","fenced","indented")三種,分別代表:文檔上下文一致,使用三個反引號隔開,使用縮進,默認是上下文一致
MD047 - Files should end with a single newline character
文檔需用一個空行結尾