Permutaciones en la práctica

Las permutaciones barajan. Las enumeraciones eligen. Casi toda la variedad real de una plantilla bien escrita viene de las permutaciones — no de apilar sinónimos. Esta guía cubre la sintaxis, las reglas de separador y el patrón que casi todo el mundo pasa por alto: las listas seriales en títulos y encabezados.

Permutación simple

[a|b|c]

Por defecto:

  • entran todos los elementos;
  • el orden se baraja en cada render;
  • el separador es un solo espacio.

Ejemplos de salida: a b c, c a b, b c a.

Atajo de separador único

Para fijar el separador (y lastsep) de una vez:

[< and >a|b|c]

Salidas posibles: a and b and c, c and a and b. El atajo asigna la misma cadena a sep y a lastsep, así que todas las uniones se ven igual.

Configuración completa

La forma extensa da control total:

[<minsize=2;maxsize=4;sep=", ";lastsep=" and ">a|b|c|d|e]

Reglas:

  • minsize — número mínimo de elementos a emitir;
  • maxsize — número máximo de elementos a emitir;
  • sep — une todos los elementos menos el último par;
  • lastsep — une los dos últimos elementos (para un «A, B and C» natural).

Omite uno de los tamaños y el otro se completa solo:

  • solo minsize definido → maxsize pasa a ser «todos los disponibles»;
  • solo maxsize definido → minsize pasa a 1;
  • ambos mayores que la cantidad de elementos → se recortan al total;
  • el motor no puede elegir cero elementos. Para «quizá ninguna lista», envuelve la permutación en una rama vacía (ver abajo).

Separadores por elemento

Si necesitas más precisión que un sep/lastsep global, un elemento puede llevar el suyo:

[<, >Visa|Mastercard < and >|Skrill]

Aquí:

  • el separador global es ", ";
  • el elemento que sigue a Mastercard lleva su propio separador local " and ".

Los separadores por elemento son raros, pero útiles cuando un hueco concreto pide otro conector.

Espaciado automático del separador

Los separadores hechos de palabra reciben espacios automáticos a ambos lados:

[<and>a|b|c]

se comporta como:

a and b and c

Los separadores de puntuación no se espacian solos:

[<,>a|b|c]

produce:

a,b,c

Si quieres un espacio tras la coma, escríbelo explícitamente: [<, >a|b|c].

Listas opcionales

Como una permutación no puede emitir cero elementos, la forma de dejar una lista «quizá ausente» es envolver la permutación entera en una rama de enumeración vacía:

{|[<minsize=2;maxsize=3;sep=", ";lastsep=" and ">Postgres|Redis|Kafka|MongoDB]}

Salidas posibles: Postgres and Redis, Kafka, Postgres and Redis o una cadena vacía. Cuida los espacios alrededor — deja el espacio dentro de la rama cuando la lista pueda desaparecer.

Listas seriales en títulos, descripciones y encabezados

Este es el patrón que casi todo el mundo pasa por alto. Los títulos y los encabezados H2/H3 suelen prometer varios temas paralelos:

Benefits, Integrations, and How to Get Started

Eso no es una cadena congelada — es una lista de tres bloques de titular paralelos. Reconoce el patrón y escríbelo como permutación:

[<minsize=3;maxsize=3;sep=", ";lastsep=", and ">Benefits|Integrations|How to Get Started]

Bien, dentro de un marco de encabezado con hueco para la marca:

%product_name%: [<minsize=3;maxsize=3;sep=", ";lastsep=", and ">Benefits|Integrations|How to Get Started]

Mal:

%product_name%: {Benefits, Integrations, and How to Get Started|A Complete Guide for Teams}

Por qué la segunda forma es más débil:

  • trata una lista estructurada como una cadena congelada;
  • pierde el patrón de separador que el motor ya ofrece;
  • empuja al modelo hacia alternancia de cadenas enteras en vez de estructura reutilizable;
  • produce un puñado de variantes donde una permutación produciría decenas.

Usa el patrón de lista serial para:

  • títulos que enumeran tres promesas o más;
  • meta descriptions que nombran varios bloques del artículo;
  • encabezados H1/H2/H3 que listan temas de sección paralelos.

No lo uses cuando la secuencia es un procedimiento y debe mantener el orden:

Create an account, verify email, and make a deposit

Eso es una secuencia de pasos, no una lista de titular libremente permutable.

Las mayúsculas de los encabezados son cosa tuya

La regla habitual del cuerpo de texto dice que los elementos de una permutación empiecen en minúscula, porque el posprocesado pone mayúscula al inicio de frase.

Esa regla no vale para encabezados seriales en estilo de título. Cada elemento tiene que venir ya escrito en su caja de presentación:

[<minsize=3;maxsize=3;sep=", ";lastsep=", and ">Benefits|Integrations|How to Get Started]

y no:

[<minsize=3;maxsize=3;sep=", ";lastsep=", and ">benefits|integrations|how to get started]

El posprocesado no va a convertirte una lista de titular separada por comas a title case.

Errores frecuentes con permutaciones

No hagas estoPor quéHaz esto
Fijar en el código una lista de 4+ elementosEl orden fijo se convierte en huella en todos los renders.Usar una permutación, incluso con minsize=maxsize si el conjunto es obligatorio.
Congelar un titular serial en una sola cadenaPierde el patrón de separador y encoge drásticamente el espacio de variantes.Emitirlo como permutación con sep y lastsep.
Usar minsize=0El motor recorta el mínimo a 1; te quedas con una expectativa rota en silencio.Envolver la lista en {|[...]} para «quizá ninguna lista».
Terminar elementos con punto mientras sep=". "Puntuación doble: "fact. . next fact".Deja que el separador ponga la puntuación; los elementos, desnudos.
Añadir espacios a separadores de palabra que el motor ya espaciaRenderiza aandb al arreglar un problema que no existía.Confía en el espaciado automático; añade espacios solo con puntuación.
Escribir elementos con caja mezcladaEl texto renderizado sale con mayúsculas de aspecto aleatorio.Minúscula en cuerpo de texto, title case en encabezados. Coherente dentro de una permutación.
Hacer de cada elemento una frase entera con sujeto propioEl flujo serial se rompe — cada elemento se lee como un párrafo nuevo.Mantén los elementos a nivel de sintagma; ata el sujeto fuera de la permutación.

Checklist de permutaciones

  • Toda lista de 3+ elementos es una permutación, no una cadena congelada.
  • Las listas seriales de títulos y encabezados usan permutaciones con sep/lastsep explícitos.
  • Las listas opcionales van envueltas en {|[...]}, no intentadas con minsize=0.
  • Los elementos no terminan con puntuación que el separador ya aporta.
  • Las permutaciones de encabezado están escritas en su caja de presentación.
  • Las permutaciones de cuerpo empiezan en minúscula cuando el posprocesado va a capitalizar.
  • Todos los elementos de una permutación son gramaticalmente paralelos entre sí.

Con la estructura en su sitio, queda un último paso: la gramática, en sinonimización sin romper la gramáticaEN.


Continuar la serie