Skip to main content

Использование содержимого

Вы можете использовать содержимое linter для проверки ваших вкладов на наличие ошибок.

Сведения о содержимом GitHub Docs

Наше содержимое применяет правила руководства по стилю в содержимом Markdown.

Linter используется markdownlint в качестве платформы для выполнения проверок, отчетов о недостатках и автоматическом исправлении содержимого по возможности. Эта платформа гибко выполняет определенные правила, предоставляет описательные сообщения об ошибках и устраняет ошибки. Содержимое GitHub Docs использует несколько существующих markdownlint правил и дополнительных настраиваемых правил для проверки содержимого Markdown в наших content и data каталогах. Наши пользовательские правила реализуют проверки, которые пока недоступны в markdownlint платформе или относятся к содержимому GitHub Docs. Правила проверяют синтаксис для Markdown и Liquid.

Выполнение содержимого GitHub Docs

Содержимое GitHub Docs будет выполняться автоматически при предварительной фиксации, но его также можно запустить вручную.

Автоматический запуск linter при предварительной фиксации

При локальном написании содержимого и фиксации файлов с помощью командной строки эти промежуточные файлы автоматически будут выложены с помощью содержимого. Сообщаются как предупреждения, так и ошибки, но только ошибки будут препятствовать завершению фиксации.

Если сообщается об ошибках, фиксация не завершится. Вам потребуется исправить обнаруженные ошибки, повторно добавить измененные файлы и снова зафиксировать изменения. Все сообщаемые ошибки должны быть исправлены, чтобы предотвратить появление ошибок в содержимом, которые нарушают руководство по стилю GitHub Docs. Если сообщается о как��х-либо предупреждениях, вы можете при необходимости исправить их ��ли нет.

При локальном написании содержимого существует несколько правил, которые можно исправить автоматически с помощью командной строки. Если вы хотите автоматически исправить ошибки, которые можно исправить, см . статью "Автоматическое исправление ошибок", которые можно исправить.

Если вы редактируете файл в пользовательском интерфейсе GitHub, вы не сможете автоматически исправлять ошибки или запускать литер в фиксации, но вы получите сбой CI, если содержимое нарушает какие-либо правила с серьезностью error.

Запуск linter вручную

Запуск linter на поэтапном и измененном файлах

Используйте следующую команду, чтобы локально запустить linter на промежуточных и измененных файлах. Это приведет к error выводу и warning недостатков серьезности.

npm run lint-content

Запуск linter на поэтапном и измененном файлах и только сообщения об ошибках

Используйте следующую команду, чтобы локально запустить linter на этапе и измененных файлах, а также сообщить о недостатках только error серьезности.

npm run lint-content -- --errors

Запуск linter для определенных файлов или каталогов

Используйте следующую команду для локального запуска linter в определенных файлах или каталогах. Разделите несколько путей с пробелом. Файлы и каталоги можно включить в одну и ту же команду.

Shell
npm run lint-content -- \
  --paths content/FILENAME.md content/DIRECTORY

Автоматическое исправление ошибок, которые можно исправить

Если в описании ошибки fixable: true вы можете использовать следующие команды для автоматического исправления.

Выполните следующую команду, чтобы исправить только промежуточные и измененные файлы:

npm run lint-content -- --fix

Выполните следующую команду, чтобы исправить определенные файлы или каталоги:

npm run lint-content -- \
  --fix --paths content/FILENAME.md content/DIRECTORY

Запуск определенного набора правил linter

Используйте следующую команду для выполнения одного или нескольких конкретных правил linter. В этих примерах выполняются heading-increment правила и code-fence-line-length правила. Замените heading-increment code-fence-line-length одним или несколькими псевдонимами linter, которые вы хотите запустить. Чтобы просмотреть список правил linter, которые можно передать этому параметру, выполните команду npm run lint-content -- --help. Можно использовать короткое им�� (например, MD001) или длинное имя (например, heading-increment) правила linter.

Запустите указанные правила linter во всех промежуточных и измененных файлах:

npm run lint-content -- \
  --rules heading-increment code-fence-line-length

Выполните указанные правила linter для определенных файлов или каталогов:

