Version 1.56 of package Htmlize has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Htmlize describes itself as: ============================================ Convert buffer text and decorations to HTML. ============================================ More at https://elpa.nongnu.org/nongnu/htmlize.html ## Summary: This package converts the buffer text and the associated decorations to HTML. Mail to <hnik...@gmail.com> to discuss features and additions. All suggestions are more than welcome. To use it, just switch to the buffer you want HTML-ized and type `M-x htmlize-buffer'. You will be switched to a new buffer that contains the resulting HTML code. You can edit and inspect this buffer, or you can just save it with C-x C-w. `M-x htmlize-file' will find a file, fontify it, and save the HTML version in FILE.html, without any additional intervention. `M-x htmlize-many-files' allows you to htmlize any number of files in the same manner. `M-x htmlize-many-files-dired' does the same for files marked in a dired buffer. ## Recent NEWS: htmlize NEWS -- history of user-visible changes. * Changes in htmlize 1.51 ** `htmlize-face-overrides' can be used to override Emacs's face definitions. * Changes in htmlize 1.47 ** GNU Emacs 21 is no longer supported. * Changes in htmlize 1.45 ** Correctly handle :inherit specifying a list of faces. (This bug would cause an error in AUX TeX buffers.) * Changes in htmlize 1.44 ** Faces specified in the `face' property are now prioritized the same way that Emacs redisplay does it: faces that appear earlier have precedence over those that appear later. * Changes in htmlize 1.41 ** `before-string' and `after-string' overlay properties are now recognized by htmlize and inserted into the HTML. ** Images specified by `display' property are recognized and inserted into the HTML as <img src=...>. *** If the image data comes from a file, the image will be rendered as a relative URI that would resolve to that file. Images whose data comes from a string will be rendered inline as data: URIs. The flag `htmlize-force-inline-images' can be used to force inserting *all* images inline as data: URIs. ** The image's ALT text will be the text that the `display' property is replacing, if non-empty. ** Arbitrary links can now be added to the generated HTML. If htmlize encounters buffer text with `htmlize-link' property, it will wrap the text in <a href="uri">...</a>. If the property value is a string, it is interpreted as the URI. If it is a list, it should be a property list whose currently only defined key is :uri.