nindent и indent на практике
Вставляйте блоки на правильном уровне отступа
«nindent и indent на практике» — бесплатный урок Helm Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.
В YAML важны отступы
YAML использует пробелы для обозначения структуры, поэтому блок, вставленный на неправильной глубине, ломает файл. Helm предоставляет вспомогательные функции, чтобы правильно добавлять отступы к indent выводу.
Что делает indent
Функция indent добавляет фиксированное число пробелов в начало каждой строки строкового значения, сдвигая весь блок вправо.
{{ .Values.config | indent 4 }}Он не добавляет новую строку
Вот важный нюанс: indent сдвигает каждую строку, но не добавляет начальную новую строку. Первая строка оказывается прямо там, где расположен вызов.
Знакомьтесь: nindent
Функция nindent делает то же самое с отступами, но сначала выводит новую строку, поэтому блок аккуратно начинается с отдельной строки.
data:
{{ .Values.config | nindent 4 }}Зачем нужен n в nindent
Начальная новая строка, которую добавляет nindent, избавляет вас от необходимости оставлять пробел в конце и наугад подбирать выравнивание после ключа в той же строке.
Самый распространённый случай
Чаще всего nindent используется при размещении блока toYaml под ключом: так отрендеренная карта аккуратно располагается под ключом.
resources:
{{ toYaml .Values.resources | nindent 4 }}Считайте от ключа
Выбирайте число, считая пробелы от родительского ключа, а не от нулевого столбца. Вложенному на два уровня дочернему элементу обычно нужен nindent 4.
Когда подходит indent
Обычный indent подходит, когда блок уже начинается с отдельной строки и перед ним не нужно добавлять дополнительную новую строку.
Следите за ошибкой в два пробела
Большинство уровней вложенности YAML увеличивается на два пробела. Ошибка в подсчёте nindent на два пробела — главная причина, по которой чарт не удаётся разобрать.
Проверяйте рендерингом
Не угадывайте глубину. Запустите helm template и изучите необработанный вывод, чтобы убедиться, что вставленный блок выровнен относительно родительского ключа.
helm template ./mychart | lessОба принимают данные из конвейера
Обе функции получают строку из конвейера слева, поэтому они естественно сочетаются с toYaml для форматирования целой карты в манифесте.
Быстрая проверка
Вы пишете {{ toYaml .Values.env | indent 4 }} сразу после ключа в той же строке, и YAML становится некорректным.
Итоги
Теперь вы знаете, что indent добавляет отступы к блоку, nindent сначала добавляет новую строку, а рендеринг — самый надёжный способ проверить глубину. 🧹
Часто задаваемые вопросы
Урок «nindent и indent на практике» бесплатный?
Да — полный текст урока «nindent и indent на практике» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.
Чему я научусь в уроке «nindent и indent на практике»?
Вставляйте блоки на правильном уровне отступа Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Helm Academy?
Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «nindent и indent на практике»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Helm Academy?
Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Присваивание переменных шаблона
- Сохранение корневой точки внутри range
- nindent и indent на практике
- Отладка пробелов в отрендеренном выводе