v0.9.8 - Operaciones colapsables y restricciones de esquema OpenAPI, Prompt y agrupación LLMs, validación de enlaces e i18n en turco

Highlights

docmd v0.9.8 introduce mejoras significativas en la documentación de APIs con operaciones OpenAPI colapsables y restricciones detalladas de esquemas, añade soporte de prompts de sistema personalizados y agrupación por secciones al plugin de LLMs, resuelve casos especiales en la validación de enlaces, garantiza una salida stdio limpia para clientes MCP JSON-RPC y ofrece paridad completa de internacionalización con soporte para el idioma turco.

  • Operaciones y restricciones de esquema OpenAPI (@docmd/plugin-openapi): Los bloques de operaciones OpenAPI ahora son colapsables para una navegación más limpia en APIs extensas (PR #255 por @w666, cierra #254). Los parámetros y esquemas muestran restricciones de validación (mínimo/máximo, longitud de texto, patrones regex, campos requeridos) y elementos de listas con claridad.
  • Dependencias en tiempo de ejecución integradas para OpenAPI: Se incorporaron js-yaml y markdown-it directamente como dependencias de @docmd/plugin-openapi (PR #255 por @w666), eliminando errores de resolución en entornos independientes.
  • Configuración de prompt en plugin LLMs (@docmd/plugin-llms): Nueva propiedad de nivel superior prompt que antepone instrucciones y directrices personalizadas para asistentes de IA al archivo llms.txt. Los enlaces en llms.txt ahora están agrupados lógicamente por sección.
  • Validación de enlaces reforzada (@docmd/core): La validación elimina títulos opcionales en enlaces Markdown ([texto](url "título")) e ignora enlaces dentro de bloques de código (cierra #259). También resuelve rutas absolutas /assets/ y maneja imágenes con texto alternativo vacío sin falsos positivos (PR #256 por @Aryan007-dev, cierra #250 y #251).
  • Salida stdout limpia para MCP (@docmd/core): Se desactiva el banner TUI en stdout al ejecutar docmd mcp (PR #260 por @vishalhabib99). Las secuencias de escape ANSI ya no interfieren con la comunicación JSON-RPC en clientes como Claude Desktop y Cursor.
  • Paridad de internacionalización (i18n) y soporte en turco (@docmd/ui): Traducción completa al turco (tr.json, PR #258 por @KeuqS) y nuevo README.tr.md. Se armonizaron todas las claves de traducción en los 10 idiomas oficiales para las plantillas default y summer.
  • Subtítulos de imágenes mejorados (@docmd/ui): Los subtítulos de imágenes se presentan ahora con estilo cursivo centrado y ancho ajustado (fit-content), eliminando los bloques pesados con fondo (PR #253 por @w666, cierra #252).
  • Mantenimiento y seguridad: Actualización del grupo de dependencias npm (PR #257), actualización forzada de katex y sharp a versiones corregidas, y depuración de referencias internas en comentarios.

OpenAPI: Operaciones colapsables y restricciones de esquema (@docmd/plugin-openapi)

Contribución de @w666 en PR #255 (cierra el issue #254):

  • Bloques de operaciones colapsables: Las operaciones de la API pueden expandirse y colapsarse interactivamente, acompañadas de encabezados en la tabla de contenidos (TOC) para una navegación rápida.
  • Restricciones de validación de esquemas: Las tablas de esquemas de petición y respuesta detallan restricciones como:
    • Límites de longitud de cadenas (minLength, maxLength)
    • Rangos numéricos (minimum, maximum, exclusiveMinimum, exclusiveMaximum)
    • Expresiones regulares (pattern)
    • Distintivos visuales claros para campos obligatorios (required)
    • Especificaciones y tipos de elementos en arreglos
  • Cuerpos de petición referenciados: Resolución fluida de punteros $ref en cuerpos de petición y esquemas complejos.
  • Dependencias de ejecución: Inclusión directa de markdown-it y js-yaml.

Plugin LLMs — Configuración de Prompt y Agrupación por Secciones (@docmd/plugin-llms)

  • Prompt del sistema personalizado: Defina una cadena prompt en su configuración plugins.llms. Este prompt se añade al encabezado de /llms.txt para guiar a los modelos de lenguaje.
  • Agrupación de secciones: Las URLs de documentación en llms.txt se organizan bajo títulos Markdown coherentes con la jerarquía del sitio.

Validación de Enlaces Reforzada (@docmd/core)

El comando docmd validate y las herramientas MCP han sido optimizados:

  • Títulos de enlaces Markdown y bloques de código (Issue #259): Se retiran los atributos de título antes de verificar las rutas. Se ignoran los enlaces dentro de bloques delimitados por acentos graves o virgulillas, evitando falsas alarmas en código de ejemplo.
  • Rutas absolutas y textos alternativos vacíos (PR #256 por @Aryan007-dev, cierra #250, #251): Soporte regex para imágenes con texto alternativo vacío y resolución precisa de enlaces /assets/.
  • Propagación de exclusiones: Aplicación coherente de config.exclude durante la validación de enlaces.

Salida Stdout Limpia para Protocolo MCP JSON-RPC (@docmd/core)

Contribución de @vishalhabib99 en PR #260:

  • Se añadió 'mcp' al filtro de supresión de banner en packages/core/src/bin/docmd.ts.
  • La salida estándar queda reservada exclusivamente a mensajes JSON-RPC, eliminando errores de análisis en clientes externos como Claude Desktop y Cursor.

Paridad de Internacionalización (i18n) y Soporte en Turco (@docmd/ui)

  • Interfaz en turco (tr, PR #258 por @KeuqS): Traducción íntegra de la interfaz (tr.json).
  • Documentación en turco: Inclusión de README.tr.md y actualización del selector de idiomas en todos los READMEs.
  • Homogeneización de claves: Cobertura total de claves en los 10 idiomas oficiales.
  • Consistencia de plantillas: Tanto default como summer aplican etiquetas traducidas para temas, modo de enfoque y copiado.

Mejoras Visuales en Subtítulos de Imágenes (@docmd/ui)

Contribución de @w666 en PR #253 (cierra issue #252):

  • Se simplificó la presentación visual de los pies de foto o subtítulos de imágenes.
  • Ahora adoptan una alineación centrada con tipografía cursiva tenue y tamaño adaptado a la imagen.

Colaboradores de la Comunidad y Pull Requests

Agradecimiento especial a todos los colaboradores de la versión v0.9.8:

  • @w666 por PR #255 (operaciones colapsables OpenAPI, restricciones de esquema y dependencias en ejecución, cierra #254) y PR #253 (subtítulos cursivos centrados, cierra #252).
  • @Aryan007-dev por PR #256 (resolución de rutas /assets/ y textos alternativos vacíos en enlaces, cierra #250 y #251).
  • @KeuqS por PR #258 (catálogo de traducciones en turco y registro regional).
  • @vishalhabib99 por PR #260 (supresión de banner en stdout para docmd mcp).

Próximamente en 0.9.9

  • Comprobación de integridad de paquetes tras instalaciones previas por lotes.
  • Capacidades ampliadas en patrones .gitignore, incluyendo negaciones (!) y ficheros ignore en subdirectorios anidados.
  • Mejoras de rendimiento adicionales en indexación de búsqueda multilingüe.