FEEDBACK-443: привести кавычки в JS-уроках к рекомендации линтера - #868
Merged
Merged
Conversation
Уроки рекомендовали одинарные кавычки со ссылкой на стиль AirBnb, а весь код курса и все практики стоят на двойных: их ставит oxfmt, и по `docs/js-code-style.md` дефолт инструмента и есть канон кита. Студент читал одно, а в редакторе видел другое. Рекомендация переписана: единого правила в сообществе нет, курс держится двойных, одинарные берутся когда внутри строки есть двойные. Следом поправлен пример с апострофом — внутри двойных кавычек он проблемы не создаёт, и прежнее объяснение про сломанный синтаксис к нему больше не подходит. Заодно восстановлены съеденные форматтером примеры: демонстрация двух форм записи и экранирование двойной кавычки, которое прогон переписал в экранирование апострофа, хотя текст рядом описывает первое. Блоки помечены как антипримеры. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Смена рекомендации на двойные обесценила пример с апострофом: под одинарными по умолчанию он показывал, почему кавычки приходится менять, а под двойными апостроф внутри проблемы не создаёт. Абзац остался, но учить перестал. Правило то же, только зеркальное: строку обрывает кавычка, совпадающая с внешней, поэтому при двойных снаружи столкновение даёт двойная внутри. Пример дополнен второй строкой, которая это показывает, и абзац снова описывает случай, а не факт. Блок намеренно не помечен: oxfmt обе строки оставляет как есть — проверено прогоном, — то есть пример совпадает с тем, что делает форматтер, и защищать его от прогона не нужно. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Урок показывал два способа разойтись со столкновением кавычек — сменить внешние и оставить апостроф внутри двойных, — но не третий, само экранирование. Добавлен пример с апострофом под слэшем вместе с объяснением, что слэш делает. Рядом сказано, почему в готовом коде такая запись встречается редко: oxfmt сам переписывает её на кавычки без слэша. По той же причине блок помечен как антипример — без пометки следующий прогон форматтера его съест. Так уже сломалось экранирование в уроке про строки. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Экранированию в курсе отведён отдельный урок, `250-escape-characters`, а перед ним `240-strings` разбирает экранирование кавычек в обе стороны, включая апостроф под слэшем. Пример в `100-hello-world` это дублировал и выдавал обратный слэш студенту, который за пятнадцать уроков до темы не видел ещё ни одной управляющей последовательности. Столкновение кавычек в уроке остаётся: оно там по месту и объясняет, зачем вообще менять внешние кавычки. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Продолжение PR #867 (смержен). Там возвращались съеденные форматтером примеры в уроке про линтер; здесь разбирается класс кавычек, вскрытый тем же тикетом FEEDBACK-443.
Урок расходился с линтером
10-basics/10-hello-worldи25-strings/10-quotesрекомендовали одинарные кавычки со ссылкой на стиль AirBnb. При этом весь код курса и все практики стоят на двойных: их ставит oxfmt, а поdocs/js-code-style.mdкита дефолт инструмента и есть канон. Студент читал одно, а в редакторе видел другое.Рекомендация переписана по образцу, который эта же кампания применила в python-курсах: единого правила в сообществе нет, курс держится двойных, одинарные берутся когда внутри строки есть двойные.
Что потянулось следом
Пример с апострофом держался на прежнем правиле: по умолчанию одинарные → апостроф ломает синтаксис → поэтому здесь двойные. При двойных по умолчанию апостроф внутри проблемы не создаёт, и абзац перестал чему-либо учить.
Правило зеркалится, а не исчезает: строку обрывает кавычка, совпадающая с внешней. Пример дополнен второй строкой, которая это показывает:
Этот блок намеренно не помечен: oxfmt обе строки оставляет как есть, проверено прогоном.
Третьим шагом показано экранирование, которого в уроке не было вовсе, вместе с оговоркой, почему в готовом коде такая запись встречается редко.
Восстановлено съеденное
Демонстрация двух форм записи (оба блока стали одинаковыми) и экранирование двойной кавычки в
10-quotes, которое прогон переписал в экранирование апострофа, хотя абзац рядом описывает первое.Все три блока помечены и переведены на метку
text, потому что oxfmt снимает экранирование и сводит формы к одной:Правило —
docs/markdown.mdкита, § «Антипример идёт в ```text».Парные правки в курсах Хекслета: merge requests в
ru/js_fundamentals_course!3 иes/js_fundamentals_course!2.🤖 Generated with Claude Code