I've found lexic-format-online-etym, but it misses support of some tags like <ol>, <li> etc.
I've achieved somewhat better results using shr.el:
(defun lexic-format-shr (entry &optional _expected-word)
(with-temp-buffer
(insert (plist-get entry :info))
(let ((tree (libxml-parse-html-region (point-min) (point-max))))
(erase-buffer)
(shr-insert-document tree))
(buffer-string)))