This is technically beta code, but is quite stable. Don't let the
"beta" scare you. For news and documentation for 2.19.1.1, see the main web page for hhm.
DOWNLOADING NOTE: some browsers (notably lynx, and some versions
of netscape) have trouble saving html-helper-mode correctly: they
corrupt files with long lines. You'll have better luck if you can save
the file to disk without displaying it first (shift-click in Netscape,
capital D in lynx). Sorry about that, can't help buggy browsers.
I develop this code under emacs 19.29, so it should work fine
there. It should work fine on most modern emacs 19s, although
some not-so-old versions had a different completion behaviour.
Note if you save your files with C-xC-w (write-file)
then local-write-file-hooks isn't run, which means
timestamps don't update. (Even worse, the variable is cleared!).
C-xC-s (save-file) does run
the hook and the timestamps are updated. I don't understand why
write-file
doesn't run the local-write-file-hooks, but I recommend using
save-file instead.
XEmacs 19
I intend this code to work under XEmacs, and I've heard
occasional reports that it works.
GNU emacs 18
I think this code still works under emacs 18, but you should
definitely upgrade to 19. Now that the FSF boycott of Apple is
over, some enterprising person should get cracking on porting
emacs 19 to the Macintosh. To run under emacs 18, you will need
to have a definition of
add-hook
loaded, and you will need to have
auc-menu.el
installed.
Special Menu Note: there are two packages that provide the same
menuing interfaces: auc-menu and easymenu. Unfortunately, they don't
all work the same. Recent versions of GNU emacs 19 and XEmacs 19 both
come with easymenu as part of the standard lisp library. If you are
having menu troubles, verify that the shipped easymenu is being
loaded: not any versions of auc-menu or easymenu that you might have
lying around elsewhere (from auc-tex, in particular). Emacs 18 people
still need to use auc-menu (which just stubs the functions so they do nothing).
Changes
2.2 - rms cleanups
Improved docstrings, (provide 'html-mode) for 14 character filenames
2.3 - menus
Updated my location to @santafe.edu
Added menu support (using easymenu)
Changed format of cookie database a bit, renamed a few cookies
Added timezone to timestamp
2.4 - stupid bug fixes
2.5 - modularization
Added quot and # entities
Made <p>, <li>, <dd>, <dt> containers. Bleah!
Removed extraneous whitespace from <li>, etc. Changed default
indentation to account for this.
Removed emacs18 support (sorry! Time for you to upgrade.)
Reworked the keymap and menu scheme so types are modular, you
can add them later.. Lots
or reorganization of code, reordered cookie database, etc.
2.6 - emacs18 added in again
Added back in emacs18 support, grudgingly.
emacs18ers need auc-menu.el installed as "easymenu.el", and
some version of the add-hook function.
Changed the paragraph tag to include a newline
2.7 - HTML/2.0 compliance
Added full HTML/2.0 compliance: removed old tags, added in new ones.
Thanks, Marc!
2.8 - new indentation code
Added in html-helper-htmldtd-version for the skeleton
moved headers to C-cC-h to make C-cC-t free (why not before?)
run text-mode-hook, html-mode-hook, html-load-hook
change indentation logic around to make it clearer
new type of list item, end of items
give <select> and <option> stuff indentation like lists
new form cookies, courtesy of Marc
2.9 - menu cleanups
Added in a novice menu, on by default.
Cleaned up the menu presentation
MAJOR CHANGE in the cookie format: the 3rd argument is
now the menu string (it is also coerced into a symbol to make
the function.)
2.10
a bit more hilit19 code: headers, titles, forms (no logical styles)
move headers back from C-cC-h to C-cC-t. Sorry.
Update tempo insertions from (p . foo) to (p foo)
now looks in features to check for hilit19
if you have 'browse-url loaded (forthcoming code) then
M-C-q and a menu item will bring up your current file in your
browser. There's also url-at-point, but we'll leave that to the
user to bind. Should we save file first? Probably no.
skeletons and timestamps now on by default
2.11
More hilit19 changes: do comments right, change <h#> colouring
Moved timestamp-delimiter to C-cC-zt and
browse-url-of-file to C-cC-zv to make things better.
Mucked with menus: verbified, added in timestamps and toggling
to expert menu.
2.12
Better loading of easymenu and/or auc-menu
Change logic for checking if browse-url, hilit19 are loaded
Bind 'browse-url-at-point into keymap and menu
More hilit19 regexp changes
Call (easy-menu-add) and (easy-menu-remove) at the right times.
2.13
Changed all references to "cookie" into "tag"
Cleaned up doc strings
Fixed dumb easy-menu bug (affects XEmacs)
Look at html-helper-user-menu when building expert menu, allow
users to add things in.
2.14
Got rid of </p>, </li>, </dd>, </dt>.
Best as I can tell, these are optional and too confusing. I
might make them into an add-on package.
2.15
Added in Ulrik Dickow's font-lock support. Many thanks to him
for his great work and infinite patience.
2.16
Updated Ulriks' font-lock code.
2.17
Added table indentation
2.18
small change to hilit19 entity pattern
changed html-helper-htmldtd-version meaning to
include the entire comment.
2.19
Added html-helper-mode-version, changed the version
identification in the comments.