;ELC   
;;; compiled by amu@mit.edu on Tue Dec 17 21:38:06 1996
;;; from file /afs/athena.mit.edu/user/a/m/amu/elisp/html-helper-mode.el
;;; emacs version 19.30.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`html-helper-mode.el' was compiled for Emacs 19.29 or later"))


(byte-code "O\fB" ["$Revision: 2.19 $" 11 15 html-helper-mode-version current-load-list] 3)
#@42 *The default author string of each file.
(defvar html-helper-address-string "" (#$ . -591))
#@43 *If not nil, then use the full HTML menu.
(defvar html-helper-use-expert-menu nil (#$ . -689))
#@69 *If not nil, then modify `local-write-file-hooks' to do timestamps.
(defvar html-helper-do-write-file-hooks t (#$ . -790))
#@76 *If not nil, then insert `html-helper-new-buffer-strings' for new buffers.
(defvar html-helper-build-new-buffer t (#$ . -919))
#@36 *Version of HTML DTD you're using.
(defvar html-helper-htmldtd-version "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n" (#$ . -1052))
#@251 *Extra items to put in the HTML expert menu.
The value of this symbol is appended to the beginning of the expert
menu that is handed off to easymenu for definition. It should be a
list of vectors or lists which themselves are vectors (for submenus).
(defvar html-helper-user-menu nil (#$ . -1197))
#@51 *Basic indentation size used for list indentation
(defvar html-helper-basic-offset 2 (#$ . -1501))
#@107 *Indentation of lines that follow a <li> item.
Default is 4, the length of things like "<li>" and "<dd>".
(defvar html-helper-item-continue-indent 4 (#$ . -1607))
#@66 *If not nil, the indentation code for html-helper is turned off.
(defvar html-helper-never-indent nil (#$ . -1776))
#@45 *Hook run when html-helper-mode is started.
(defvar html-helper-mode-hook nil (#$ . -1898))
#@44 *Hook run when html-helper-mode is loaded.
(defvar html-helper-load-hook nil (#$ . -1996))
#@84 *Hook called for timestamp insertion.
Override this for your own timestamp styles.
(defvar html-helper-timestamp-hook (quote html-helper-default-insert-timestamp) (#$ . -2093))
#@126 *Template for new buffers.
Inserted by `html-helper-insert-new-buffer-strings' if
`html-helper-build-new-buffer' is set to t
(defvar html-helper-new-buffer-template (quote (html-helper-htmldtd-version "<html> <head>\n" "<title>" p "</title>\n</head>\n\n" "<body>\n" "<h1>" p "</h1>\n\n" p "\n\n<hr>\n" "<address>" html-helper-address-string "</address>\n" html-helper-timestamp-start html-helper-timestamp-end "\n</body> </html>\n")) (#$ . -2277))
#@248 *Start delimiter for timestamps.
Everything between `html-helper-timestamp-start' and
`html-helper-timestamp-end' will be deleted and replaced with the output
of the functions `html-helper-timestamp-hook' if
`html-helper-do-write-file-hooks' is t
(defvar html-helper-timestamp-start "<!-- hhmts start -->\n" (#$ . -2732))
#@247 *End delimiter for timestamps.
Everything between `html-helper-timestamp-start' and
`html-helper-timestamp-end' will be deleted and replaced with the output
of the function `html-helper-insert-timestamp' if
`html-helper-do-write-file-hooks' is t
(defvar html-helper-timestamp-end "<!-- hhmts end -->" (#$ . -3061))
#@185 *List of tag types to install when html-helper-mode is first loaded.
If you want to not install some type of tag, override this variable.
Order is significant: menus go in this order.
(defvar html-helper-types-to-install (quote (anchor list header logical phys textel entity image head form)) (#$ . -3383))
#@43 I'll do minimal emacs18 support, grumble.
(defvar html-helper-emacs18 (byte-code "! ! \n 	Ù" [boundp emacs-version epoch::version "19"] 2) (#$ . 3696))
(byte-code "!ď" [require tempo nil (byte-code "!" [require auc-menu] 2) ((error (byte-code "!" [require easymenu] 2)))] 3)
#@31 Syntax table for html-helper.
(defvar html-helper-mode-syntax-table nil (#$ . 4002))
(byte-code "& \n!#####" [html-helper-mode-syntax-table make-syntax-table text-mode-syntax-table modify-syntax-entry 60 "(>  " 62 ")<  " 34 ".   " 92 39 "w   "] 4)
#@46 Abbrev table used while in html-helper-mode.
(defvar html-helper-mode-abbrev-table nil (#$ . 4287))
(define-abbrev-table (quote html-helper-mode-abbrev-table) nil)
#@24 Keymap for html-helper
(defvar html-helper-mode-map (make-sparse-keymap) (#$ . 4457))
#@75 Menu for html-helper. Clobbered and rebuilt by `html-helper-install-menu'
(defvar html-helper-mode-menu nil (#$ . 4549))
#@112 Alist: type of tag -> keymap, keybinding, menu, menu string.
Add to this with `html-helper-add-type-to-alist'.
(defconst html-helper-type-alist nil (#$ . 4677))
#@61 Accessor function for alist: for type, return keymap or nil
(defalias 'html-helper-keymap-for #[(type) "	@" [type html-helper-type-alist] 2 (#$ . 4844)])
#@65 Accessor function for alist: for type, return keybinding or nil
(defalias 'html-helper-key-for #[(type) "	A@" [type html-helper-type-alist] 2 (#$ . 5008)])
#@59 Accessor function for alist: for type, return menu or nil
(defalias 'html-helper-menu-for #[(type) "	\n8" [2 type html-helper-type-alist] 3 (#$ . 5174)])
#@65 Accessor function for alist: for type, return menustring or nil
(defalias 'html-helper-menu-string-for #[(type) "	\n8" [3 type html-helper-type-alist] 3 (#$ . 5338)])
#@74 Helper function for building menus from submenus: add on string to menu.
(defalias 'html-helper-normalized-menu-for #[(type) "	!	!!B" [html-helper-menu-string-for type eval html-helper-menu-for] 4 (#$ . 5515)])
#@139 Add a type specification to the alist.
The spec goes (type . (keymap-symbol keyprefix menu-symbol menu-string)).
See code for an example.
(defalias 'html-helper-add-type-to-alist #[(type) "	B" [type html-helper-type-alist] 2 (#$ . 5737)])
(mapcar (quote html-helper-add-type-to-alist) (quote ((entity nil nil html-helper-entity-menu "Insert Character Entities") (textel nil nil html-helper-textel-menu "Insert Text Elements") (head html-helper-head-map "" html-helper-head-menu "Insert Structural Elements") (header html-helper-header-map "" html-helper-header-menu "Insert Headers") (anchor html-helper-anchor-map "" html-helper-anchor-menu "Insert Hyperlinks") (logical html-helper-logical-map "" html-helper-logical-menu "Insert Logical Styles") (phys html-helper-phys-map "" html-helper-phys-menu "Insert Physical Styles") (list html-helper-list-map "\f" html-helper-list-menu "Insert List Elements") (form html-helper-form-map "" html-helper-form-menu "Insert Form Elements") (image html-helper-image-map "	" html-helper-image-menu "Insert Inlined Images"))))
#@132 The types that have been installed (used when building menus).
There is no support for removing a type once it has been installed.
(defconst html-helper-installed-types nil (#$ . 6827))
#@180 Install a new tag type: add it to the keymap, menu structures, etc.
For this to work, the type must first have been added to the list of types
with html-helper-add-type-to-alist.
(defalias 'html-helper-install-type #[(type) "	B!!!!	I 	L	!\f@ 	 L	!#I 	#R L," [type html-helper-installed-types html-helper-keymap-for html-helper-key-for html-helper-menu-for html-helper-menu-string-for menu-string menu key keymap nil define-prefix-command html-helper-emacs18 make-sparse-keymap define-key html-helper-mode-map eval] 5 (#$ . 7020)])
(byte-code "\n\"\"" [mapcar html-helper-install-type html-helper-types-to-install #[(l) "	\n@\nA@#" [define-key html-helper-mode-map l] 4] (("" tempo-forward-mark) ("" tempo-backward-mark) ("" tempo-complete-tag))] 3)
#@38 Keymap for extra HTML mode functions
(defvar html-helper-mode-functions-map nil (#$ . 7841))
(byte-code "!#	#! ##!- 	#!A !A 	#" [define-prefix-command html-helper-mode-functions-map define-key html-helper-mode-map "" "t" html-helper-insert-timestamp-delimiter-at-point html-helper-never-indent "	" html-helper-indent-command "" newline-and-indent fboundp browse-url-of-file "v" boundp browse-url-browser-function "u"] 4)
#@34 List of tags used in completion.
(defvar html-helper-tempo-tags nil (#$ . 8317))
#@193 Given a string, downcase it and replace spaces with -.
We use this to turn menu entries into good symbols for functions.
It's not entirely successful, but fortunately emacs lisp is forgiving.
(defalias 'html-helper-string-to-symbol #[(input-string) "	!GSV# \nH\" \nIS	 \nP*" [copy-sequence input-string s l 0 char-equal 32 45 "html-"] 4 (#$ . 8405)])
#@223 Add a new tag to html-helper-mode.
Builds a tempo-template for the tag and puts it into the
appropriate keymap if a key is requested. Format:
`(html-helper-add-tag '(type keybinding completion-tag menu-name template doc)'
(defalias 'html-helper-add-tag #[(l) "@	!	!A@88\n8\f8\n!\f%	>> Ԃo ;^ U !#^ #o \n#!BL.	" [l type html-helper-keymap-for keymap html-helper-menu-for menu key 2 completer 3 name 4 tag 5 doc tempo-define-template html-helper-string-to-symbol html-helper-tempo-tags command html-helper-installed-types t define-key eval html-helper-mode-map vector] 6 (#$ . 8785)])
(byte-code "M\"" [html-helper-add-cookie html-helper-add-tag mapcar ((entity "#" "&#" "Ascii Code" ("&#" (r "Ascii: ") ";")) (entity "\"" "&quot;" "Quotation mark" ("&quot;")) (entity "$" "&reg;" "Registered" ("&reg;")) (entity "@" "&copy;" "Copyright" ("&copy;")) (entity "-" "&shy;" "Soft Hyphen" ("&shy;")) (entity " " "&nbsp;" "Nonbreaking Space" ("&nbsp;")) (entity "&" "&amp;" "Ampersand" ("&amp;")) (entity ">" "&gt;" "Greater Than" ("&gt;")) (entity "<" "&lt;" "Less Than" ("&lt;")) (logical "b" "<blockquote>" "Blockquote" ("<blockquote>" (r "Quote: ") "</blockquote>")) (logical "c" "<code>" "Code" ("<code>" (r "Code: ") "</code>")) (logical "x" "<samp>" "Sample" ("<samp>" (r "Sample code") "</samp>")) (logical "r" "<cite>" "Citation" ("<cite>" (r "Citation: ") "</cite>")) (logical "k" "<kbd>" "Keyboard Input" ("<kbd>" (r "Keyboard: ") "</kbd>")) (logical "v" "<var>" "Variable" ("<var>" (r "Variable: ") "</var>")) (logical "d" "<dfn>" "Definition" ("<dfn>" (r "Definition: ") "</dfn>")) (logical "a" "<address>" "Address" ("<address>" r "</address>")) (logical "e" "<em>" "Emphasized" ("<em>" (r "Text: ") "</em>")) (logical "s" "<strong>" "Strong" ("<strong>" (r "Text: ") "</strong>")) (logical "p" "<pre>" "Preformatted" ("<pre>" (r "Text: ") "</pre>")) (phys "s" "<strike>" "Strikethru" ("<strike>" (r "Text: ") "</strike>")) (phys "u" "<u>" "Underline" ("<u>" (r "Text: ") "</u>")) (phys "i" "<i>" "Italic" ("<i>" (r "Text: ") "</i>")) (phys "b" "<b>" "Bold" ("<b>" (r "Text: ") "</b>")) (phys "f" "<tt>" "Fixed" ("<tt>" (r "Text: ") "</tt>")) (header "6" "<h6>" "Header 6" ("<h6>" (r "Header: ") "</h6>")) (header "5" "<h5>" "Header 5" ("<h5>" (r "Header: ") "</h5>")) (header "4" "<h4>" "Header 4" ("<h4>" (r "Header: ") "</h4>")) (header "3" "<h3>" "Header 3" ("<h3>" (r "Header: ") "</h3>")) (header "2" "<h2>" "Header 2" ("<h2>" (r "Header: ") "</h2>")) (header "1" "<h1>" "Header 1" ("<h1>" (r "Header: ") "</h1>")) (form "o" "<option>" "Option" (& "<option>" >)) (form "v" "<option value" "Option with Value" (& "<option value=\"" (r "Value: ") "\">" >)) (form "s" "<select" "Selections" ("<select name=\"" (p "Name: ") "\">\n<option>" > "\n</select>") "<select") (form "z" "<input" "Reset Form" ("<input type=\"RESET\" value=\"" (p "Reset button text: ") "\">")) (form "b" "<input" "Submit Form" ("<input type=\"SUBMIT\" value=\"" (p "Submit button text: ") "\">")) (form "i" "<input" "Image Field" ("<input type=\"IMAGE\" name=\"" (p "Name: ") "\" src=\"" (p "Image URL: ") "\">")) (form "h" "<input" "Hidden Field" ("<input type=\"HIDDEN\" name=\"" (p "Name: ") "\" value=\"" (p "Value: ") "\">")) (form "p" "<textarea" "Text Area" ("<textarea name=\"" (p "Name: ") "\" rows=\"" (p "Rows: ") "\" cols=\"" (p "Columns: ") "\">" r "</textarea>")) (form "c" "<input" "Checkbox" ("<input type=\"CHECKBOX\" name=\"" (p "Name: ") "\">")) (form "r" "<input" "Radiobutton" ("<input type=\"RADIO\" name=\"" (p "Name: ") "\">")) (form "t" "<input" "Text Field" ("<input type=\"TEXT\" name=\"" (p "Name: ") "\" size=\"" (p "Size: ") "\">")) (form "f" "<form" "Form" ("<form action=\"" (p "Action: ") "\" method=\"" (p "Method: ") "\">\n</form>\n")) (list "t" "<dt>" "Definition Item" (& "<dt>" > (p "Term: ") "\n<dd>" > (r "Definition: "))) (list "l" "<li>" "List Item" (& "<li>" > (r "Item: "))) (list "r" "<dir>" "DirectoryList" (& "<dir>" > "\n<li>" > (r "Item: ") "\n</dir>" >)) (list "m" "<menu>" "Menu List" (& "<menu>" > "\n<li>" > (r "Item: ") "\n</menu>" >)) (list "o" "<ol>" "Ordered List" (& "<ol>" > "\n<li>" > (r "Item: ") "\n</ol>" >)) (list "d" "<dl>" "Definition List" (& "<dl>" > "\n<dt>" > (p "Term: ") "\n<dd>" > (r "Definition: ") "\n</dl>" >)) (list "u" "<ul>" "Unordered List" (& "<ul>" > "\n<li>" > (r "Item: ") "\n</ul>" >)) (anchor "n" "<a name=" "Link Target" ("<a name=\"" (p "Anchor name: ") "\">" (r "Anchor text: ") "</a>")) (anchor "l" "<a href=" "Hyperlink" ("<a href=\"" (p "URL: ") "\">" (r "Anchor text: ") "</a>")) (image "a" nil "Aligned Image" ("<img align=\"" (r "Alignment: ") "\" src=\"" (r "Image URL: ") "\">")) (image "i" "<img src=" "Image" ("<img src=\"" (r "Image URL: ") "\">")) (image "e" "<img align=" "Aligned Image With Alt. Text" ("<img align=\"" (r "Alignment: ") "\" src=\"" (r "Image URL: ") "\" alt=\"" (r "Text URL: ") "\">")) (image "t" "<img alt=" "Image With Alternate Text" ("<img alt=\"" (r "Text URL: ") "\" src=\"" (r "Image URL: ") "\">")) (textel "=" nil "Horizontal Line" (& "<hr>\n")) (textel "" nil "Line Break" ("<br>\n")) (textel "" nil "Paragraph" ("<p>\n")) (head "H" "<head>" "Head" ("<head>\n" "</head>\n")) (head "B" "<body>" "Body" ("<body>\n" "</body>\n")) (head "i" "<isindex>" "Isindex" ("<isindex>\n")) (head "n" "<nextid>" "Nextid" ("<nextid>\n")) (head "h" "<meta http-equiv=" "HTTP Equivalent" ("<meta http-equiv=\"" (p "Equivalent: ") "\" content=\"" (r "Content: ") "\">\n")) (head "m" "<meta name=" "Meta Name" ("<meta name=\"" (p "Name: ") "\" content=\"" (r "Content: ") "\">\n")) (head "l" "<link" "Link" ("<link href=\"" p "\">")) (head "b" "<base" "Base" ("<base href=\"" r "\">")) (head "t" "<title>" "Title" ("<title>" (r "Document title: ") "</title>")))] 3)
#@62 Insert a new item, either in a regular list or a dictionary.
(defalias 'html-helper-smart-insert-item #[(&optional arg) "#!) ! !)" [t case-fold-search re-search-backward "<li>\\|<dt>\\|<ul>\\|<ol>\\|<dd>\\|<menu>\\|<dir>\\|<dl>" nil looking-at "<dt>\\|<dl>\\|<dd>" tempo-template-html-definition-item arg tempo-template-html-list-item] 4 (#$ . 14641) "*P"])
(byte-code "!\f 	#! B" [boundp html-helper-list-map define-key "i" html-helper-smart-insert-item html-helper-list-menu ["List Item" html-helper-smart-insert-item t]] 4)
#@74 Menu for novices, only installed if `html-helper-use-expert-menu is nil'
(defvar html-helper-novice-menu (quote ("HTML" ["Insert Paragraph" tempo-template-html-paragraph t] ["Insert Hyperlink" tempo-template-html-hyperlink t] ["Insert Big Header" tempo-template-html-header-2 t] ["Insert Unordered List" tempo-template-html-unordered-list t] ["Insert List Item" html-helper-smart-insert-item t] ["Insert Inlined Image" tempo-template-html-image-with-alternate-text t] ["Turn on Expert Menu" html-helper-toggle-expert-menu t])) (#$ . 15211))
#@64 Return the proper menu. Looks at `html-helper-use-expert-menu'
(defalias 'html-helper-menu #[nil "  \n" [html-helper-use-expert-menu html-helper-expert-menu html-helper-novice-menu] 1 (#$ . 15758)])
#@133 Rebuild and install the HTML menu (using `easy-menu-define').
If `html-helper-use-expert-menu' is nil, then just use a novice menu.
(defalias 'html-helper-rebuild-menu #[nil " 	!! B#	$	\")" [html-helper-menu menu easy-menu-remove boundp html-helper-mode-menu-symbol nil current-load-list put variable-documentation "HTML menus" easy-menu-do-define html-helper-mode-map easy-menu-add] 5 (#$ . 15970)])
#@65 Toggle full HTML menus. Optional arg acts like minor-mode args.
(defalias 'html-helper-toggle-expert-menu #[(&optional arg) "	 	? !V " [arg html-helper-use-expert-menu prefix-numeric-value 0 html-helper-rebuild-menu] 2 (#$ . 16407) "P"])
(byte-code "!\f C\"" [fboundp browse-url-of-file append html-helper-novice-menu ["Load This Buffer in Browser" browse-url-of-file t]] 3)
#@137 This menu is based on the current value of `html-helper-installed-types'.
This function can be called again, it redoes the entire menu.
(defalias 'html-helper-expert-menu #[nil "	B\f	\"! 	B!+ 	!+ 	#	B	B\"	B" [nil html-helper-mode-menu ["Turn on Novice Menu" html-helper-toggle-expert-menu t] append html-helper-user-menu fboundp browse-url-of-file ["Load this Buffer in Browser" browse-url-of-file t] boundp browse-url-browser-function vector "Browse URL at point" t ["Insert Timestamp Delimiter" html-helper-insert-timestamp-delimiter-at-point t] mapcar #[(type) "	!\nB" [html-helper-normalized-menu-for type html-helper-mode-menu] 2] html-helper-installed-types "HTML"] 5 (#$ . 16808)])
(byte-code " ! \fB! \fB!$ \fB!1 	\fB!F 	\n%\fB!Z 	\n$\fB" [html-helper-rebuild-menu boundp html-helper-any-list-item-start "<li>\\|<dt>\\|<dd>\\|<option\\|<th>\\|<td>" current-load-list html-helper-any-list-item-end "</li>\\|</dt>\\|</dd>\\|</th>\\|</td>" html-helper-any-list-start "<dl>\\|<ul>\\|<ol>\\|<menu>\\|<dir>\\|<select\\|<table\\|<tr>" html-helper-any-list-end "</dl>\\|</ul>\\|</ol>\\|</menu>\\|</dir>\\|</select>\\|</table>\\|</tr>" html-helper-any-list format "\\(%s\\)\\|\\(%s\\)\\|\\(%s\\)\\|\\(%s\\)" html-helper-indentation-list "\\(%s\\)\\|\\(%s\\)\\|\\(%s\\)"] 6)
#@33 limit on how far back we search
(defvar html-helper-search-limit 2000 (#$ . 18185))
#@74 Return the symbol the last match (against `html-helper-any-list') found.
(defalias 'html-helper-context-symbol #[nil "  ÇĔ ŇƔ Ǉȇ" [1 list-start 2 list-end 3 item-start 4 item-end error] 1 (#$ . 18275)])
#@333 Figure out the last list-type tag before point relevant to indentation.
Returns 'item-start if the last list tag is a list item start
        'start      if the last list tag is the start of a list
        'end        if the last list tag is the end of a list.
Ignores list item ends, because those aren't reliable for indentation.
(defalias 'html-helper-guess-prev-context #[nil "e`Z]	#   +B" [html-helper-search-limit lim re-search-backward html-helper-indentation-list t html-helper-context-symbol context current-indentation] 5 (#$ . 18505)])
(defalias 'html-helper-print-prev-context #[nil " \"" [message "%s" html-helper-guess-prev-context] 3 nil nil])
#@55 If t, indent will print out information as a message.
(defvar html-helper-print-indent-info nil (#$ . 19188))
#@293 Command for indenting HTML to the appropriate column.
Calls `html-helper-indent' which tries to examine how many levels down
in nested lists we are and does the appropriate indentation.'
See also `html-helper-basic-offset', `html-helper-item-continue-indent',
and `html-helper-never-indent'.
(defalias 'html-helper-indent-command #[nil " " [html-helper-indent] 1 (#$ . 19305) nil])
#@33 Indentation workhorse function.
(defalias 'html-helper-indent #[nil "?  y`` `| @\nA=0 M =< M =K \\M !  \n=g \n=x =x Z \n= = ZZ \n= Z \n= = \\ = \\ \n%W \"\f!bi W  ." [html-helper-never-indent point-marker 0 bol m back-to-indentation html-helper-guess-prev-context where prev-context nil this-context previ list-end item-start list-start html-helper-basic-offset newi looking-at html-helper-any-list html-helper-context-symbol item-end html-helper-item-continue-indent html-helper-print-indent-info message "Last Context: %s, This Context: %s, Previous: %s New: %s" indent-to marker-position current-indentation] 7 (#$ . 19695)])
#@62 Passed to tempo-use-tag-list, used to find tags to complete.
(defvar html-helper-completion-finder (byte-code " " [html-helper-emacs18 html-helper-emacs18-completion-finder "\\(\\(<\\|&\\).*\\)\\="] 1) (#$ . 20499))
#@144 Unfortunately emacs18 doesn't support \= in regexps, so we do this hack.
If you have problems with it, maybe you should upgrade to emacs19 :-)
(defalias 'html-helper-emacs18-completion-finder #[nil "`e^#`){	*B" [nil where re-search-backward "<\\|&" 100 t s] 6 (#$ . 20729)])
#@279 Basic function for updating timestamps.
It finds the timestamp in the buffer by looking for
`html-helper-timestamp-start', deletes all text up to
`html-helper-timestamp-end', and runs `html-helper-timestamp-hook' which
will should insert an appropriate timestamp in the buffer.
(defalias 'html-helper-update-timestamp #[nil "db	# !D `	G\\#% `GZ	5 !C 	|	b!*)" [search-backward html-helper-timestamp-start nil t message "timestamp delimiter start was not found" search-forward html-helper-timestamp-end ts-end ts-start "timestamp delimiter end was not found. Type C-c C-t to insert one." run-hooks html-helper-timestamp-hook] 5 (#$ . 21025)])
#@39 Default timestamp insertion function.
(defalias 'html-helper-default-insert-timestamp #[nil " 	O A@	Oɱ)" [current-time-string time "Last modified: " 0 20 current-time-zone " " -4 nil "\n"] 7 (#$ . 21712)])
#@111 Simple function that inserts timestamp delimiters at point.
Useful for adding timestamps to existing buffers.
(defalias 'html-helper-insert-timestamp-delimiter-at-point #[nil "c	c" [html-helper-timestamp-start html-helper-timestamp-end] 1 (#$ . 21937) nil])
(tempo-define-template "html-skeleton" html-helper-new-buffer-template nil "Insert a skeleton for a HTML document")
#@42 Insert `html-helper-new-buffer-strings'.
(defalias 'html-helper-insert-new-buffer-strings #[nil " " [tempo-template-html-skeleton] 1 (#$ . 22320)])
#@740 Mode for editing HTML documents.
For more documentation and the newest version, 
see http://www.santafe.edu/~nelson/tools/

The main function html-helper-mode provides is a menu and keybindings
for the HTML tags one inserts when writing HTML documents. Selecting
the menu item or typing the key sequence for a command inserts the
corresponding tag and places point in the right place. If a prefix
argument is supplied, the tags is instead wrapped around the region.
Alternately, one can type in part of the tag and complete it with M-TAB.

There is also code for indentation, timestamps, skeletons for new
documents, and lots of other neat features.

\{html-helper-mode-map}
Written by nelson@santafe.edu, http://www.santafe.edu/~nelson/

(defalias 'html-helper-mode #[nil " \n!!\n!!!!! \": \n#a K !a !!!\f$\"% \")  U   \n\"!!!" [kill-all-local-variables use-local-map html-helper-mode-map html-helper-mode-abbrev-table local-abbrev-table set-syntax-table html-helper-mode-syntax-table "HTML helper" mode-name html-helper-mode major-mode make-local-variable comment-start comment-end comment-column comment-start-skip indent-line-function string-match "XEmacs\\|Lucid" emacs-version put font-lock-keywords-case-fold-search t "19.28.89" font-lock-defaults (html-helper-font-lock-keywords t t) font-lock-keywords font-lock-no-comments html-helper-font-lock-keywords "<!-- " " -->" "<!--[ 	]*" 0 html-helper-indent tempo-use-tag-list html-helper-tempo-tags html-helper-completion-finder html-helper-do-write-file-hooks add-hook local-write-file-hooks html-helper-update-timestamp html-helper-build-new-buffer buffer-size html-helper-insert-new-buffer-strings easy-menu-add html-helper-menu run-hooks text-mode-hook html-mode-hook html-helper-mode-hook] 4 (#$ . 22477) nil])
(byte-code " \"E ! \"\f!  \"\f!+ \"\f!6 \"\f!A \") !M B#!b B#!w \nB#\n ! B#! B#" [string-match "XEmacs\\|Lucid" emacs-version #[(face) "!\f \n! \n > \n!\n!?" [fboundp facep face face-list make-face face-differs-from-default-p] 2] change-it html-helper-bold-face copy-face bold html-helper-italic-face italic html-helper-underline-face set-face-underline-p t font-lock-variable-name-face set-face-foreground "salmon" font-lock-reference-face "violet" boundp current-load-list put variable-documentation "Face used as bold.  Typically `bold'." "Face used as italic.  Typically `italic'." underline "Face used as underline.  Typically `underline'." "19.28.89" font-lock-doc-string-face "Face to use for variable names -- and some HTML keywords." "Face to use for references -- including HTML hyperlink texts."] 4)
#@58 Additional expressions to highlight in HTML helper mode.
(defvar html-helper-font-lock-keywords (byte-code "R̰PذFذFذFذF." ["\\(h1\\|title\\)\\([ 	\n]+[^>]+\\)?" "\\(b\\|h[2-4]\\|strong\\)\\([ 	\n]+[^>]+\\)?" "\\(address\\|cite\\|em\\|i\\|var\\)\\([ 	\n]+[^>]+\\)?" "\\([^<]\\|<\\([^/]\\|/\\([^bhs]\\|" "b[^>]\\|" "h\\([^2-4]\\|[2-4][^>]\\)\\|" "s\\([^t]\\|t[^r]\\)\\)\\)\\)" "\\([^<]\\|<\\([^/]\\|/\\([^aceiv]\\|" "a\\([^d]\\|d[^d]\\)\\|" "c\\([^i]\\|i[^t]\\)\\|" "e\\([^m]\\|m[^>]\\)\\|" "i[^>]\\|" "v\\([^a]\\|a[^r]\\)\\)\\)\\)" "\\([^<]\\|<\\([^/]\\|/\\([^ht]\\|" "h[^1]\\|t\\([^i]\\|i[^t]\\)\\)\\)\\)" not-tend not-iend not-bend iword bword tword ("<a\\s-+href[^>]*>\\([^>]+\\)</a>" 1 font-lock-reference-face t) "<" ">\\(" "*\\)</\\1>" 3 html-helper-bold-face t html-helper-italic-face "[^<]" ("\\(<[^>]*>\\)" 1 font-lock-type-face t) font-lock-function-name-face ("<u>\\([^<]*\\)</u>" 1 html-helper-underline-face t) ("\\(<\\(form\\|i\\(mg\\|nput\\)\\)\\>[^>]*>\\)" 1 font-lock-variable-name-face t) ("</a>" 0 font-lock-keyword-face t) ("\\(<a\\b[^>]*>\\)" 1 font-lock-keyword-face t) ("=[ 	\n]*\\(\"[^\"]+\"\\)" 1 font-lock-string-face t) ("</?\\(body\\|form\\|h\\(ead\\|tml\\)\\)>" 0 font-lock-variable-name-face t) ("&[^;\n]*;" 0 font-lock-string-face t) ("\\(<![a-z]+\\>[^<>]*\\(<[^>]*>[^<>]*\\)*>\\)" 1 font-lock-comment-face t) ("\\(<!--\\([^-]\\|-[^-]\\|--[^>]\\)*-->\\)" 1 font-lock-comment-face t)] 15) (#$ . 25321))
(byte-code "! $!!!!" [featurep hilit19 hilit-set-mode-patterns html-helper-mode (("<!--" "-->" comment) ("<![a-z]+\\>[^<>]*\\(<[^>]*>[^<>]*\\)*>" nil comment) ("<title>" "</title>" defun) ("<h[1-6]>" "</h[1-6]>" bold) ("<a\\b" ">" define) ("</a>" nil define) ("<img\\b" ">" include) ("<option\\|</?select\\|<input\\|</?form\\|</?textarea" ">" include) ("<i>[^<]*</i>" nil italic) ("<b>" "</b>" bold) ("<i>" "</i>" italic) ("<u>" "</u>" underline) ("&[^;\n]*;" nil string) ("<" ">" keyword)) nil case-insensitive provide html-mode run-hooks html-load-hook html-helper-load-hook] 5)
