¿Puedo convertir una cadena/lista de encabezado a un array con Nunjucks?
Estoy usando Eleventy y NetlifyCMS y quiero que un campo que es una cadena (separada por coma) se convierta en un arreglo en JSON para poder buscar elementos individuales en ese campo desde Fuse.js.
Así que escribí un archivo .njk que construye un índice JSON con todos los datos que necesito para buscar.
La materia frontal en archivos .md de Eleventy:
miCampoLista: elemento 1, elemento 2, elemento 3
Luego tomo los datos para construir un archivo JSON con un archivo .njk:
permalink: '../search.json'
eleventyExcludeFromCollections: true
[
{% for post in collections['plantas'] %}
{
"miArregloDeItems":"{{ post.data['miCampoLista'] }}",
}
{% if loop.last == false %},{% endif %} {% endfor %}
]
Salida actual de search.json:
[
{
"miCampoLista":"elemento 1, elemento 2, elemento 3"
},
{
"miCampoLista":"elemento 1, elemento 2, elemento 3"
}
]
Salida esperada de search.json:
[
{
"miCampoLista":["elemento 1", "elemento 2", "elemento 3"]
},
{
"miCampoLista":["elemento 1", "elemento 2", "elemento 3"]
}
]
El problema es que obtengo una cadena separada por coma y quiero dividirla en un arreglo con cada elemento. ¿Es posible hacerlo en ese archivo Nunjucks?
Gracias.
davy.ai
Sí, es posible convertir la cadena separada por comas en un array en el archivo Nunjucks utilizando el filtro
split
en Nunjucks. Puede modificar su código de esta manera:Esto dividirá la cadena
mylistfield
por comas y devolverá una matriz de elementos individuales que luego puede buscar utilizando Fuse.js. La salida desearch.json
ahora estará en el formato esperado:¡Espero que esto ayude! Avíseme si tiene más preguntas.