markdownlint 规则介绍

规则

本文档包含所有规则的描述,它们要检查的内容以及违反规则的文档示例和示例的更正版本。标题为击中 已弃用,但仍提供向后兼容性。

MD001-标题级别一次只能增加一个级别

标签:标题,标题

别名:标题增加,标题增加

当您跳过markdown文档中的标题级别时,将触发此规则,例如:

# 标题1

### 标题3

我们跳过了本文档中的第二级标题

使用多个标题级别时,嵌套标题一次只能增加一个级别:

# 标题1

## 标题2

### 标题3

#### 标题4

## 另一个标题2

### 另一个标题3

原理:标题表示文档的结构,并且在跳过时可能会造成混淆-特别是对于可访问性方案。更多信息:https : //www.w3.org/WAI/tutorials/page-structure/headings/。

MD002-第一个标题应该是顶层标题

标签:标题,标题

别名:first-heading-h1,first-header-h1

参数:级别(数字;默认值1)

注意:MD002已被弃用,默认情况下处于禁用状态。 MD041 /第一行标题提供了改进的实现。

此规则旨在确保文档标题从顶层开始,并在文档的第一个标题不是h1标题时触发:

## 这不是H1标题

### 另一个标题

文档中的第一个标题应为h1标题:

# 从H1标题开始

## 然后将H2用于小节

注意:level在外部添加h1的情况下,该参数可用于更改顶层(例如:更改为h2)。

理由:顶级标题通常充当文档的标题。更多信息:https : //cirosantilli.com/markdown-style-guide#top-level-header。

MD003-标题样式

标签:标题,标题

别名:标题样式,标题样式

参数:样式(“ consistent”,“ atx”,“ atx_closed”,“ setext”,“ setext_with_atx”,“ setext_with_atx_closed”;默认为“ consistent”)

在同一文档中使用不同的标题样式(atx,setext和“ closed” atx)时,将触发此规则:

#  ATX风格H1

## 封闭的ATX样式H2 ##

Setext样式H1
===============

与文档中使用的标题样式保持一致:

#  ATX风格H1

##  ATX风格H2

setext_with_atx和setext_with_atx_closed文档样式允许具有setext样式标题的文档中级别为3或更高的atx样式标题:

Setext样式H1
===============

Setext样式H2
---------------

###  ATX风格H3

注意:配置的标题样式可以是要使用的特定样式(atx,atx_closed,setext,setext_with_atx,setext_with_atx_closed),或者只是要求用法在文档中保持一致。

基本原理:一致的格式设置使文档理解更加容易。

MD004-无序列表样式

标签:子弹,ul

别名:ul-style

参数:样式(“一致”,“星号”,“加号”,“破折号”,“子列表”;默认为“一致”)

当文档中用于无序列表项的符号与配置的无序列表样式不匹配时,将触发此规则:

*项目1
 +项目2
 -项目3

要解决此问题,请为整个文档中的列表项使用配置的样式:

*项目1
 *项目2
 *项目3

配置的列表样式可以是要使用的特定符号(星号,加号,破折号),可以要求文档中的用法必须一致,或者可以要求每个子列表具有与其父列表不同的一致符号。

例如,以下内容对于sublist样式有效,因为最外面的缩进使用星号,中间的缩进使用加号,而最里面的缩进使用破折号:

*项目1
   +项目2
     -项目3
   +项目4
 *项目4
   + 5项

基本原理:一致的格式设置使文档理解更加容易。

MD005-同一级别的列表项缩进不一致

标签:项目符号,ul,缩进

别名:列表缩进

可修复:大多数违规行为可以通过工具修复

当列表项被解析为相同级别但没有相同的缩进时,将触发此规则:

*项目1
   *嵌套项目1
   *嵌套项目2
    *未对齐的项目

通常,此规则会因输入错误而触发。更正列表的缩进以解决该问题:

*项目1
   *嵌套项目1
   *嵌套项目2
   *嵌套项目3

顺序排列的列表标记通常左对齐,以使所有项目都具有相同的起始列:

...
 8.项目
 9.项目
 10.项目
 11.项目
...

此规则还支持列表标记的右对齐,以使所有项目都具有相同的结束列:

...
  8.项目
  9.项目
 10.项目
 11.项目
...

理由:违反此规则可能会导致内容渲染不正确。

MD006-考虑在行的开头开始项目符号列表

