Ведение правил валидации контента#

Правила валидации документации хранятся в репозитории content-validation.

Структура правил в репозитории content-validation имеет следующую структуру:

.
└── content-validation/
    ├── styles/
    │   ├── <STYLE-1>/
    │   │   ├── <RULE-11>.yaml
    │   │   ├── <RULE-12>.yaml
    │   │   ├── ...
    │   │   └── <RULE-1N>.yaml
    │   ├── <STYLE-2>/
    │   │   ├── <RULE-21>.yaml
    │   │   ├── <RULE-22>.yaml
    │   │   ├── ...
    │   │   └── <RULE-2N>.yaml
    │   ├── ...
    │   ├── <STYLE-N>/
    │   │   ├── <RULE-N1>.yaml
    │   │   ├── <RULE-N2>.yaml
    │   │   ├── ...
    │   │   └── <RULE-NN>.yaml
    │   └── Vocab/
    │       ├── <VOCAB-1>/
    │       │   ├── accept.txt
    │       │   └── reject.txt
    │       ├── <VOCAB-2>/
    │       │   ├── accept.txt
    │       │   └── reject.txt
    │       ├── ...
    │       └── <VOCAB-N>/
    │           ├── accept.txt
    │           └── reject.txt
    ├── .vale.ini
    └── rules/
        ├── software.yaml
        └── md.yaml

Базовые правила#

Данные правила проверяются при сборке документации (workflow build-doc), при запуске базовой валидации контента (workflow validate-doc) и валидации изображений (workflow validate-doc-images).

Базовая валидация включает в себя следующие типы проверок:

  • проверки правил руководства по стилю, внутреннего глоссария, проверки на наличие запрещенной информации и прочие проверки, реализуемые с помощью поиска по регулярным выражениям инструментом Vale (узел workflow validate-doc-with-vale),

  • проверки корректности Markdown-разметки (validate-doc-markdown), а также возможности корректного отображения этой разметки на сайте,

  • проверка возможности сжатия PNG-изображений (compress-images),

  • проверка сборки API-документации (transform-api).

Vale проверки#

Ведение файла конфигурации .vale.ini и создание правил валидации описано в официальной документации Vale:

Правила проверки Markdown-разметки#

Для проверки соответствия разметки документации стандартным правилам Markdown GetDocs использует библиотеку Markdownlint. Конфигурация правил проверки задается в файле md.yaml и имеет следующую структуру:

# Default state for all rules
default: true

# Path to configuration file to extend
extends: null

# MD001/heading-increment : Heading levels should only increment by one level at a time : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md001.md
MD001: true

# MD003/heading-style : Heading style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md003.md
MD003:
  # Heading style
  style: "consistent"

# MD004/ul-style : Unordered list style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md004.md
MD004:
  # List style
  style: "consistent"

# ...

Подробная информация о правилах и их конфигурации приведена в официальной документации.

Правила проверки системных требований#

В GetDocs доступна проверка корректности указания системных требований в документации.

Одна из проверок проверяет, что упомянутое в документации программное обеспечение не является запрещенным и что версия этого ПО рекомендована к использованию. Список запрещенного ПО и рекомендуемых версий хранится в файле software.yaml в репозитории content-validation. Ниже приведен пример данного файла:

# в блок можно добавить слова, которые ошибочно распознаются валидатором, как ПО
ignore:
  - 'CLOSED|ERROR|FAIL|URL'
  - 'List|Map|String|Session|Data|Context|Value|Service'

# в блоке перечисляются рекомендуемые версии для разрешенного ПО в формате 'SoftwareName: version1, version2'
allow:
  - Kubernetes: 1.0, 1.21, 1.24
  - Prometheus: 2.21.0, 2.31
  - РЕД ОС: 7.3

# в блоке перечисляется нерекомендуемое ПО
prohibit:
  - (Atlassian )?BitBucket
  - (Red ?Hat )?Enterprise Linux

Значения в каждом блоке поддерживают регулярные выражения.

См. также

Детальная информация о механизме работы данного валидатора приведена в разделе Валидация системных требований Руководства пользователя.