Skip to content

Commit 397c994

Browse files
Added htmlacademy/space-between-comments
1 parent 3bb8bd0 commit 397c994

File tree

4 files changed

+45
-1
lines changed

4 files changed

+45
-1
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## 1.0.10
4+
Added [htmlacademy/space-between-comments](rules/space-between-comments/README.md)
5+
36
## 1.0.9
47
Fixed `req-charset-utf` rule
58

docs/list-of-rules.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Список правил от HTML Academy
22

33
| Имя правила | Описания |
4-
|:------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------|
4+
|-------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------|
55
| [htmlacademy/a-target-rel](../rules/a-target-rel/README.md) | Проверяет наличие `rel="noopener noreferrer"` у `<a target="_blank"></a>` |
66
| [htmlacademy/aria-label-misuse](../rules/aria-label-misuse/README.md) | Требует использование `aria-label` на определённых элементах |
77
| [htmlacademy/attr-delimiter](../rules/attr-delimiter/README.md) | Требует удалить пробел между `=` для атрибутов |
@@ -24,5 +24,6 @@
2424
| [htmlacademy/req-meta-viewport](../rules/req-meta-viewport/README.md) | Проверяет наличие `<meta name="viewport" content="width=device-width,initial-scale=1">` в `<head>` |
2525
| [htmlacademy/req-single-styles](../rules/req-single-styles/README.md) | Разрешает не более одного `link rel="stylesheet"` в `<head>` |
2626
| [htmlacademy/section-has-heading](../rules/section-has-heading/README.md) | Требует добавление заголовка любого уровня в `<section>` |
27+
| [htmlacademy/space-between-comments](../rules/space-between-comments/README.md) | Требует пробелы у комментария <!-- Это комментарий --> |
2728
| [htmlacademy/tag-name-lowercase](../rules/tag-name-lowercase/README.md) | Имена тегов должны быть строчными |
2829
| [htmlacademy/tag-self-close](../rules/tag-self-close/README.md) | Одиночные элементы не должны быть закрыты, `<br>` вместо `<br/>` |
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# htmlacademy/space-between-comments
2+
3+
Это правило проверяет наличие пробелов в начале и в конце блока комментария.
4+
5+
## Значение `true`
6+
Если у комментария есть пробелы как в начале, так и в конце блока комментария, то это соответствует требованиям.
7+
8+
Проблемными считаются следующие шаблоны:
9+
```html
10+
<!-- Это комментарий-->
11+
<!--Это комментарий -->
12+
<!--Это комментарий-->
13+
```
14+
15+
Следующие шаблоны не считаются проблемами:
16+
```html
17+
<!-- Это комментарий -->
18+
```

rules/space-between-comments/index.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
'use strict';
2+
const { is_comment_node } = require('@linthtml/dom-utils');
3+
4+
const hasSpacesAtStartAndEnd = (string) => string.startsWith(' ') && string.endsWith(' ');
5+
6+
module.exports = {
7+
name: 'htmlacademy/space-between-comments',
8+
// eslint-disable-next-line camelcase
9+
lint(node, rule_config, { report }) {
10+
if (is_comment_node(node)) {
11+
const comment = node.data;
12+
const isEdges = hasSpacesAtStartAndEnd(comment);
13+
14+
if (!isEdges) {
15+
report({
16+
position: node.loc,
17+
message: 'The comment does not contain spaces at the beginning and end of the message.'
18+
});
19+
}
20+
}
21+
}
22+
};

0 commit comments

Comments
 (0)