Metrano 是一个负责处理 HTML 及 CSS 编写句子的 npm 包。该包主要用于检查 HTML 和 CSS 文本中潜在的语法错误,并提供建议来帮助程序员编写出更清晰、更易于维护的代码。
这篇文章将会介绍 Metrano 的使用,并提供一个小示例以供参考。
安装 Metrano
使用 npm 可以很容易地安装 Metrano:
npm install metrano --save-dev
配置 Metrano
对于大多数项目,你会希望 Metrano 在构建时运行,并根据需要进行适当的配置。你可以使用 JSON 配置文件来定义 Metrano 的行为,该文件通常位于项目根目录中的 .metrano 文件中。
下面是一个示例 .metrano 文件:
-- -------------------- ---- ------- - -------------------- ----- ----------------------- ----- ------------- --------- -------- -------- - ----------------- ------------ ---------------------- ----- ----------------------- ----- ---------------- ---------------------------------- -------------------- ----- ------------- -------------------------------- -------------- -- ---------------- ----------- - -
该文件指定了 Metrano 的规则和 eslint 以及 stylelint 集成,并指定了以 .html 和 .css 扩展名结尾的文件应该在 Metrano 的检查清单中。
运行 Metrano
一旦在项目中安装并配置了 Metrano,你就可以在你的构建脚本中添加命令来运行它。例如,如果你使用的是 npm,你的 package.json 文件可能包含一个脚本,如下所示:
{ "scripts": { "lint": "metrano **/*.{html,css}" } }
上述示例中,metrano 命令将会检查项目中的所有以 .html 和 .css 扩展名结尾的文件。
你可以根据需要更改文件或目录的模式。请参考 minimatch 文档以获取有关模式语法和选项的更多信息。
另外,你也可以将 Metrano 的标题排除在外,使它不会阻塞其他命令的运行。例如,如果你希望在运行 Metrano 后允许您执行测试,例如在 Travis CI 构建中,你可以在 package.json 文件中的 lint
脚本上使用 --quiet
标志:
{ "scripts": { "lint": "metrano --quiet **/*.{html,css}" } }
Metrano 规则
Metrano 附带了许多规则,每个规则都是针对特定类型的语法错误进行检查。以下是 Metrano 中的一些规则,以及它们是如何工作的:
attr-name-case
该规则检查 HTML 元素的属性名(例如,class 、 id 等)是否按规范小写,以确保代码的一致性和易读性。
attr-no-duplication
该规则确保 HTML 元素的属性名不重复,以避免出现潜在的逻辑错误。
class-no-duplication
和 id-no-duplication
与 attr-no-duplication
类似,这两个规则确保在 HTML 内部使用的 class 和 id 不重复。
class-pattern
和 id-pattern
这两个规则检查 HTML 元素的 class 和 id 命名模式是否按指定的模式命名。例如,为了保持一致性,你可能希望强制所有 class 名称都是小写,或者使用破折号分隔单词。
indentation
该规则确保 HTML 和 CSS 文件内的缩进符合指定的数量和样式,以保持代码的整洁和可读性。
tag-name-case
该规则检查 HTML 元素的标签名称是否按约定以小写字母书写。这一规则可以确保在不同文件、文档和语言之间使用标签名称时的一致性和可读性。
示例代码
以下是一个示例 HTML 和 CSS,以及存在错误的示例:
-- -------------------- ---- ------- --------- ----- ------ ------ ----- ---------------- ----------------- ----- ---------------- ------------------ ------- ----- ------------------ --- --------------------------- ---------------- ------- ------------------------------- ------- -------
-- -------------------- ---- ------- ---------- - -------- ----- ------- ---- ---- - ------ - ---------- ----- - ------------ - ----------------- ----- ------ ------ -
运行 Metrano 检测到的错误
运行 Metrano 后,将产生以下输出:
/src/index.html:7:10 lower attribute name required, found "class" (attr-name-case) /src/index.html:11:8 h2 is not a valid tag name (tag-name-case) /src/index.html:13:15 class name should follow styleguide pattern "^[a-z][a-z0-9]*(-[a-z0-9]+)*$", found "Btn-primary" (class-pattern) /src/index.html:13:15 duplicate class name "Btn-primary" found (class-no-duplication) /src/index.html:14:2 indentation of 4 spaces required, found 2 (indentation) /src/index.html:14:11 lower attribute name required, found "class" (attr-name-case) /style.css:3:3 indentation of 2 spaces required, found 4 (indentation) /style.css:6:3 lower case attribute name required, found "Btn-primary" (attr-name-case)
出现了 7 个错误:
- 第 7 行:要求小写属性名称,但是找到 "class"。
- 第 11 行:
<h2>
标签不是有效的标签名称,应该是<h1>
/<h2>
/<h3>
/<h4>
/<h5>
/<h6>
。 - 第 13 行:class 名称应遵循样式指南模式,找到 "Btn-primary"。
- 第 13 行:发现重复的 class 名称 "Btn-primary"。
- 第 14 行:需要缩进 4 个空格,但只有 2 个。
- 第 14 行:要求小写属性名称,但发现 "class"。
- 第 3 行:需要缩进 2 个空格,但发现 4 个。
- 第 6 行:要求小写属性名称,但发现 "Btn-primary"。
修复错误
将 HTML 文件修改为:
-- -------------------- ---- ------- --------- ----- ------ ------ ----- ---------------- ----------------- ----- ---------------- ------------------ ------- ----- ------------------ --- --------------------------- ---------------- ------- ------------------------------- ------- -------
并将 CSS 文件修改为:
-- -------------------- ---- ------- ---------- - -------- ----- ------- ---- ----- - ------ - ---------- ----- - ------------ - ----------------- ----- ------ ------ -
保存这些更改后,再次运行 Metrano 将会得到以下输出:
[32m✓[39m src/index.html [32m✓[39m src/style.css
该输出表明,在修复这些错误之后,Metrano 不再报告任何问题。
总结
Metrano 是一个有用的 npm 工具,它可以帮助你在编写 HTML 和 CSS 代码时检测潜在的语法错误,并提供有用的建议。通过使用 Metrano,你可以编写出更易于维护、更整洁的代码。
希望这篇文章能够对你了解 Metrano 的使用、配置和规则检测有所帮助,同时,也提供了一个示例项目,以供参考。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f451d8e776d08040ef0