标签:项目符号,ul,缩进

别名:ul-start-left

可修复:大多数违规行为可以通过工具修复

当顶级列表不在行首时触发此规则:

一些文字

  *清单项目
   *清单项目

要解决此问题,请确保不缩进顶层列表项:

一些测试

*清单项目
 *清单项目

注意:在以下情况下会触发此规则,因为解析器无法识别无序子列表。没有按照外部有序列表的要求嵌套3个字符,而是创建了一个顶级无序列表。

1.清单项目
   -清单项目
   -清单项目
 1.清单项目

原理:从行首开始列出列表意味着,当使用编辑器的缩进功能或Tab键进行缩进时,嵌套列表项都可以缩进相同的数量。在列表中以1个空格开头表示第一个嵌套列表的缩进小于第二个级别的缩进(如果使用4个空格键,则为3个字符;如果使用2个空格键,则为1个字符)。

MD007-无序列表缩进

标签:项目符号,ul,缩进

别名:ul-indent

参数:indent,start_indented(数字;默认为2,布尔值;默认为false)

可修复:大多数违规行为可以通过工具修复

如果列表项未缩进配置的空格数(默认值:2),则会触发此规则。

例:

*列表项
    *嵌套列表项缩进3个空格

更正的示例:

*列表项
   *嵌套列表项缩进2个空格

注意:仅当子列表的父列表也都是无序的时,此规则才适用于子列表(否则,有序列表的额外缩进会干扰该规则)。

start_indented参数允许列表的第一级缩进配置的空格数,而不是从零开始(MD006的倒数)。

原理:缩进2个空格可以使嵌套列表的内容与父列表内容的开头在列表标记后使用单个空格时保持一致。缩进4个空格与代码块一致,并且使编辑者更容易实现。此外,这对于需要4位缩进的多重markdown解析器可能是一个兼容性问题。更多信息:https : //cirosantilli.com/markdown-style-guide#indentation-of-content-inside-lists 和http://support.markedapp.com/discussions/problems/21-sub-lists-not-indenting。

MD009-尾随空格

标签:空白

别名:无尾迹空间

参数:br_spaces,list_item_empty_lines,严格(数字;默认值为2,布尔值;默认为false,布尔值;默认值为false)

可修复:大多数违规行为可以通过工具修复

在以意外空格结尾的任何行上都会触发此规则。要解决此问题,请从行尾删除尾随空格。

br_spaces参数允许例外的尾随空格的具体数目,通常用来插入一个明确的换行符。默认值允许2个空格指示硬中断(
元素)。

注意:必须br_spaces将此参数设置为> = 2才能生效。设置br_spaces为1的行为与0相同,不允许任何尾随空格。

默认情况下,即使使用了允许的空格数,该规则也不会触发,即使它不会造成硬中断(例如,在段落的结尾)。要同时报告此类实例,请将strict参数设置为true

文字文字文字
文字[2个空格]

通常不需要使用空格来缩进列表项内的空白行,但是某些解析器需要这样做。将list_item_empty_lines参数设置true 为允许此操作(即使stricttrue):

-清单项目文字
  [2个空格]
  清单项目文字

基本原理:除非用于创建换行符,否则尾随空格没有任何用途,并且不会影响内容的呈现。

MD010-硬标签

标签:空格,hard_tab

别名:无困难

参数:code_blocks(布尔值;默认为true)

可修复:大多数违规行为可以通过工具修复

该规则由包含硬制表符而不是使用空格缩进的任何行触发。要解决此问题,请用空格替换所有硬标签字符。

例:

一些文字

    *用于缩进列表项的硬制表符

更正的示例:

一些文字

    *用于缩进列表项的空格

您可以选择针对代码块排除此规则。为此,请将code_blocks参数设置 为false。默认情况下包括代码块,因为工具对制表符的处理通常是不一致的(例如:使用4个空格对8个空格)。

原理:硬标签通常由不同的编辑器不一致地显示,并且比空格更难使用。

MD011-反向链接语法

标签:链接

别名:无反向链接

可修复:大多数违规行为可以通过工具修复

当遇到看似链接的文本,但语法似乎已经颠倒([]()颠倒了)时,将触发此规则:

