Рекомендуемые инструменты
Форматтер и валидатор YAML (YML)
Форматируйте, проверяйте, сжимайте и скачивайте YAML с сохранением комментариев и точным указанием ошибок.
Что такое форматтер YAML/YML?
YAML (YAML Ain't Markup Language) — читаемый формат для конфигураций приложений, CI/CD, Docker Compose и описаний API. Инструмент форматирует, проверяет и сжимает YAML или YML прямо в браузере, не загружая содержимое на сервер.
Как пользоваться
- Вставьте YAML или YML в редактор.
- Выберите отступ в два или четыре пробела и ширину строки.
- Нажмите Форматировать YAML, Сжать YAML или Валидировать.
- Скопируйте результат или скачайте файл
.yaml.
✨ Основные функции
- 🎯 Проверка формата: Проверяет ошибки синтаксиса YAML и предоставляет подробные подсказки
- 🎨 Форматирование: Автоматически выравнивает содержимое YAML и отступы
- 🗜️ Сжатие содержимого: Удаляет лишние пробелы и комментарии для уменьшения размера файла
- 📋 Копирование одним кликом: Отформатированные результаты можно скопировать напрямую для использования
- 🔧 Местоположение ошибок: Точно определяет позиции синтаксических ошибок
- 💾 Скачивание YAML: Сохраняет отформатированный результат в файл
.yaml
📖 Примеры использования
Пример форматирования
Исходный YAML:
name:ToolMi
version:1.0.0
features:
- format
- validate
- compress
config:
debug:true
port:3000
После форматирования:
name: ToolMi
version: 1.0.0
features:
- format
- validate
- compress
config:
debug: true
port: 3000
Пример сложной структуры
Входной YAML:
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
pools:
- name: read_pool
size: 10
- name: write_pool
size: 5
После проверки и beautification:
database:
host: localhost
port: 5432
credentials:
username: admin
password: secret
pools:
- name: read_pool
size: 10
- name: write_pool
size: 5
🎯 Сценарии применения
1. Форматирование YAML (YML) конфигурационных файлов приложений
Организация и проверка файлов конфигурации приложения:
# Файл конфигурации приложения (config.yml)
app:
name: ToolMi
version: 1.0.0
environment: production
server:
host: 0.0.0.0
port: 3000
ssl:
enabled: true
cert_path: /etc/ssl/certs/app.crt
key_path: /etc/ssl/private/app.key
database:
type: postgresql
host: localhost
port: 5432
name: toolmi_db
username: ${DB_USER}
password: ${DB_PASSWORD}
pool:
min_connections: 2
max_connections: 10
redis:
host: localhost
port: 6379
password: ${REDIS_PASSWORD}
db: 0
logging:
level: info
format: json
outputs:
- type: file
path: /var/log/app.log
- type: console
2. Форматирование YAML (YML) конфигураций Docker Compose
Управление конфигурацией оркестрации контейнеров Docker:
# docker-compose.yml
version: '3.8'
services:
web:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- DB_HOST=database
depends_on:
- database
- redis
volumes:
- ./uploads:/app/uploads
networks:
- app-network
database:
image: postgres:13
environment:
POSTGRES_DB: toolmi_db
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- app-network
redis:
image: redis:6-alpine
command: redis-server --requirepass ${REDIS_PASSWORD}
volumes:
- redis_data:/data
networks:
- app-network
volumes:
postgres_data:
redis_data:
networks:
app-network:
driver: bridge
3. Форматирование YAML (YML) для конвейеров CI/CD
Конфигурация рабочего процесса GitHub Actions:
# .github/workflows/deploy.yml
name: Развертывание в Production
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
NODE_VERSION: '18'
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout кода
uses: actions/checkout@v3
- name: Настройка Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Установка зависимостей
run: npm ci
- name: Запуск тестов
run: npm test
- name: Запуск linting
run: npm run lint
build:
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout кода
uses: actions/checkout@v3
- name: Сборка Docker образа
run: |
docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest .
- name: Push в реестр
run: |
echo ${{ secrets.GITHUB_TOKEN }} | docker login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin
docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
4. Форматирование YAML (YML) манифестов Kubernetes
Файлы конфигурации развертывания Kubernetes:
# deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: toolmi-app
labels:
app: toolmi
spec:
replicas: 3
selector:
matchLabels:
app: toolmi
template:
metadata:
labels:
app: toolmi
spec:
containers:
- name: app
image: toolmi/app:latest
ports:
- containerPort: 3000
env:
- name: NODE_ENV
value: "production"
- name: DB_HOST
valueFrom:
secretKeyRef:
name: app-secrets
key: db-host
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: toolmi-service
spec:
selector:
app: toolmi
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: LoadBalancer
🔧 Технические детали
Правила синтаксиса YAML
Основные правила синтаксиса YAML:
Правила отступов:
- Используйте пробелы для отступов, табуляция не разрешена
- Элементы на одном уровне должны быть выровнены по левому краю
- Дочерние элементы должны иметь больший отступ, чем родительские
Типы данных:
- Строки: Могут быть без кавычек, специальные символы требуют кавычек
- Числа: Целые и числа с плавающей точкой
- Булевы значения: true/false, yes/no, on/off
- Null значения: null, ~, или пусто
Типы коллекций:
- Массивы: Используйте
-для указания элементов списка - Объекты: Используйте
key: valueдля представления пар ключ-значение - Вложенность: Поддерживает произвольные уровни вложенных структур
Распространенные ошибки
Распространенные ошибки, которые может обнаружить форматер YAML:
Ошибки отступов:
# Неправильный пример
config:
debug: true
port: 3000 # Несогласованный отступ
# Правильный пример
config:
debug: true
port: 3000
Проблемы с кавычками:
# Неправильный пример
message: It's a test # Неэкранированная одинарная кавычка
# Правильный пример
message: "It's a test"
# или
message: 'It''s a test'
Формат списка:
# Неправильный пример
features:
- format
- validate # Ошибка отступа
# Правильный пример
features:
- format
- validate
💡 Советы по использованию
- Согласованные отступы: Всегда используйте одинаковое количество пробелов для отступов (рекомендуется 2 пробела)
- Использование кавычек: Окружайте строки, содержащие специальные символы, кавычками
- Стандарты комментариев: Используйте
#для добавления комментариев, добавляйте пробел перед комментариями - Многострочные строки: Используйте
|или>для обработки многострочного текста
⚠️ Важные замечания
- Запрет табуляции: YAML не разрешает табуляцию, можно использовать только пробелы
- Чувствительность к отступам: Ошибки отступов вызовут сбои парсинга
- Специальные символы: Двоеточия, кавычки и другие специальные символы требуют правильной обработки
- Формат кодировки: Убедитесь, что файлы используют кодировку UTF-8
🚀 Начало работы
- Ввод YAML: Вставьте содержимое YAML для обработки в поле ввода
- Выбор операции: Нажмите кнопку "Форматировать", "Проверить" или "Сжать"
- Просмотр результатов: Проверьте обработанный YAML в поле вывода
- Копирование или скачивание: Скопируйте результат или сохраните его как
formatted.yaml - Исправление ошибок: Исправьте проблемы синтаксиса на основе подсказок об ошибках
Совет: Этот инструмент обрабатывает локально на стороне клиента и не загружает содержимое YAML на сервер, обеспечивая безопасность данных.
❓ Частые вопросы
В1: Форматирование не удалось?
О: Проверьте синтаксис перед форматированием.
В2: Можно минифицировать?
О: Да. Режим сжатия использует потоковый стиль и удаляет комментарии.
В3: Сохранить комментарии?
О: Обычное форматирование сохраняет комментарии; только сжатие удаляет их.