npm run lint-content -- \
  --rules heading-increment code-fence-line-length \
  --path content/FILENAME.md content/DIRECTORY

Обход перехватчика фиксации

Если ошибка linter catchs, которую вы не ввели, можно обойти перехватчик фиксации Git с помощью --no-verify параметра при фиксации изменений.

git commit -m 'MESSAGE' --no-verify

Отображение меню справки для скрипта содержимого linter

npm run lint-content -- --help

Правила подстраивание

Каждое правило настроено в файле, src/content-linter/styleгде определены серьезность правил.

Перед объединением изменений в main ветвь необходимо устранить ошибки. Предупреждения следует устранять, но не предотвращать объединение изменений в main ветвь. Большинство правил в конечном итоге будут повышены до ошибок, так как содержимое больше не имеет предупреждений нарушений.

Идентификатор правилаИмена правилDescriptionСерьезностьТеги
MD001Увеличение заголовкаУровни заголовков должны увеличиваться только на один уровень за разerrorЗаголовки
MD004ul-styleСтиль неупорядоченного спискаerrorмаркер, ul
MD009no-trailing-spacesКонечные пробелыerrorпробел
MD011no-reversed-linksСинтаксис обратной ссылкиerrorссылки
MD012без нескольких пустыхНесколько последовательных пустых строкerrorпробелы, blank_lines
MD014commands-show-outputЗнаки доллара, используемые перед командами без отображения выходных данныхerrorкодом
MD018no-missing-space-atxНет места после хэш-заголовка стиля atxerrorзаголовки, atx, пробелы
MD019no-multiple-space-atxНесколько пробелов после хэш-заголовка стиля atxerrorзаголовки, atx, пробелы
MD022пустые заголовкиЗаголовки должны быть окружены пустыми строкамиerrorзаголовки, blank_lines
MD023заголовок-слеваЗаголовки должны начинаться в начале строки.errorзаголовки, пробелы
MD027no-multiple-space-blockquoteНесколько пробелов после символа blockquoteerrorblockquote, пробелы, отступы
MD029ol-префиксПрефикс упорядоченного элемента спискаerrorol
MD030list-marker-spaceПробелы после маркеров спискаerrorol, ul, пробелы
MD031пустые заборы вокругБлоки заборированного кода должны быть окружены пустыми строкамиerrorкод, blank_lines
MD037без пробела в акцентеПробелы внутри маркеров выделенияerrorпробелы, акцент
MD039no-space-in-linksПробелы внутри текста ссылкиerrorпробелы, ссылки
MD040забортный язык кодаБлоки кода, защищенные, должны иметь указанный языкerrorкод, язык
MD042no-empty-linksНет пустых ссылокerrorссылки
MD047single-trailing-newlineФайлы должны заканчиваться одним символом новой строкиerrorblank_lines
MD049стиль акцентаСтиль выделенияerroremphasis
MD050сильный стильСильный стильerroremphasis
search-replaceзаполнитель todocs-placeholderПерехват вхождения заполнителя TODOCS.error
search-replacedocs-domainПерехват вхождения домена docs.github.com.error
search-replaceдомен спра��киПерехват вхождения домена help.github.com.error
search-replaceдомен разработчикаПерехват вхождения домена developer.github.com.error
search-replaceустаревший синтаксис жидкости: site.dataПерехват вхождений устаревшего синтаксиса данных жидкости.error
search-replaceустаревший синтаксис жидкости: octicon-Используемый синтаксис октикона жидкости не рекомендуется. Вместо этого используйте этот формат octicon "<octicon-name>" aria-label="<Octicon aria label>"error
GH001no-default-alt-textИзображения должны иметь значимый альтернативный текст (замещающий текст)errorспециальные возможности, изображения
GH002no-generic-link-textИзбегайте использования универсального текста ссылки, например Learn more или Click hereerrorспециальные возможности, ссылки
GHD032image-alt-text-end-punctuationАльтернативный текст для изображений должен заканчиваться знаками препинанияerrorспециальные возможности, изображения
GHD004image-file-kebab-caseИмена файлов изображений должны использовать kebab-caseerrorimages
GHD033неверный alt-text-lengthЗамещающий текст изображений должен составлять от 40 до 150 символовпредупреждений (не рекомендуется)специальные возможности, изображения
GHD002internal-links-no-langВнутренние ссылки не должны иметь жестко закодированный языковой кодerrorссылки, URL-адрес
GHD003внутренняя косая чертаВнутренние ссылки должны начинаться с /errorссылки, URL-адрес
GHD031image-alt-text-exclude-wordsАльтернативный текст для изображений не должен начинаться с таких слов, как "изображение" или "графический"errorспециальные возможности, изображения
GHD034list-first-word-capitalizationПервое слово элемента списка должно быть заглавнопредупреждений (не рекомендуется)ul, ol
GHD001препинание ссылокЗаголовки внутренних ссылок не должны содержать знаки препинанияerrorссылки, URL-адрес
GHD008ранние ссылки на accessФайлы, которые не являются ранним доступом, не должны ссылаться на файлы с ранним доступом или ранним доступомerrorфункция, ранний доступ
GHD021задания yaml-scheduled-jobsФрагменты YAML, включающие запланированные рабочие процессы, не должны выполняться в час и должны быть уникальнымиerrorфункция, действия
GHD006внутренняя версия-links-old-versionВнутренние ссылки не должны иметь жестко закодированную версию с использованием старого синтаксиса управления версиямиerrorссылки, URL-адрес, управление версиями
GHD005hardcoded-data-variableСтроки, содержащие "личный маркер доступа", должны использовать переменную продукта.errorодин источник
GHD013github-owned-action-referencesСсылки на действия, принадлежащие GitHub, не должны быть жестко закодированыerrorфункция, действия
GHD016liquid-quoted-условно-argУсловные теги Liquid не должны кавычки условного аргументаerrorжидкость, формат
GHD014liquid-data-references-definedСсылки на ликвидные или отступные данные найдены в содержимом, не имеющих значения или не существующих в каталоге данных.errorliquid
GHD015формат liquid-data-tagТеги ссылок на ликвидные или отступные данные должны быть правильно отформатированы и иметь правильное количество аргументов и интерваловerrorжидкость, формат
GHD010frontmatter-hidden-docsСтатьи с свойством hidden frontmatter могут находиться только в определенных продуктахerrorfrontmatter, компонент, ранний доступ
GHD009frontmatter-early-access-referencesФайлы, которые не являются ранним доступом, не должны иметь интерфейсные элементы, ссылающиеся на ранний доступerrorfrontmatter, компонент, ранний доступ
GHD011frontmatter-video-transcriptsРасшифровка видео должна быть настроена правильноerrorfrontmatter, feature, video-transcripts
GHD012frontmatter-schemaFrontmatter должен соответствовать схемеerrorfrontmatter, схема
GHD007заметки кодаЗаметки кода, определенные в Markdown, должны содержать определенное свойство frontmatter макетаerrorcode, feature, annotate, frontmatter
GHD017frontmatter-liquid-синтаксисСвойства Frontmatter должны использовать допустимые свойства Liquiderrorжидкость, frontmatter
GHD018синтаксис liquid-Содержимое Markdown должно использовать допустимое содержимое Liquiderrorliquid
GHD019liquid-if-tagsТеги Liquid ifversion следует использовать вместо if тегов, если аргумент является допустимой версией.errorliquid, управление версиями
GHD020liquid-ifversion-tagsТеги Liquid ifversion должны содержать допустимые имена версий в качестве аргументовerrorliquid, управление версиями
GHD0222liquid-ifversion-versionsLiquid ifversion, elsifи else теги должны быть допустимыми и не содержать неподдерживаемые версии.errorliquid, управление версиями
GHD035rai-reusable-usageСтатьи RAI и повторно используемые файлы могут ссылаться только на повторное использование содержимого в каталоге data/reusables/rai.errorфункция, rai
GHD036image-no-gifИзображение не должно быть GIF- ссылкой на styleguide: участие/style-guide-and-content-model/style-guide.md#imageserrorimages
GHD038истек срок действия содержимогоСодержимое с истекшим сроком действия должно быть исправлено.errorсрок действия истек
GHD039истекает срок действия в ближайшее времяСрок действия содержимого, срок действия которого истекает в ближайшее время, должен быть упреждаем.предупреждений (не рекомендуется)срок действия истек
GHD040управление версиями table-liquidТаблицы должны использовать правильный формат управления версиями liquiderrorВ таблицах
GHD041закрепление стороннего действияПримеры кода, использующие сторонние действия, должны всегда закрепляться на полной длине фиксации SHAerrorфункция, действия
GHD042liquid-tag-whitespaceТеги Liquid должны начинаться и заканчиваться одним пробелом. Аргументы тега Liquid должны быть разделены только одним пробелом.errorжидкость, формат
GHD043ссылка-кавычкаЗаголовки внутренних ссылок не должны быть окружены кавычкамиerrorссылки, URL-адрес
GHD0222liquid-ifversion-versionsLiquid ifversion, elsifи else теги должны быть допустимыми и не содержать неподдерживаемые версии.errorliquid, управление версиями