(错误的链接语法)[https://www.example.com/]

要解决此问题,请交换[]()

[ 正确的链接语法 ](https://www.example.com/)

注意:Markdown Extra样式的脚注不会触发此规则:

对于(例如)[^ 1]

理由:反向链接不呈现为可用链接。

MD012-多个连续的空白行

标签:空格,blank_lines

别名:无多个空白

参数:最大值(数字;默认值1)

可修复:大多数违规行为可以通过工具修复

当文档中有多个连续的空白行时,将触发此规则:

一些文字在这里

一些更多的文字在这里

要解决此问题,请删除有问题的行:

一些文字在这里

一些更多的文字在这里

注意:如果代码块中有多个连续的空白行,则不会触发此规则。

注意:该maximum参数可用于配置连续空白行的最大数量。

基本原理:除代码块外,空行没有任何作用,也不影响内容的呈现。

MD013-线长

标签:line_length

别名:行长

参数:line_length,heading_line_length,code_block_line_length,code_blocks,表,标题,标头,strict,stern(数字; * _ length,布尔值默认为80;默认为true(strict / stern除外,默认为false))

如果headings未提供,headers将使用(不推荐使用)。

当行数超过配置的行line_length(默认值:80个字符)时,将触发此规则。要解决此问题,请将行分成多行。要为标题设置不同的最大长度,请使用 heading_line_length。要为代码块设置不同的最大长度,请使用 code_block_line_length

当没有超出配置的行长的空白时,此规则将是一个例外。这样一来,您仍然可以包含长网址之类的项目,而不会被迫在中间将其破坏。要禁用此异常,请将strict参数设置为 true在任何行太长时报告问题。要警告行太长且可以修复但允许行不带空格的行,请将stern参数设置为true

例如(假设正常行为):

如果这条线是最大长度
这行是可以的,因为超出该长度没有空格
这行是违反的,因为有
这行也可以,因为那里没有空格

strictstern模式下,上面的两条中间线是冲突。第三行是strict模式中的违规,但在stern模式中是允许的。

您可以选择针对代码块,表或标题排除此规则。要做到这一点,设置code_blockstablesheadings参数(S)为false。

默认情况下,此规则中包括代码块,因为它通常是文档可读性的要求,并且暂时与代码规则兼容。尽管如此,某些语言还是不适合短线。

基本原理:在某些编辑器中,很难排长行。更多信息:https : //cirosantilli.com/markdown-style-guide#line-wrapping。

MD014-命令前使用美元符号而不显示输出

标签:代码

别名:commands-show-output

可修复:大多数违规行为可以通过工具修复

当有代码块显示要键入的shell命令并且所有 shell命令前面都带有美元符号($)时,将触发此规则:

$ ls
$ cat foo
$少吧

在这种情况下,美元符号是不必要的,因此不应包括在内:

ls
猫富
少吧

在带有美元符号的命令前显示输出不会触发此规则:

$ ls
富吧
$ cat foo
你好,世界
$猫吧
巴兹

由于某些命令不会产生输出,因此如果某些 命令没有输出,则不会违反:

$ mkdir测试
mkdir:创建目录“ test”
$ ls测试

基本原理:如果不需要时省略美元符号,则复制/粘贴起来会更容易,并且噪音也更少。有关 更多信息,请参见 https://cirosantilli.com/markdown-style-guide#dollar-signs-in-shell-code。

MD018-atx样式标题上的散列后没有空格

标签:标题,标题,atx,空格

别名:无遗失空间atx

可修复:大多数违规行为可以通过工具修复

当atx样式标题中的井号字符后缺少空格时,将触发此规则:

#标题1

##标题2

要解决此问题,请将标题文本与井号字符分开一个空格:

# 标题1

## 标题2

理由:违反此规则可能会导致内容渲染不正确。

MD019-atx样式标题上的散列后有多个空格

标签:标题,标题,atx,空格

别名:no-multiple-space-atx

可修复:大多数违规行为可以通过工具修复

当在atx样式标题中使用多个空格将标题文本与哈希字符分开时,将触发此规则:

#  标题1

##  标题2

要解决此问题,请将标题文本与井号字符分开一个空格:

# 标题1

## 标题2

理由:多余的空间没有目的,并且不会影响内容的呈现。

MD020-封闭的atx样式标题上的哈希内无空格

标签:标题,标题,atx_closed,空格

别名:无缺失的封闭式atx

可修复:大多数违规行为可以通过工具修复

当封闭的atx样式标题中的哈希字符内缺少空格时,将触发此规则:

#标题1#

##标题2 ##

要解决此问题,请将标题文本与井号字符分开一个空格:

# 标题1#

## 标题2 ##

注意:如果标题的任一侧缺少空格,则将触发此规则。

理由:违反此规则可能会导致内容渲染不正确。

MD021-封闭的atx样式标题上的哈希内有多个空格

标签:标题,标题,atx_closed,空格

别名:no-multiple-spaces-closed-atx

可修复:大多数违规行为可以通过工具修复

当在封闭的atx样式标题中使用多个空格将标题文本与哈希字符分开时,将触发此规则:

#  标题1#

##  标题2 ##

要解决此问题,请将标题文本与井号字符分开一个空格:

# 标题1#

## 标题2 ##

注意:如果标题的任一侧包含多个空格,则将触发此规则。

理由:多余的空间没有目的,并且不会影响内容的呈现。

MD022-标题应用空白行包围

标签:标题,标题,blank_lines

别名:标题周围为空白,标题周围为空白

参数:lines_above,lines_below(数字;默认值为1)

可修复:大多数违规行为可以通过工具修复

当标题(任何样式)不位于开头或后面没有至少一个空白行时,将触发此规则:

# 标题1
一些文字

一些文字
## 标题2

要解决此问题,请确保所有标题之前和之后均带有空白行(除非标题位于文档的开头或结尾):

# 标题1

一些文字

一些文字

## 标题2

lines_abovelines_below参数可用于指定不同数量的空白行每个标题的上方或下方(包括0)。

注意:如果将lines_abovelines_below配置为需要多个空白行,则还应自定义MD012 /无多个空白。

基本原理:除了美学原因外,包括kramdown在内的某些解析器也不会解析以前没有空行的标题,而是将其解析为常规文本。

MD023-标题必须从行首开始

标签:标题,标题,空格

别名:heading-start-left,header-start-left

可修复:大多数违规行为可以通过工具修复

当标题缩进一个或多个空格时,将触发此规则:

一些文字

  #缩进标题

要解决此问题,请确保所有标题均始于该行的开头:

一些文字

# 标题

原理:不在行首的标题将不会被解析为标题,而是显示为常规文本。

MD024-具有相同内容的多个标题

标签:标题,标题

别名:无重复标题,无重复标题

参数:siblings_only,allow_different_nesting(布尔值;默认值false

如果文档中具有相同文本的多个标题将触发此规则:

# 一些文字

## 一些文字

要解决此问题,请确保每个标题的内容都不同:

# 一些文字

## 更多文字

如果将参数siblings_only(或者allow_different_nesting)设置为true,则允许对非同级标题进行标题重复(在更改日志中很常见):

# 更改日志

##  1.0.0

### 功能

##  2.0.0

### 功能

理由:某些markdown解析器会根据标题名称为标题生成锚点;具有相同内容的标题可能会引起问题。

MD025-同一文档中的多个顶级标题

标签:标题,标题

别名:单标题,单H1

参数:level,front_matter_title(数字;默认值1,字符串;默认值“ ^ \ s * title:”)

当使用顶层标题(文件的第一行是h1标题)并且文档中使用了多个h1标题时,将触发此规则:

# 顶级标题

# 另一个顶层标题

要修复,请对文档进行结构化,以便有一个h1标题作为该文档的标题,而所有以后的标题均为h2或更低级别的标题:

# 标题

## 标题

## 另一个标题

注意:level在外部添加h1的情况下,该参数可用于更改顶层(例如:更改为h2)。

如果存在YAML前件并包含一个title属性(通常与博客文章一起使用),则此规则将其视为顶层标题,并会报告对任何后续顶层标题的违规。要在最前面使用其他属性名称,请通过front_matter_title参数指定正则表达式的文本。要禁用此规则使用前的事情,指定""front_matter_title

原理:顶级标题是文件第一行中的h1,并用作文档的标题。如果使用此约定,则文档的标题不能超过一个,并且整个文档都应包含在此标题中。

MD026-标题中的标点符号

标签:标题,标题

别名:无拖尾标点

参数:标点符号(字符串;默认为“。,;:!?。,;;:!?”)

可修复:大多数违规行为可以通过工具修复

在具有指定的标准或全角标点字符之一作为行中最后一个字符的任何标题上触发此规则:

# 这是一个标题。

要解决此问题,请删除结尾的标点符号:

# 这是一个标题

注意:该punctuation参数可用于指定在标题末尾算作标​​点符号的字符。例如,您可以将其更改 ".,;:!"为允许以问号结尾的标题,例如FAQ。将punctuation参数设置为""允许所有字符-等同于禁用规则。

理由:标题并非完整的句子。更多信息:https : //cirosantilli.com/markdown-style-guide#punctuation-at-the-end-of-headers

MD027-块引用符号后的多个空格

标签:blockquote,空格,缩进

别名:no-multiple-space-blockquote

可修复:大多数违规行为可以通过工具修复

当blockquote(>)符号后有多个空格时,将触发此规则:

>   这是缩进不好的块式报价
>   应该只能有一个。

要解决此问题,请删除所有多余的空间:

>这是带有正确
>缩进的blockquote 。

基本原理:一致的格式设置使文档理解更加容易。

MD028-引用内的空白行

标签:blockquote,空格

别名:无空格的引用

可修复:大多数违规行为可以通过工具修复

当两个blockquote块之间用空行隔开时,将触发此规则:

>这是一个引号
>,后面紧跟着

>此blockquote。不幸的是
>在某些解析器中,这些解析器被视为相同的blockquote。

要解决此问题,请确保彼此相邻的所有块引用之间都包含一些文本:

>这是一个大引用。

吉米也说:

>这也是blockquote。

或者,如果应该使用相同的引号,则在空白行的开头添加blockquote符号:

>这是一个大引用。
> 
>这是相同的块引用。

原理:某些markdown解析器会将两个由一个或多个空行分隔的块引用视为同一块引用,而其他一些则将它们视为单独的块引用。

MD029-有序列表项的前缀

标签:ol

别名:ol-prefix

参数:样式(“一个”,“有序”,“一个或一个有序”,“零”;默认为“一个或一个有序”)

对于不以“ 1”开头的有序列表,将触发此规则。或没有以数字顺序增加的前缀(取决于配置的样式)。使用“ 0”的较少见的模式。也支持作为第一个前缀或所有前缀。

有效样式示例(如果样式配置为“一个”):

1.这样做。
1.这样做。
1.完成。

如果样式配置为“有序”,则为有效列表的示例:

1.这样做。
2.这样做。
3.完成。
0。
1.这样做。
2.完成。

当样式配置为“ one_or_ordered”时,所有这三个示例均有效。

有效样式示例(如果样式配置为“零”):

0。
0。
0.完成。

所有样式的无效列表示例:

1.这样做。
3.完成。

此规则支持前缀为0的有序列表项以统一缩进:

...
 08.项目
 09.项目
 10.项目
 11.项目
...

注意:对于以下情况,此规则将报告违规情况,其中在两个列表项之间出现缩进的代码块(或类似的代码块),并在其中“破坏”两个列表:

1.第一名单

文字
代码块

1.第二清单


解决方法是缩进代码块,使其按预期成为前面的列表项的一部分:

```source-gfm
1.第一名单

   文字
   代码块

2.仍然是第一名


基本原理:一致的格式设置使文档理解更加容易。

## [](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md#md030---spaces-after-list-markers)MD030-列表标记后的空格

标签:ol,ul,空格

别名:列表标记空间

参数:ul_single,ol_single,ul_multi,ol_multi(数字;默认值为1)

可修复:大多数违规行为可以通过工具修复

该规则检查列表标记(例如“ `-`”,“ `*`”,“ `+`”或“ `1.`”)与列表项文本之间的空格数。

检查的空格数取决于使用的文档样式,但是默认值为任何列表标记后的1个空格:

```source-gfm
* Foo
 *酒吧
 * Baz

1. Foo
 1. Bar
 1. Baz

1. Foo
    * Bar
 1. Baz

文档样式可以根据列表中每个项目的内容是由一个段落还是由多个段落(包括子列表和代码块)组成,分别更改无序列表项和有序列表项后的空格数)。

例如,https://cirosantilli.com/markdown-style-guide#spaces-after-list-marker上的样式指南 指定,如果列表中的每个项目都适合一个段落,则列表标记后应使用1个空格。 ,但如果列表中有多个内容段落,则使用2或3个空格(分别用于有序列表和无序列表):

* Foo
 *酒吧
 * Baz

*    富

    第二段

*    酒吧

要么

1.   Foo

    第二段

1.   酒吧

要解决此问题,请确保在列表标记之后为您选择的文档样式使用了正确的空格数。

理由:违反此规则可能会导致内容渲染不正确。

MD031-带栅栏的代码块应用空白行包围

标签:代码,blank_lines

别名:围栏周围的空白

参数:list_items(布尔值;默认为true)

可修复:大多数违规行为可以通过工具修复

当受防护的代码块之前或之后没有空行时,将触发此规则:

一些文本

代码块


另一个代码块

更多文本

要解决此问题,请确保所有受防护的代码块之前和之后均具有空白行(除非该块位于文档的开头或结尾):

一些文字

码块


的另一个代码块


一些文字

list_items参数设置false为禁用此列表项规则。如果有必要创建包含代码围栏的严格列表,则禁用列表的此行为可能很有用 。

基本原理:除了美学上的原因外,包括kramdown在内的某些解析器将不会解析前后没有空白行的受防护的代码块。

MD032-列表应由空行包围

标签:项目符号,ul,ol,blank_lines

别名:空白列表

可修复:大多数违规行为可以通过工具修复

当(任何种类的)列表不在空行之前或之后时,将触发此规则:

一些文本
 *一些
 *列表

1.一些
 2.清单
一些文字

要解决此问题,请确保所有列表的前后都有空白行(除非该块位于文档的开头或结尾):

一些文字

*一些
 *清单

1.一些
 2.清单

一些文字

基本原理:除了美学原因外,包括kramdown在内的某些解析器也不会解析列表前后没有空白行的列表。

MD033-内联HTML

标签:HTML

别名:no-inline-html

参数:allowed_elements(字符串数组;默认为空)

每当markdown文档中使用原始HTML时,都会触发此规则:

内联HTML标题

要解决此问题,请使用“纯”markdown,而不要包含原始HTML:

# markdown标题

注意:要允许特定的HTML元素,请使用'allowed_elements'参数。

基本原理:markdown允许使用原始HTML,但是对于那些希望其文档仅包含“纯” markdown的人或那些以HTML以外的方式呈现markdown文档的人来说,此规则也包括在内。

MD034-使用的裸URL

标签:链接,URL

别名:裸URL

可修复:大多数违规行为可以通过工具修复

只要给出的URL被尖括号包围,就会触发此规则:

有关更多信息,请参见https://www.example.com/。

要解决此问题,请在URL周围添加尖括号:

有关更多信息,请参见

注意:要使用裸URL而不将其转换为链接,请将其括在代码块中,否则在某些markdown解析器中将对其进行转换:

https://www.example.com

注:以下情形并不会触发此规则,以避免冲突MD011/ no-reversed-links

[https://www.example.com]

在裸链接周围使用引号不会触发此规则,或者:

“ https://www.example.com”
'https://www.example.com'

基本原理:没有尖括号,许多Markdown解析器不会将URL转换为链接。

MD035-水平尺样式

标签:小时

别名:hr样式

参数:样式(“ consistent”,“ ---”,“ ***”或其他指定水平线的字符串;默认为“ consistent”)

当在文档中使用不一致样式的水平规则时,将触发此规则:

---

- - -

***

* * *

****

要解决此问题,请确保文档中使用的所有水平尺都一致,或者如果配置了此规则,则匹配给定样式:

---

---

注意:默认情况下,此规则配置为仅要求文档中的所有水平规则都相同,并且如果任何水平规则与文档中遇到的第一个不同,则将触发此规则。如果要配置规则以匹配特定样式,则给“样式”选项提供的参数是一个字符串,其中包含允许的确切水平规则文本。

基本原理:一致的格式设置使文档理解更加容易。

MD036-使用强调代替标题

标签:标题,标题,重点

别名:不强调标题,不强调标题

参数:标点符号(字符串;默认为“。,;:!?。,;;:!?”)

此检查查找使用强调(即,粗体或斜体)文本分隔各节的情况,而应使用标题代替:

**我的文件**

小学二年级奥数试题及答案小学奥数网...

_另一节_

Consectetur adipiscing精英,sed do eiusmod。

要解决此问题,请使用markdown标题而不是强调文本来表示部分:

# 我的文件

小学二年级奥数试题及答案小学奥数网...

## 另一部分

Consectetur adipiscing精英,sed do eiusmod。

注意:此规则将查找完全由强调文字组成的单行段落。它不会针对常规文本,强调多行的段落或以标点符号结尾的段落(普通或全角)使用。与规则MD026相似,您可以配置将哪些字符识别为标点符号。

原理:使用强调代替标题可以防止工具推断文档的结构。更多信息:https : //cirosantilli.com/markdown-style-guide#emphasis-vs-headers。

MD037-重点标记内的空格

标签:空格,重点

别名:强调中没有空格

可修复:大多数违规行为可以通过工具修复

使用强调标记(粗体,斜体)时会触发此规则,但是它们在标记和文本之间有空格:

这是一些**粗体**文本。

这是一些*斜体*文本。

这是____粗体字。

这是更多的_斜体_文本。

要解决此问题,请删除重点标记周围的空格:

这是一些“ 粗体”文本。

这是一些*斜体*文本。

这是更多的__bold__文本。

这是更多的_italic_文本。

基本原理:仅当星号/下划线未完全被空格包围时,才对强调进行分析。该规则试图检测它们被空格包围的位置,但是强调的文字似乎是作者想要的。

MD038-代码跨度元素内的空格

标签:空格,代码

别名:代码中无空格

可修复:大多数违规行为可以通过工具修复

对于与反引号相邻的空格的代码跨度元素,将触发此规则:

`一些文字`

`一些文字`

要解决此问题,请删除反引号附近的所有空格:

一些文字

注意:规范允许使用单个前导和尾随空格,并会自动对其进行修剪(以允许嵌入反引号):

```反引号`''

注意:如果用于将代码跨标记与嵌入式反引号分开,则允许使用单个前导或尾随空格:

``嵌入反引号''

理由:违反此规则可能会导致内容渲染不正确。

MD039-链接文本内的空格

标签:空格,链接

别名:链接中没有空格

可修复:大多数违规行为可以通过工具修复

在链接文本周围有空格的链接上触发此规则:

[ 链接 ](https://www.example.com/)

要解决此问题,请删除链接文本周围的空格:

[ 链接 ](https://www.example.com/)

基本原理:一致的格式设置使文档理解更加容易。

MD040-带围栏的代码块应指定一种语言

标签:代码,语言

别名:栅栏代码语言

使用受防护的代码块但未指定语言时触发此规则:

#!/ 斌/庆典
回声世界,你好

要解决此问题,请将语言说明符添加到代码块中:

``
#!/ bin / bash 
echo Hello world

基本原理:通过使用正确的代码语法高亮显示,指定一种语言可以改善内容呈现。更多信息:[https](https://cirosantilli.com/markdown-style-guide#option-code-fenced) : [//cirosantilli.com/markdown-style-guide#option-code-fenced](https://cirosantilli.com/markdown-style-guide#option-code-fenced)。

## [](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md#md041---first-line-in-file-should-be-a-top-level-heading)MD041-文件中的第一行应为顶层标题

标签:标题,标题

别名:first-line-heading,first-line-h1

参数:level,front_matter_title(数字;默认值1,字符串;默认值“ ^ \ s * title:”)

该规则旨在确保文档具有标题,并且在文件的第一行不是顶层(h1)标题时触发该规则:

```source-gfm
这是一个没有标题的文件

要解决此问题,请将顶级标题添加到文件的开头:

# 带有标题的文件

这是一个具有顶级标题的文件

注意: level在外部添加h1的情况下,参数可用于更改顶层(例如:更改为h2)。

如果存在YAML前件并包含一个 title属性(通常用于博客文章),则此规则不会报告违规。要在最前面使用其他属性名称,请通过front_matter_title参数指定正则表达式的文本。要禁用此规则使用前的事情,指定""front_matter_title

理由:顶级标题通常充当文档的标题。更多信息:https : //cirosantilli.com/markdown-style-guide#top-level-header。

MD042-无空链接

标签:链接

别名:无空链接

遇到空链接时将触发此规则:

[一个空链接]()

要解决违规问题,请为链接提供目标位置:

[ 有效链接 ](https://example.com/)

空片段将触发以下规则:

[ 一个空片段 ](#)

但是非空片段不会:

[ 有效片段 ](#fragment)

原理:空链接不会指向任何地方,因此不能用作链接。

MD043-所需的标题结构

标签:标题,标题

别名:必填标题,必填标题

参数:标题,标题(字符串数组;默认null为禁用)

如果headings未提供,headers将使用(不推荐使用)。

当文件中的标题与传递给该规则的标题数组不匹配时,将触发此规则。它可用于对一组文件强制执行标准标题结构。

严格要求以下结构:

# 头
## 项目
### 详细

headings参数设置为:

[
     “#头”,
     “ ##项”,
     “ ###细节” 
]

允许具有以下结构的可选标题:

# 头
## 项目
### 详细信息(可选)
## 脚
### 注意(可选)

使用"*"含义为“一个或多个未指定标题” 的特殊值,并将headings参数设置为:

[
     “#Head ”,
     “ ## Item ”,
     “ * ”,
     “ ##脚”,
     “ * ” 
]

当检测到错误时,此规则将输出第一个有问题的标题的行号(否则,将输出文件的最后一个行号)。

请注意,尽管headings为简单起见,该参数使用“ ## Text” ATX标题样式,但文件可以使用任何受支持的标题样式。

理由:项目可能希望在一组相似的内容上实施一致的文档结构。

MD044-正确的名字应该有正确的大写

标签:拼写

别名:专有名称

参数:名称,code_blocks(字符串数组; default null,boolean; default true

可修复:大多数违规行为可以通过工具修复

names数组中的任何字符串不具有指定的大写字母时,将触发此规则。它可以用于对项目和产品的名称强制使用标准的大写字母。

例如,语言“ JavaScript”通常用大写的“ J”和“ S”书写,尽管有时“ s”或“ j”以小写字母出现。要强制使用大写字母,请在names数组中指定所需的字母大小写:

[
     “ JavaScript ” 
]

code_blocks参数设置false为禁用此规则的代码块。

理由:专有名称的大写错误通常是一个错误。

MD045-图片应具有替代文字(替代文字)

标签:辅助功能,图像

别名:无替代文本

当图像缺少备用文本(替代文本)信息时,将触发此规则。

备用文本通常在内联中指定为:

![ 替代文字 ](image.jpg)

或使用如下参考语法:

![ 替代文字 ] [ref]

...

[ ref ]:image.jpg“可选标题”

W3C, Wikipedia和 其他位置提供了编写替代文本的指南。

基本原理:替代文本对于可访问性很重要,并为可能看不到它的人们描述了图像的内容。

MD046-代码块样式

标签:代码

别名:代码块样式

参数:样式(“ consistent”,“ fenced”,“ indented”;默认为“ consistent”)

在同一文档中使用不需要或不同的代码块样式时,将触发此规则。

在默认配置中,此规则报告违反以下文档:

Some text.

    # Indented code

More text.

```ruby
# Fenced code

More text.


要解决违反此规则的问题,请使用一致的样式(缩进或代码围栏)。

指定的样式可以是特定的()`fenced`,也可以`indented`仅要求文档中的用法保持一致(`consistent`)。

基本原理:一致的格式设置使文档理解更加容易。

## [](https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md#md047---files-should-end-with-a-single-newline-character)MD047-文件应以单个换行符结尾

标签:blank_lines

别名:单行换行

可修复:大多数违规行为可以通过工具修复

当文件末尾没有单个换行符时,将触发此规则。

触发规则的示例:

```source-gfm
# 标题

该文件结尾没有换行符。[EOF]

要解决违规问题,请在文件末尾添加换行符:

# 标题

该文件以换行符结尾。
[EOF]

基本原理:某些程序对于未以换行符结尾的文件有麻烦。更多信息:https : //unix.stackexchange.com/questions/18743/whats-the-point-in-adding-a-new-line-to-the-end-of-a-file。

MD048-代码围栏样式

标签:代码

别名:栅栏样式

参数:样式(“ consistent”,“ tilde”,“ backtick”;默认为“ consistent”)

当文档中用于受防护代码块的符号与配置的代码防护样式不匹配时,将触发此规则:

红宝石
#围栏代码
#围栏代码

要解决此问题,请在整个文档中使用配置的代码围栏样式:

```source-gfm
红宝石
#围栏代码

红宝石
#围栏代码

配置的列表样式可以是要使用的特定符号(反引号,波浪号),也可以要求文档中的用法必须一致。

基本原理:一致的格式设置使文档理解更加容易。

你可能感兴趣的:(markdownlint 规则介绍)