Emacs: Xah HTML Mode
xah-html-mode.el
is a emacs major mode for HTML.

Get it by Donation
Goto paypal.com, send $32 to Xah@XahLee.org (be sure to include your correct email address. I need that to send it to you.)
Write in message area: xah-html-mode.el
Dependencies
(these are included when you buy xah html mode)
xah-replace-pairs.el
Emacs: Xah Replace Pairs, xah-replace-pairs.elxah-get-thing.el
Emacs: xah-get-thing.elxah-css-mode.el
Emacs: Xah CSS Modehtmlize.el
[2021-09-17 https://github.com/hniksic/emacs-htmlize ]
Manual Install
Put the file xah-html-mode.el
in ~/.emacs.d/lisp/
Put all dependent files in that dir.
Put this in your Emacs Init File:
(add-to-list 'load-path "~/.emacs.d/lisp/") (require 'xah-html-mode)
Features


Xah HTML Mode is more advanced than the html mode bundled in gnu emacs. It does not use gnu emacs html mode code.
- Syntax coloring based on visual code validation. The colors tells you if you have the correct syntax. Including, invalid/typo tag names, attribute names, or missing angle brackets.
- Tag insertion. Easily insert any tag, or around a text selection. Smartly wrap around character, word, line, or text block, or selection. Optionally add id or class tags.
- Tag navigation. Easily move to previous/next tag, or jump to matching open/close tag.
- Tag manipulation. Many command to delete current tag pair, or delete whole set of tags such as list or table, or convert html text to plain text. Also command to join elements.
- Most efficient key system for the commands. The most frequently used command has easy keys.
- HTML syntax color embedded programing language source code.
- Extract programing language source code into a separate buffer. Similar to org mode's babel feature.
Plus:
- 90+ commands for working with HTML.
- Convert text blocks to paragraphs.
- Convert lines to list, definition list, table, or convert them back to text format similar to markdown.
- Convert image path to image.
- Remove, join, HTML tags.
- Navigate HTML tags, to prev/next openining tag or jump to matching tag.
- Convert HTML to text.
- Extract URL in a text selection.
- Replace HTML entities to unicode characters or reverse..
- Percent encode/decode URL.
- Disable JavaScript tags of unknown html.
- Reformat single-line html file to be readable.