Saltar al contenido
duxt

Varias versiones

Servir la misma documentación en varias refs, con selector y aviso.

Una ref se convierte en una versión. Apunta una fuente a etiquetas y cada una se publica, con un segmento de versión en la URL y una entrada en el selector.

Pasos

  1. Enumera las refs. Una cadena simple es una rama. Una etiqueta tiene que declararlo — git mantiene ambas en espacios de nombres separados, y pedir una etiqueta bajo refs/heads hace fallar la compilación.
    sources: [
      {
        repo: 'acme/api',
        path: 'docs',
        refs: [
          { branch: 'main', status: 'upcoming' },
          { tag: 'v2.0.0' },
          { tag: 'v1.4.0' },
          { tag: 'v0.9.0', status: 'eol' }
        ]
      }
    ],
    sourceOptions: { defaultRef: 'v2.0.0' }
    
  2. Nombra la predeterminada. defaultRef es la ref que se sirve sin prefijo de versión y a la que se dirige a los buscadores. Sin definir es la primera de la lista — que rara vez es lo que quieres cuando la lista empieza por una rama.
  3. Declara el ciclo de vida donde no puede deducirse. Semver ordena las etiquetas, así que «más antigua que la predeterminada» no necesita ayuda. Lo que no puede es situar una rama frente a una etiqueta: main es upcoming, y sin decirlo se le pide a su lector que actualice a una versión más antigua que la que está leyendo.
  4. Usa latest si no quieres editar esta lista en cada publicación. Se resuelve al compilar a la etiqueta semver más reciente de ese repositorio.
    refs: [{ branch: 'main', status: 'upcoming' }, 'latest']
    
  5. Marca el requisito de versión de una página en el texto, donde alguien que mira una versión no puede ver las demás:
    ### Reintentos :since{version="v2.0.0"}
    

Qué pasa con las versiones antiguas

Una versión no predeterminada lleva noindex y un canonical que apunta a la misma página en la predeterminada, y una versión eol abandona el sitemap por completo. Eso es lo que impide que un buscador ofrezca v0.9.0 cuando el lector quería la documentación de hoy — véase URL y versiones.

Lista de comprobación

  • Cada etiqueta está escrita como { tag: … }, no como cadena simple
  • defaultRef nombra la versión en la que deben aterrizar los lectores
  • Una rama de la lista lleva un status explícito
  • El selector muestra todas las versiones, con distintivo en las muertas
  • La página de una versión muerta no está en /sitemap.xml
¿Le ha resultado útil esta página?