Синтаксис правил подкладки

Некоторые правила подстроки возвращают предупреждения или ошибки на основе html-комментариев, которые можно добавить в статьи.

Синтаксис для истечения срока действия и истечения срока действия содержимого

Правила GHD038 и GHD039 проверка содержимого, заданного вручную датой окончания срока действия. За 19 дней до указанной даты содержимое будет возвращено предупреждение о том, что срок действия содержимого истекает в ближайшее время. Начиная с указанной даты содержимое возвращает ошибку и помечает содержимое для исправления.

Вы можете добавить дату окончания срока действия в содержимое, упаковав его в HTML-теги, содержащие дату окончания срока действия в формате: <!-- expires yyyy-mm-dd --> <!-- end expires yyyy-mm-dd -->

Используйте:

This content does not expire.
<!-- expires 2022-01-28 -->
This content expires on January 28, 2022.
<!-- end expires 2022-01-28 -->
This content also does not expire.

Обратите внимание, что если вы помещаете истекшие теги в HTML-элемент table , убедитесь, что тег проходит по всей строке и не только ячейке. Например:

<!-- expires 2024-06-28 -->
<tr>
<td>
macOS
</td>
<td>
The <code>macos-11</code> label is закрытие and will no longer be available after 28 June 2024.
</td>
</tr>
<!-- end expires 2024-06-28 -->

