Skip to content

FEEDBACK-443: вернуть неаккуратные примеры в урок и задание про линтер - #399

Merged
fey merged 3 commits into
mainfrom
feedback-443-broken-examples
Sep 11, 2026
Merged

fey merged 3 commits into
mainfrom
feedback-443-broken-examples

Conversation

@fey

@fey fey commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Парная правка к PR в exercises-javascript (#867) и к правкам курсов Хекслета php_fundamentals в ru и es. Тикет FEEDBACK-443.

Что случилось

Прогон make lint-code-blocks-fix (кампания mdsf-code-blocks в ките) привёл к стилю оба блока урока.

README — два места:

-print_r(1+ 3);
+print_r(1 + 3);

Урок показывает этот блок под «Рассмотрим пример», а ниже объясняет, что линтер укажет на нехватку пробелов. Указывать стало не на что.

Второй блок пострадал сильнее. Абзац под ним перечисляет три находки линтера — табуляция вместо пробелов, запрещённый закрывающий тег ?>, пробел перед скобкой вызова. Прогон убрал из кода все три:

-	print_r (((8 / 2) + 5) - (-3 / 2));
-
-?>
+print_r(((8 / 2) + 5) - (-3 / 2));

Комментарий «На следующей строке отступ равен одному табу» остался и указывает на строку без табуляции.

EXERCISE — здесь задание стало невыполнимым. Условие просит «исправьте пробелы вокруг операторов», а код под ним уже исправлен:

-print_r(    (5  **2)-(3*  7));
+print_r((5 ** 2) - (3 * 7));

Снаружи ничего не видно: markdown валиден, линтеры молчат, lint-code-blocks зелёный по построению — форматтер сам это и сделал.

Что в правке

Неаккуратные версии возвращены во всех трёх локалях, блоки переведены на метку text и помечены:

<!-- lint-code-blocks: skip — неаккуратный код это предмет урока, форматтер привёл бы его к стилю -->

Правило закреплено в ките (docs/markdown.md, § «Антипример идёт в ```text»), список дыр в проверке собирается грепом по этой строке. Цена — блок теряет подсветку; размен сознательный, разобран в docs/mdsf-code-blocks.md.

Проза не менялась: правка целиком внутри блоков кода.

🤖 Generated with Claude Code

fey and others added 3 commits September 11, 2026 18:11
Прогон форматтера привёл к стилю оба блока урока, и он показывал одинаковый код
там, где текст обещает разницу. Заодно из примера пропали табуляция и
закрывающий тег `?>`, хотя абзац ниже перечисляет ровно эти нарушения как
находки линтера.

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

Неаккуратные версии возвращены во всех трёх локалях, блоки помечены как
антипримеры (`docs/markdown.md` кита, § «Антипример идёт в ```text»).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… арифметику

Абзац говорит «вариант без пробелов тоже работает», а под ним лежал код с
пробелами: прогон форматтера привёл к стилю оба блока. Так во всех трёх локалях.

Найдено детектором пар `bin/check-twin-blocks.ts` в ките: обход по именам уроков
этот урок не ловил, он не про линтер. Блоки помечены как антипримеры.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Абзац говорит «можно использовать одинарные или двойные», а оба примера под ним
стояли в одинарных: прогон форматтера свёл обе формы к одной. Показывать было
нечего.

Рекомендация урока при этом верна и остаётся как есть: mago, который ведёт php в
ките, сводит строки к одинарным кавычкам — проверено прогоном. Правится только
демонстрация второй формы.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@fey
fey merged commit f12e7c7 into main Sep 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant