Перевірка посилань
На сайті посилання перевіряються за допомогою двох інструментів:
- htmltest — оригінальний засіб перевірки та поточна стандартна програма, яку запускає
check:links. Він встановлюється автоматично під час першого запуску (якщо потрібно), тому додаткове налаштування не потрібне. Він також використовується скриптами та робочими процесами, повʼязаними з refcache. - Lychee — швидша альтернатива, яку учасники проєкту можуть випробувати.
⚠️ Спочатку потрібно встановити Lychee локально.
Перевірка посилань
Щоб перевірити посилання локально (за допомогою htmltest), виконайте:
npm run check:links
Або, щоб спробувати Lychee, після його встановлення виконайте:
npm run _lychee -- check:links
Хочете використовувати Lychee замість htmltest? Після встановлення ви можете або додати префікс до одноразового запуску:
npm run _lychee -- check:links
або встановити таку змінну середовища, щоб усі npm-скрипти, які покладаються на неї (прямо чи опосередковано, як-от check:links, check тощо), використовували Lychee:
export LINK_CHECKER=lychee
Типові команди
| Команда | Обсяг перевірки | Засіб перевірки |
|---|---|---|
check:links | Весь сайт | LINK_CHECKER (стандартно htmltest) |
check:links:htmltest | Весь сайт | htmltest |
check:links:lychee | Весь сайт | Lychee |
check:links:diff | Лише змінені файли | Lychee |
Скрипти check:links та check:links:* працюють на збірці BUILD_KIND. Докладніше дивіться в Типи збірки: повна та скорочена.
Refcache
Сайт має кеш зовнішніх посилань (refcache), який зберігається у системі контролю версій. Він створюється та оновлюється htmltest. Наразі Lychee не налаштований на оновлення refcache. Щоб оновити refcache, виконайте fix:refcache або перевірте посилання за допомогою htmltest.
Робочі процеси оновлення refcache та обслуговування
Наступні робочі процеси виконуються щоденно та запускають команду перевірки посилань:
| Робочий процес | Засіб | Збірка |
|---|---|---|
Оновлення refcache (fix:refcache) | htmltest | повна |
Обслуговування (fix-and-test:all) | htmltest | повна |
Оновлення refcache спочатку чистить кеш, а потім запускає check:links:htmltest, який оновлює записи в кеші, якщо вони все ще використовуються в документації.
Робочий процес обслуговування запускає fix-and-test:all, який викликає fix:refcache і навмисно пропускає check:links, щоб посилання перевірялися рівно один раз (через htmltest, який оновлює refcache).
У CI
Робочий процес check-links.yml збирає сайт один раз (скорочено) та передає цей артефакт через частки htmltest і перевірку Lychee, тому локальні запуски та CI перевіряють ту саму збірку.