Oh MyUtils

Formateador y Validador YAML - Formatear YAML en Línea

Formatee, valide y minifique archivos de configuración YAML con resaltado de sintaxis y vista de árbol. Compatible con Kubernetes, Docker Compose, GitHub Actions — 100% en el navegador.

Sangría
Ordenar Claves
Off
Entrada
Salida
 

Preguntas Frecuentes

¿Qué es un formateador YAML?

Un formateador YAML es una herramienta que toma archivos YAML y los reformatea con sangría, espaciado y estructura consistentes. YAML es un lenguaje de serialización de datos legible por humanos ampliamente utilizado para archivos de configuración en Kubernetes, Docker Compose, GitHub Actions y muchas otras herramientas DevOps. Un formateador asegura que sus archivos YAML sigan convenciones de estilo consistentes, haciéndolos más fáciles de leer, mantener y revisar.

¿Cómo uso este formateador YAML?

Seleccione la operación deseada usando las pestañas: Formatear, Minificar o Vista de Árbol. Pegue su contenido YAML en el área de entrada, cargue un archivo .yaml/.yml o haga clic en Sample para cargar un ejemplo. La herramienta valida y procesa automáticamente su entrada en tiempo real. Revise la salida en el panel derecho y ajuste las opciones de formato según sea necesario.

¿Están seguros mis datos?

Sus datos están 100% seguros y nunca salen de su navegador. Este formateador YAML usa la biblioteca js-yaml ejecutándose completamente en JavaScript del lado del cliente. No se transmiten datos a ningún servidor. Todo el procesamiento ocurre localmente en su dispositivo. Puede verificarlo desconectándose de internet — la herramienta funciona completamente sin conexión después de la carga inicial.

¿Qué es la minificación YAML?

La minificación YAML comprime el contenido YAML a su representación más pequeña posible convirtiendo la notación de estilo bloque a estilo flujo ({clave: valor, lista: [1, 2, 3]}), eliminando todos los comentarios y espacios en blanco innecesarios. Esto es útil para incrustar YAML en variables de entorno, argumentos CLI o campos de base de datos.

¿Qué pasa con los comentarios YAML durante el formateo?

Los comentarios YAML (texto después de #) se pierden durante el formateo porque el parser js-yaml los descarta durante el paso de análisis. Esta es una limitación común en la mayoría de los parsers YAML. Si su archivo contiene comentarios importantes, mantenga una copia de seguridad antes de formatear. Los valores de datos siempre se preservan con precisión.

¿Por qué podría fallar el análisis de mi YAML?

Razones comunes incluyen: sangría incorrecta o inconsistente, mezcla de tabulaciones y espacios (YAML solo permite espacios), caracteres especiales sin comillas en valores de cadena, claves duplicadas, indicadores de cadena multilínea inválidos, y el 'problema de Noruega' donde valores como no, yes, on, off se interpretan como booleanos.

¿Cuál es la diferencia entre YAML y JSON?

YAML y JSON representan datos estructurados pero difieren significativamente. JSON usa llaves para objetos, corchetes para arrays y requiere claves entre comillas dobles. YAML usa sangría para la estructura, no requiere comillas para la mayoría de cadenas y soporta comentarios, cadenas multilínea y archivos multi-documento. JSON es ideal para APIs; YAML es el estándar para archivos de configuración.

Ejemplos de Código

// YAML formatting and validation using js-yaml
// Install: npm install js-yaml
const yaml = require('js-yaml');

// Validate YAML
function validateYaml(input) {
  try {
    yaml.load(input);
    return { valid: true };
  } catch (error) {
    return {
      valid: false,
      error: error.reason || error.message,
      line: error.mark ? error.mark.line + 1 : undefined,
      column: error.mark ? error.mark.column + 1 : undefined,
    };
  }
}

// Format/Beautify YAML
function formatYaml(input, options = {}) {
  const { indent = 2, sortKeys = false } = options;
  try {
    const parsed = yaml.load(input);
    const formatted = yaml.dump(parsed, {
      indent,
      sortKeys,
      lineWidth: -1,
      noRefs: true,
    });
    return { success: true, output: formatted };
  } catch (error) {
    return { success: false, error: error.message };
  }
}

// Minify YAML (convert to flow style)
function minifyYaml(input) {
  try {
    const parsed = yaml.load(input);
    const minified = yaml.dump(parsed, {
      flowLevel: 0,
      lineWidth: -1,
      noRefs: true,
    });
    return { success: true, output: minified };
  } catch (error) {
    return { success: false, error: error.message };
  }
}

// Example
const yamlStr = 'name: test\nvalue: 42\nitems:\n  - one\n  - two';
console.log('Valid:', validateYaml(yamlStr));
console.log('Formatted:', formatYaml(yamlStr));
console.log('Minified:', minifyYaml(yamlStr));

Herramientas relacionadas