Si la tarea se reintentó durante 10 minutos, lo más probable es que haya
quedado trabada en algún lado. Este cambio permite volver a compilar
sitios al cambiar el estado a espera y cancelarse a sí misma.
Como MetadataBelongsTo desciende de MetadataArray, al cambiar métodos de
MetadataArray tenemos efectos secundarios.
Esto es un hotfix, la solución correcta sería reimplementar
MetadataBelongsTo para que deje de ser un Array.
cuando separamos la lectura de datos de jekyll había faltado leer los
layouts para poder aplicarlos a la version preliminar. con este cambio
solo se leen cuando se los va a usar.
fixes#2006
esta validación de has_many no permite guardar el post si no coinciden
la cantidad de valores con los posts asociados, lo que funciona en casos
muy ideales y no deja que se pueda guardar el post desde el formulario.
el formulario envía un valor vacío para poder indicar que se quieren
borrar todos los artículos por limitaciones de http, pero también suma
un ítem vacío a la lista, con lo que la cantidad de posts encontrados
siempre es 1 menor.
de la misma forma, si la relación está rota porque uno de los posts
asociados ya no existe, no permite guardar sin dar mayor feedback. así
que por ahora dejamos que se puedan guardar.
agregué el método `Jekyll::Document#reset` para que no queden datos de
la versión anterior, porque jekyll mergea la información.
además, para evitar bugs en las plantillas, se mantienen los arrays
vacíos en el front matter para que se puedan seguir usando métodos de
arrays, como each y sort.
un artículo puede pertenecer y tener muchos artículos (una relación
poliamorosa de muchos a muchos)
también utilizamos asignación para aprovechar `value=`.
belongs_to indica que un artículo pertenece a otro, la relación inversa
es un has_many.
en este caso nos fuimos dando cuenta que las memoizaciones nos juegan en
contra, así que las vamos eliminando del código cuando no hacen falta.
utilizamos `value = value.filtrado` para aprovechar
`MetadataTemplate#value=` que guarda el valor anterior en
`MetadataTemplate#value_was` y nos permite comparar entre el valor
anterior y el actual.
una fecha en el futuro como 20213-01-01 es válida para ruby, pero jekyll
valida las fechas con cuatro digitos nada mas (issue pendiente :P), así
que tomaba el archivo con fecha en el futurísimo como un archivo sin
fecha.
fixes#1573fixes#1572