DefinitionList = function(dl) local terms = {} local inlines = {} local blocks = {} local sorted = {} for i, item in ipairs(dl.content) do local term = string.upper(pandoc.utils.stringify(item[1])) --string.upper() is used because all the terms were not capitalized in the example table.insert(terms, term) inlines[term] = item[1] blocks[term] = item[2] end table.sort(terms) for i, term in ipairs(terms) do table.insert(sorted, {inlines[term], blocks[term]}) end return pandoc.DefinitionList(sorted) end