Подавление правил linter

Иногда может потребоваться документировать то, что нарушает одно или несколько правил linter. В этих случаях можно отключить правила, добавив комментарий в файл Markdown. Вы можете отключить все правила или определенные правила. Всегда старайтесь ограничить как можно меньше правил. Правило для всего файла можно отключить для раздела фай��а Markdown, определенной строки или следующей строки.

Например, если вы пишете статью, содержащую регулярное выражение (^|/)[Cc]+odespace/ , которое проверяет синтаксис обратной ссылки, оно активирует MD011 правило, которое проверяет обратные ссылки. Вы можете отключить правило MD011 в этой конкретной строке, добавив следующий комментарий.

(^|/)[Cc]+odespace/ <!-- markdownlint-disable-line MD011 -->

Если строка, которую вы пытаетесь игнорировать, находится в блоке кода, можно игнорировать блок кода, окружив его следующими комментариями.

<!-- markdownlint-disable MD011 -->
```
(^|/)[Cc]+odespace/
```
<!-- markdownlint-enable MD011 -->

Эти комментарии можно использовать для включения или отключения правил.

КомментарийДействие
<!-- markdownlint-disable -->Отключить все правила
<!-- markdownlint-enable -->Включение всех правил
<!-- markdownlint-disable-line -->Отключить все правила для текущей строки
<!-- markdownlint-disable-next-line -->Отключить все правила для следующей строки
<!-- markdownlint-disable RULE-ONE RULE-TWO -->
<!-- markdownlint-enable RULE-ONE RULE-TWO -->Включение одного или нескольких правил по имени
<!-- markdownlint-disable-line RULE-NAME -->Отключение одного или нескольких правил по имени текущей строки
<!-- markdownlint-disable-next-line RULE-NAME -->Отключение одного или нескольких правил по имени для следующей строки