Hotfix: generación de citas en orden

This commit is contained in:
2026-03-07 06:33:39 +00:00
parent 98be1a0405
commit 2c594fb9f7

View File

@@ -506,13 +506,20 @@ export function NuevaBibliografiaModalContainer({
const engine = new CSL.Engine(sys as any, xmlStyle) const engine = new CSL.Engine(sys as any, xmlStyle)
engine.updateItems(Object.keys(cslItems)) engine.updateItems(Object.keys(cslItems))
const result = engine.makeBibliography() const result = engine.makeBibliography()
// result[0] contiene los metadatos, result[1] las citas formateadas
const meta = result?.[0] as { entry_ids?: string[][] } | undefined
const entries = (result?.[1] ?? []) as Array<string> const entries = (result?.[1] ?? []) as Array<string>
const byId = Object.keys(cslItems)
const citations: Record<string, string> = {} const citations: Record<string, string> = {}
for (let i = 0; i < byId.length; i++) {
const id = byId[i] // meta.entry_ids es un arreglo de arreglos: [["id-2"], ["id-1"], ...]
const sortedIds = meta?.entry_ids ?? []
for (let i = 0; i < entries.length; i++) {
const id = sortedIds[i]?.[0] // Sacamos el ID real de esta posición
if (!id) continue if (!id) continue
const cita = citeprocHtmlToPlainText(entries[i] ?? '') const cita = citeprocHtmlToPlainText(entries[i] ?? '')
citations[id] = cita citations[id] = cita
} }