AnnaSimferopol's Blog

Результат проверки проекта mdx-combine (коммит d7f9e84)

No Комментарии

 

Результат проверки проекта mdx-combine (коммит d7f9e84)

Что проверялось

  1. Целостность репозитория — структура, наличие всех файлов коммита ✅
  2. Работоспособность скриптов (check.mjs, promote.mjs, archive.mjs)
  3. Сам комбайн src/mdx-combine.html — синтаксис JS, id-ссылки, frontmatter-генератор
  4. Манифест версий — соответствие build: 1.1.1 в файле и в VERSIONS.json ✅

❌ Найденные проблемы (и как они исправлены)

1. scripts/check.mjs вообще не запускался — 4 синтаксические ошибки:
  • строка 24: /authorIds:/test(s) — слэши внутри литерала regex не экранированы → SyntaxError: Invalid regular expression flags. Исправлено на .test().
  • строка 38: /description:/test(s)` — та же проблема. Исправлено.
  • проверка stale-buttons: /btnDl|btnCopy/.test(s) === false — оператор приоритетнее ===, сравнение никогда не давало true (логическая ловушка). Переписано корректно.
  • После починки линтер выявил ложные срабатывания: toc-three-states требовал <option value="128/256">, хотя по ТЗ этого коммита допустимы false/true; revoke-timing и stale-buttons ругались на уже правильный код. Все три проверки скорректированы под реальную схему комбайна.
2. doctor.html содержал те же битые проверки (toc-three-states, authorids-list, description-forbidden, revoke-timing) — синхронизирован с check.mjs, синтаксис его <script> проверен.
3. scripts/promote.mjs падал с непонятным ENOENT, если путь TARGET (C:/astro-projects/...) не существует — файл оставался «невредимым», но без объяснения причины. Добавлена явная проверка целевой папки с понятным сообщением («поправь константу TARGET»). Логика валидации frontmatter не менялась.

✅ Что в порядке

  • src/mdx-combine.html: JS исполняется без ошибок, все 19 вызовов getElementById имеют соответствующие элементы, дублей id нет, шаблонные литералы закрыты, published собирается как .split('T')[0] (YYYY-MM-DD), authorIds выводится YAML-списком через push(' - ' + …), description не генерируется, revokeObjectURL обёрнут в setTimeout, ссылка вставляется в DOM перед click(), бейдж build: 1.1.1 совпадает с манифестом.
  • Валидация доставки протестирована на тестовом .md — пост проходит проверку и переносится (тестовый файл удалён, inbox/ чист).

Leave a Comment