Is there a better way to do this? blogs-metadata is like ((tag1 . (blogpost1 ...)) ...)
(alist with key as tags and list of blog entries as body).
(let* ((tags (delete-dups
(flatten-list
(seq-keep (lambda (post)
(let-alist post .tags))
blogs-metadata))))
(blogs-per-tags
(mapcar (lambda (tag)
(cons tag (seq-keep (lambda (blog)
(let-alist blog
(when (member tag .tags)
blog)))
blogs-metadata)))
tags)))
(sxml (mapcar (lambda (tag)
`(div (@ (class "tag-container"))
(h2 (@ (id ,(car tag))) ,(car tag))
(ul ,(mapcar (lambda (blog)
(let-alist blog
`(li (a (@ (href ,.link)) ,.title))))
(cdr tag)))))
blogs-per-tags)))


