comparison man/hm--html-mode.texi @ 46:6a22abad6937 r19-15

Import from CVS: tag r19-15
author cvs
date Mon, 13 Aug 2007 08:55:31 +0200
parents 8b8b7f3559a2
children
comparison
equal deleted inserted replaced
45:7705b7aa3b8a 46:6a22abad6937
2 @comment %**start of header (This is for running Texinfo on a region.) 2 @comment %**start of header (This is for running Texinfo on a region.)
3 @setfilename hm--html-mode.info 3 @setfilename hm--html-mode.info
4 @settitle HM HTML Mode 4 @settitle HM HTML Mode
5 @setchapternewpage odd 5 @setchapternewpage odd
6 @comment %**end of header (This is for running Texinfo on a region.) 6 @comment %**end of header (This is for running Texinfo on a region.)
7 @comment $Id: hm--html-mode.texi,v 1.1 1997/03/23 00:28:12 steve Exp $ 7 @comment $Id: hm--html-mode.texi,v 1.2 1997/03/27 01:22:34 steve Exp $
8 @ifinfo 8 @ifinfo
9 This file documents the Elisp package @code{hm--html-menus}. 9 This file documents the Elisp package @code{hm--html-menus}.
10 10
11 Copyright @copyright{} 1997 Heiko Münkel 11 Copyright @copyright{} 1997 Heiko Münkel
12 12
43 @center @titlefont{The Elisp Package hm---html-menus} 43 @center @titlefont{The Elisp Package hm---html-menus}
44 44
45 @sp 4 45 @sp 4
46 @center by Heiko Münkel 46 @center by Heiko Münkel
47 @sp 4 47 @sp 4
48 @center Version 5.4, March 1997 48 @center Version 5.6, March 1997
49 @page 49 @page
50 @vskip 0pt plus 1filll 50 @vskip 0pt plus 1filll
51 Copyright @copyright{} 1997 Heiko Münkel 51 Copyright @copyright{} 1997 Heiko Münkel
52 @sp 4 52 @sp 4
53 Permission is granted to make and distribute verbatim copies of 53 Permission is granted to make and distribute verbatim copies of
129 @cindex overview 129 @cindex overview
130 @cindex version 130 @cindex version
131 @findex hm--html-mode 131 @findex hm--html-mode
132 @findex hm--html-minor-mode 132 @findex hm--html-minor-mode
133 133
134 This document describes the Elisp package @emph{hm---html-menus 5.4}. 134 This document describes the Elisp package @emph{hm---html-menus 5.6}.
135 135
136 The version of the document is:@* 136 The version of the document is:@*
137 $Id: hm--html-mode.texi,v 1.1 1997/03/23 00:28:12 steve Exp $ 137 $Id: hm--html-mode.texi,v 1.2 1997/03/27 01:22:34 steve Exp $
138 138
139 The package provides commands and various popup and pulldown menus for 139 The package provides commands and various popup and pulldown menus for
140 a HTML mode called @dfn{hm---html-mode}, a mode for writing HTML pages 140 an HTML mode called @dfn{hm---html-mode}, a mode for writing HTML pages
141 for the World Wide Web (WWW). It provides also a minor mode 141 for the World Wide Web (WWW). It also provides a minor mode
142 (@dfn{hm---html-minor-mode}), which can be used together with another 142 (@dfn{hm---html-minor-mode}), which can be used together with another
143 HTML major mode, like the psgml-html modes in the XEmacs 19.14. 143 HTML major mode, like the psgml-html modes in XEmacs 19.14.
144 144
145 You can easily view the HTML documents by calling the browsers w3 (a 145 You can easily view the HTML documents by calling the browsers w3 (a
146 nice elisp package from William M. Perry), Netscape or Mosaic direct 146 nice elisp package from William M. Perry), Netscape, or Mosaic directly
147 from the pulldown menu of the mode. 147 from the pulldown menu of the mode.
148 148
149 An integrated (emacs internal) drag and drop interface makes it 149 An integrated (emacs internal) drag and drop interface makes it
150 very easy to insert links or images, by just clicking on them. 150 very easy to insert links or images, by just clicking on them.
151 151
152 If it makes sense, then the commands are working also on selected 152 When appropriate, identical commands work on selected
153 regions. You'll see the same menu items and can use the same 153 regions. You'll see the same menu items and can use the same
154 keystrokes, regardless if the region is activated or not, but if it's 154 keystrokes, whether a region is active or not, but if it's
155 activated, then the commands are working on the region. Therefore, you 155 active, then the commands are operating on the region. Therefore, you
156 don't need to learn different menus or keys for similar functions! 156 don't need to learn different menus or keys for similar functions!
157 157
158 One major design issue of the package was to make it easier to write a 158 One major design goal of the package was to make it easier to write a
159 HTML page, even if you don't know much about HTML. For that I've tried 159 HTML page, even if you don't know much about HTML. For that I've tried
160 to put more knowledge about HTML, URL's and so on in it as an SGML based 160 to put more knowledge about HTML, URL's and so on in it than an SGML based
161 mode could find out from a DTD file. In most cases the user gets help to 161 mode could find out from a DTD file. In most cases the user gets help to
162 construct a specific link by examples or by a completion list with 162 construct a specific link by examples, or by a completion list with
163 possible input strings. And you can choose between an expert popup menu 163 possible input strings. And you can choose between an expert popup menu
164 and an novice popup menu interactively. The novice menu contains only 164 and an novice popup menu interactively. The novice menu contains only
165 the basic HTML elements, so that you're not bothered by the quantity of 165 the basic HTML elements, so that you're not bothered by the quantity of
166 different HTML elements. And if you want to use more HTML elements, then 166 different HTML elements. And if you want to use more HTML elements, then
167 you could easily switch to the expert menus. 167 you can easily switch to the expert menus.
168 168
169 You can configure the html mode with a special configuration file for 169 You can configure the html mode with a special configuration file for
170 your site and with another file specific for a user. Look at the 170 your site and with another file specific to a user. Look at the
171 customization chapter for this, @xref{Customization, Customization}. 171 customization chapter for this, @xref{Customization, Customization}.
172 172
173 173
174 @node Distribution, Installation, Overview, Top 174 @node Distribution, Installation, Overview, Top
175 @comment node-name, next, previous, up 175 @comment node-name, next, previous, up
176 @chapter Distribution 176 @chapter Distribution
177 The name of the distribution file is 177 The name of the distribution file is
178 @file{hm--html-menus-<version>.tar.gz}, where @var{<version>} is the 178 @file{hm--html-menus-<version>.tar.gz}, where @var{<version>} is the
179 version number. The package is part of the XEmacs. You should find the 179 version number. The package is part of the XEmacs. You should always
180 latest version of the package always on the following ftp server: 180 find the latest version of the package on the following ftp server:
181
182 @display 181 @display
183 @emph{ftp.tnt.uni-hannover.de} in @file{/pub/editors/xemacs/contrib} 182 @emph{ftp.tnt.uni-hannover.de} in @file{/pub/editors/xemacs/contrib}
184 @end display 183 @end display
185
186 You should also find the package in the USA on the ftp server 184 You should also find the package in the USA on the ftp server
187 (which is mirrored on many other servers in the world): 185 (which is mirrored on many other servers in the world):
188
189 @display 186 @display
190 @emph{sunsite.unc.edu} in @file{/pub/Linux/apps/editors/emacs} 187 @emph{sunsite.unc.edu} in @file{/pub/Linux/apps/editors/emacs}
191 @end display 188 @end display
192
193 @menu 189 @menu
194 * Contents:: Contents of the distribution 190 * Contents:: Contents of the distribution
195 @end menu 191 @end menu
196 192
197 @node Contents, , Distribution, Distribution 193 @node Contents, , Distribution, Distribution
198 @comment node-name, next, previous, up 194 @comment node-name, next, previous, up
199 @section Contents 195 @section Contents
200 @cindex contents 196 @cindex contents
201
202 The package consists of the following files: 197 The package consists of the following files:
203 198
204 @table @file 199 @table @file
205 @item README 200 @item README
206 Please, read this first. 201 Please, read this first.
207 @itemx README-EMACS-19 202 @itemx README-EMACS-19
208 Some special hints only for the GNU Emacs 19 users. 203 Some special hints only for GNU Emacs 19 users.
209 @itemx ANNOUNCEMENT 204 @itemx ANNOUNCEMENT
210 Text of the announcement of this package. 205 Text of the announcement of this package.
211 @itemx LSM 206 @itemx LSM
212 Entry for the Linux Software Map. 207 Entry for the Linux Software Map.
213 @itemx NEWS 208 @itemx NEWS
214 The NEWS and Change log file. 209 The NEWS and Change log file.
215 @itemx adapt.el 210 @itemx adapt.el
216 Provides (emulates XEmacs) functions for the use of this package with 211 Provides (emulates XEmacs) functions for the use of this package with
217 the GNU Emacs 19. 212 GNU Emacs 19.
218 @itemx hm--html.el 213 @itemx hm--html.el
219 Provides functions to write html pages. It defines all commands which 214 Provides functions to write html pages. It defines all commands which
220 inserts html elements and entities. 215 insert html elements and entities.
221 @itemx hm--html-indentation.el 216 @itemx hm--html-indentation.el
222 Provides the lisp code for the indentation. 217 Provides the lisp code for the indentation.
223 @itemx hm--html-keys.el 218 @itemx hm--html-keys.el
224 Defines the key bindings. 219 Defines the key bindings.
225 @itemx hm--html-menu.el 220 @itemx hm--html-menu.el
232 is not evaluated by default and it may be a bad idea to use it. 227 is not evaluated by default and it may be a bad idea to use it.
233 @itemx hm--html-configuration.el 228 @itemx hm--html-configuration.el
234 Configuration file for the html mode. All the user variables are defined 229 Configuration file for the html mode. All the user variables are defined
235 in this file. 230 in this file.
236 @itemx hm--html-drag-and-drop.el 231 @itemx hm--html-drag-and-drop.el
237 Defines the HTML- specific functions for the drag and drop interface. 232 Defines the HTML-specific functions for the drag and drop interface.
238 @itemx hm--date.el 233 @itemx hm--date.el
239 Defines the function hm--date, which returns the date in the format 234 Defines the function hm--date, which returns the date in the format
240 "day-month-year" like "30-Jun-1993". 235 "day-month-year" like "30-Jun-1993".
241 @itemx html-view.el 236 @itemx html-view.el
242 Ron Tapia's html-view.el to view html-pages in the Mosaic. It is 237 Ron Tapia's html-view.el to view html pages in Mosaic. It is
243 patched for the use with the xemacs. 238 patched for use with XEmacs.
244 @itemx internal-drag-and-drop.el 239 @itemx internal-drag-and-drop.el
245 Provides the general (html mode independent functions) of the drag and 240 Provides the general (html-mode independent) functions of the drag and
246 drop interface. 241 drop interface.
247 @itemx templates.doc 242 @itemx templates.doc
248 Describes the syntax of the templates provided in the file 243 Describes the syntax of the templates provided in the file
249 @file{tmpl-minor-mode.el} 244 @file{tmpl-minor-mode.el}
250 @itemx tmpl-minor-mode.el 245 @itemx tmpl-minor-mode.el
260 @itemx frame.html.tmpl 255 @itemx frame.html.tmpl
261 Template file, provides a simple frame. 256 Template file, provides a simple frame.
262 @itemx doc/hm--html-mode.texinfo 257 @itemx doc/hm--html-mode.texinfo
263 Package documentation in the Texinfo format. 258 Package documentation in the Texinfo format.
264 @itemx doc/umlaute.texinfo 259 @itemx doc/umlaute.texinfo
265 Texinfo include file for german vowel mutation (deutsche Umlaute). 260 Texinfo include file for German vowel mutation (deutsche Umlaute).
266 @end table 261 @end table
267 262
268 @node Installation, Customization, Distribution, Top 263 @node Installation, Customization, Distribution, Top
269 @comment node-name, next, previous, up 264 @comment node-name, next, previous, up
270 @chapter Installation 265 @chapter Installation
271 @cindex installation 266 @cindex installation
272 267
273 268
274 @enumerate 269 @enumerate
275 @item Put all the *.el files in one of your xemacs (or emacs) lisp load 270 @item Put all the *.el files in one of your XEmacs (or emacs) lisp load
276 directories (i.e. site-lisp/hm--html-menus). 271 directories (e.g. site-lisp/hm--html-menus).
277 272
278 @item Put the following in your .emacs (or default.el or site-init.el): 273 @item Put the following in your .emacs (or default.el or site-init.el):
279 @lisp 274 @lisp
280 (autoload 'hm--html-mode "hm--html-mode" "HTML major mode." t) 275 (autoload 'hm--html-mode "hm--html-mode" "HTML major mode." t)
281 (autoload 'hm--html-minor-mode "hm--html-mode" "HTML minor mode." t) 276 (autoload 'hm--html-minor-mode "hm--html-mode" "HTML minor mode." t)
303 "html-view" 298 "html-view"
304 "Get the display for Xmosaic (i.e. hostxy:0.0)." 299 "Get the display for Xmosaic (i.e. hostxy:0.0)."
305 t) 300 t)
306 @end lisp 301 @end lisp
307 302
308 The above lines assume that you have not installed already another 303 The above lines assume that you have not already installed another
309 html mode. If this isn't true, then you should use the following: 304 html mode. If this isn't true, then you should use the following:
310 @lisp 305 @lisp
311 (setq auto-mode-alist (cons '("\\.html$" . hm--html-mode) 306 (setq auto-mode-alist (cons '("\\.html$" . hm--html-mode)
312 auto-mode-alist)) 307 auto-mode-alist))
313 @end lisp 308 @end lisp
316 @lisp 311 @lisp
317 (or (assoc "\\.html$" auto-mode-alist) 312 (or (assoc "\\.html$" auto-mode-alist)
318 (setq auto-mode-alist (cons '("\\.html$" . hm--html-mode) 313 (setq auto-mode-alist (cons '("\\.html$" . hm--html-mode)
319 auto-mode-alist))) 314 auto-mode-alist)))
320 @end lisp 315 @end lisp
321 If you want to use the hm---html-minor-mode together 316 If you want to use the hm--html-minor-mode together
322 with the psgml-html modes, then you should add the following 317 with the psgml-html modes, then you should add the following
323 line (works only in XEmacs version >= 19.15 and != 20.0): 318 line (works only in XEmacs version >= 19.15 and != 20.0):
324 @lisp 319 @lisp
325 (add-hook 'html-mode-hook 'hm--html-minor-mode) 320 (add-hook 'html-mode-hook 'hm--html-minor-mode)
326 @end lisp 321 @end lisp
330 @comment node-name, next, previous, up 325 @comment node-name, next, previous, up
331 @chapter Customization 326 @chapter Customization
332 @cindex customization 327 @cindex customization
333 @cindex configuration 328 @cindex configuration
334 329
335 You should be able to use the package after it's installation without 330 You should be able to use the package after its installation without
336 any further customization. But it contains a lot of user variables to 331 any further customization. But it contains a lot of user variables to
337 adapt the package better to your special needs. How to do this is 332 adapt the package better to your special needs. How to do this is
338 described in this chapter. 333 described in this chapter.
339 334
340 @menu 335 @menu
346 @comment node-name, next, previous, up 341 @comment node-name, next, previous, up
347 @section Customization (Configuration) Files 342 @section Customization (Configuration) Files
348 @cindex customization files 343 @cindex customization files
349 @cindex configuration files 344 @cindex configuration files
350 345
351 This package uses 3 different files to customize the mode, but you must 346 This package uses 3 different files to customize the mode, but you need
352 not use all of them. Only one of them, the file 347 not use all of them. Only one of them, the file
353 @file{hm--html-configuration.el} is delivered together with the package. 348 @file{hm--html-configuration.el} is delivered together with the package.
354 The reason for three different files is to provide the possibility to 349 The reason for three different files is to provide the opportunity to
355 have different customization for the package, the site and the 350 have different customization for the package, the site and the
356 user. There's also a pulldown menu item to reload all customization 351 user. There's also a pulldown menu item to reload all customization
357 files. The files are described in the following sections. 352 files. The files are described in the following sections.
358 353
359 @menu 354 @menu
367 @subsection Where Are All The Customization Variables Defined 362 @subsection Where Are All The Customization Variables Defined
368 @cindex package specific customization 363 @cindex package specific customization
369 @cindex hm--configuration.el 364 @cindex hm--configuration.el
370 @vindex HTML_CONFIG_FILE 365 @vindex HTML_CONFIG_FILE
371 366
372 All variables, which can be used to customize the mode, are defined in 367 All variables which can be used to customize the mode are defined in
373 the package configuration file @file{hm--configuration.el}. You should 368 the package configuration file @file{hm--configuration.el}. You should
374 take a look at this file, if you don't find how to customize a feature 369 take a look at this file if you don't find how to customize a feature
375 in this documentation (the documentation of a program is never as 370 in this documentation (the documentation of a program is never as
376 complete as it's program code :-). 371 complete as its program code :-).
377 372
378 This file is searched in one of your lisp load directories. You can 373 This file is searched in one of your lisp load directories. You can
379 change this by setting the environment variable @code{HTML_CONFIG_FILE} 374 change this by setting the environment variable @code{HTML_CONFIG_FILE}
380 to another file. But I don't recommend this. 375 to another file. But I don't recommend this.
381 376
382 @emph{Note}: This file is loaded before the other customization files, 377 @emph{Note}: This file is loaded before the other customization files,
383 so that it's definitions could be overwritten. All variables are set by 378 so that its definitions could be overwritten. All variables are set by
384 @code{defvar}, so that it's values could also be overwritten with 379 @code{defvar}, so that its values could also be overwritten with
385 @code{setq} in any standard emacs customization files (i.e. in 380 @code{setq} in any standard emacs customization files (e.g. in
386 @file{.emacs}). 381 @file{.emacs}).
387 382
388 383
389 @node Where To Put Site Specific Customization, Where To Put User Specific Customization, Where Are All The Customization Variables Defined, Customization (Configuration) Files 384 @node Where To Put Site Specific Customization, Where To Put User Specific Customization, Where Are All The Customization Variables Defined, Customization (Configuration) Files
390 @comment node-name, next, previous, up 385 @comment node-name, next, previous, up
392 @cindex site specific customization 387 @cindex site specific customization
393 @cindex hm--site-configuration-file.el 388 @cindex hm--site-configuration-file.el
394 @vindex HTML_SITE_CONFIG_FILE 389 @vindex HTML_SITE_CONFIG_FILE
395 @vindex hm--html-site-config-file 390 @vindex hm--html-site-config-file
396 391
397 In general all users at a site are writing there html pages for the same 392 In general all users at a site are writing their html pages for the same
398 WWW server. Therefore it is very likely, that most of the customizations 393 WWW server. Therefore it is very likely that most of the customizations
399 are site specific and only a few are user specific. But however, you 394 are site specific, and only a few are user specific. However, you
400 don't have to use a site specific customization, if you don't like it. 395 don't have to use a site specific customization if you don't want one.
401 396
402 If you'd like to make a site specific customization of the 397 If you'd like to make a site specific customization of
403 @code{hm--html-mode}, then it's possible to put it in a special file 398 @code{hm--html-mode}, it's possible to put it in a special file called
404 called @file{hm--site-configuration-file.el}. If you do this, you've to 399 @file{hm--site-configuration-file.el}. If you do this, you have to set
405 set either the lisp variable @code{hm--html-site-config-file} or the 400 either the lisp variable @code{hm--html-site-config-file} or the
406 environment variable @code{HTML_SITE_CONFIG_FILE} to the file and it's 401 environment variable @code{HTML_SITE_CONFIG_FILE} to the file and its
407 path. If you write the filename without it's extension (.el), the emacs 402 path. If you write the filename without its extension (.el), emacs
408 tries to load at first a compiled version of the file. 403 tries first to load a compiled version of the file.
409 404
410 The environment variables overwrites the lisp variable. 405 The environment variables overwrite the lisp variables.
411 406
412 You can also put the site specific customization in any standard emacs 407 You can also put the site specific customization in any standard emacs
413 customization files like @file{default.el}. But an advantage, if you 408 customization file like, @file{default.el}. But an advantage to
414 use @file{hm--site-configuration-file.el} is, that it is very likely, 409 using @file{hm--site-configuration-file.el} is that it is very likely
415 that you can use this file also together with future versions of the 410 you will be able to use this file with future versions of the
416 package. I'll try to make it as backward compatible as possible. 411 package. I'll try to make it as backward compatible as possible.
417 412
418 @emph{Note}: This file is loaded after the package customization file 413 @emph{Note}: This file is loaded after the package customization file
419 and before the user customization file. 414 and before the user customization file.
420 415
429 User specific customization can be put in the file 424 User specific customization can be put in the file
430 @file{.hm--configuration-file.el}, which is searched by default in the 425 @file{.hm--configuration-file.el}, which is searched by default in the
431 home directory of the user. This can be overwritten by setting either 426 home directory of the user. This can be overwritten by setting either
432 the environment variable @code{HTML_USER_CONFIG_FILE} or the lisp 427 the environment variable @code{HTML_USER_CONFIG_FILE} or the lisp
433 variable @code{hm--html-user-config-file} to the name of the file and 428 variable @code{hm--html-user-config-file} to the name of the file and
434 it's path. If you write the filename without it's extension (.el), the 429 its path. If you write the filename without its extension (.el), emacs
435 emacs tries to load at first a compiled version of the file. 430 tries first to load a compiled version of the file.
436 431
437 You can also put the user specific customization in your 432 You can also put the user specific customization in your
438 @file{.emacs}. It's up to you, to decide which way is the better one. 433 @file{.emacs}. It's up to you to decide which way is better.
439 434
440 @emph{Note}: This file is loaded after the package and the site specific 435 @emph{Note}: This file is loaded after the package and the site specific
441 one. Therefore it overwrites all other customization files. 436 one. Therefore it overwrites all other customization files.
442 437
443 438
477 @vindex hm--html-signature-file 472 @vindex hm--html-signature-file
478 473
479 @itemize @bullet 474 @itemize @bullet
480 @item 475 @item
481 @code{hm--html-username}: Your real name. This is used as the name of 476 @code{hm--html-username}: Your real name. This is used as the name of
482 the signature links. You have only to specify it, if your name in the 477 the signature links. You need only specify it if your name in the
483 file @file{/etc/passwd} isn't the one, you'd like to see in the html 478 file @file{/etc/passwd} isn't the one you'd like to see in the html
484 files. Otherwise this could be set to nil. 479 files. Otherwise this may be set to @code{nil}.
485 @item 480 @item
486 @code{hm--html-signature-file}: The link, used in your signature. In 481 @code{hm--html-signature-file}: The link used in your signature. In
487 general this should be a link to your home page. 482 general this should be a link to your home page.
488 @end itemize 483 @end itemize
489 484
490 485
491 @node Switching Between Expert And Novice Menus , HTML Doctype, User Name/Signature, Customization Variables 486 @node Switching Between Expert And Novice Menus , HTML Doctype, User Name/Signature, Customization Variables
496 @vindex hm--html-expert 491 @vindex hm--html-expert
497 492
498 @itemize @bullet 493 @itemize @bullet
499 @item 494 @item
500 @code{hm--html-expert}: If you're a html novice and don't want to be 495 @code{hm--html-expert}: If you're a html novice and don't want to be
501 bothered with lot's of possible html elements, then you should use the 496 bothered with lots of possible html elements, then you should use the
502 novice popup menus. For that you've to set this variable to @code{nil}, 497 novice popup menus. For that, set this variable to @code{nil},
503 which is the default. But if you are more familiar with html and would 498 which is the default. But if you are more familiar with html and would
504 like to use more html elements, then you should use the expert menus and 499 like to use more html elements, then you should use the expert menus and
505 set this variable to @code{t}. 500 set this variable to @code{t}.
506 @end itemize 501 @end itemize
507 502
513 @cindex HTML doctype 508 @cindex HTML doctype
514 509
515 @itemize @bullet 510 @itemize @bullet
516 @item 511 @item
517 @code{hm--html-html-doctype-version}: The HTML version. This is used in 512 @code{hm--html-html-doctype-version}: The HTML version. This is used in
518 the doctype element. Change this, if you use non HTML 3.2 elements. This 513 the doctype element. Change this if you use non HTML 3.2 elements. This
519 package (@xref{Overview, version}.) defines by default only HTML 3.2 elements. 514 package (@xref{Overview, version}.) defines by default only HTML 3.2 elements.
520 @end itemize 515 @end itemize
521 516
522 517
523 @node Defaults Used For Generating Links, Templates, HTML Doctype, Customization Variables 518 @node Defaults Used For Generating Links, Templates, HTML Doctype, Customization Variables
524 @comment node-name, next, previous, up 519 @comment node-name, next, previous, up
525 @subsection Defaults Used For Generating Links 520 @subsection Defaults Used For Generating Links
526 @cindex links 521 @cindex links
527 522
528 One of the main features of the @code{hm--html-mode} are the easy ways 523 One of the main features of @code{hm--html-mode} is its easy ways to
529 to insert special links to html pages, ftp servers, news servers and so 524 insert special links to html pages, ftp servers, news servers and so
530 on. I think, that most people will have their own (this may be site 525 on. I think that most people will have their own (this may be site
531 specific, @xref{Where To Put Site Specific Customization, Where To Put 526 specific. @xref{Where To Put Site Specific Customization, Where To Put
532 Site Specific Customization}.) favourite servers, directories and so 527 Site Specific Customization}.) favourite servers, directories and so
533 on. Therefore it should be useful to customize the default values and the 528 on. You may customize the default values and the alists with useful
534 alists with useful alternatives, which are used from the mode in the 529 alternatives, which are used from the mode in the inserting functions
535 inserting functions for the links. 530 for the links.
536 531
537 @menu 532 @menu
538 * Your Favourite HTTP Server:: 533 * Your Favourite HTTP Server::
539 * Links to WWW Server:: 534 * Links to WWW Servers::
540 * Links To Files:: 535 * Links To Files::
541 * Links To FTP Server:: 536 * Links To FTP Servers::
542 * Links To Emacs Info Files:: 537 * Links To Emacs Info Files::
543 * Links To Gopher Server:: 538 * Links To Gopher Servers::
544 * Links To WAIS Gateways:: 539 * Links To WAIS Gateways::
545 * Links To The Mail Gateway:: 540 * Links To The Mail Gateway::
546 * Links For Sending Mails:: 541 * Links For Sending Mail::
547 * Links To The Program Gateway :: 542 * Links To The Program Gateway::
548 * Links To The Local Program Gateway:: 543 * Links To The Local Program Gateway::
549 * URL For Forms And Image Tags:: 544 * URL For Forms And Image Tags::
550 * Marking Of Examples:: 545 * Marking Of Examples::
551 @end menu 546 @end menu
552 547
553 548
554 @node Your Favourite HTTP Server, Links to WWW Server, Defaults Used For Generating Links, Defaults Used For Generating Links 549 @node Your Favourite HTTP Server, Links to WWW Servers, Defaults Used For Generating Links, Defaults Used For Generating Links
555 @comment node-name, next, previous, up 550 @comment node-name, next, previous, up
556 @subsubsection Your Favourite HTTP Server 551 @subsubsection Your Favourite HTTP Server
557 @cindex favourite HTTP server 552 @cindex favourite HTTP server
558 @vindex hm--html-favorite-http-server-host-name 553 @vindex hm--html-favorite-http-server-host-name
559 554
563 favorite http server host. It must be specified! This variable is used 558 favorite http server host. It must be specified! This variable is used
564 in many other variables. 559 in many other variables.
565 @end itemize 560 @end itemize
566 561
567 562
568 @node Links to WWW Server, Links To Files, Your Favourite HTTP Server, Defaults Used For Generating Links 563 @node Links to WWW Servers, Links To Files, Your Favourite HTTP Server, Defaults Used For Generating Links
569 @comment node-name, next, previous, up 564 @comment node-name, next, previous, up
570 @subsubsection Links to WWW Server 565 @subsubsection Links to WWW Server
571 @cindex WWW server links 566 @cindex WWW server links
572 @cindex HTTP links 567 @cindex HTTP links
573 @vindex hm--html-html-hostname:port-default 568 @vindex hm--html-html-hostname:port-default
583 for http links to HTML servers. It contains useful alternatives. 578 for http links to HTML servers. It contains useful alternatives.
584 @item 579 @item
585 @code{hm--html-html-path-alist}: Alist with directories for the HTML 580 @code{hm--html-html-path-alist}: Alist with directories for the HTML
586 server. Each alist element must consist of a number and a directory 581 server. Each alist element must consist of a number and a directory
587 string. The number is used to select the directory during the query 582 string. The number is used to select the directory during the query
588 about the directory for a http link. 583 about the directory for an http link.
589 @end itemize 584 @end itemize
590 585
591 586
592 @node Links To Files, Links To FTP Server, Links to WWW Server, Defaults Used For Generating Links 587 @node Links To Files, Links To FTP Servers, Links to WWW Servers, Defaults Used For Generating Links
593 @comment node-name, next, previous, up 588 @comment node-name, next, previous, up
594 @subsubsection Links To Files 589 @subsubsection Links To Files
595 @cindex file gateway links 590 @cindex file gateway links
596 @vindex hm--html-file-path-alist 591 @vindex hm--html-file-path-alist
597 592
598 @itemize @bullet 593 @itemize @bullet
599 @item 594 @item
600 @code{hm--html-file-path-alist}: Alist with directories for the file 595 @code{hm--html-file-path-alist}: Alist with directories for the file
601 gateway.Each alist element must consist of a number and a directory 596 gateway. Each alist element must consist of a number and a directory
602 string. The number is used to select the directory during the query 597 string. The number is used to select the directory during the query
603 about the directory for a file link. 598 about the directory for a file link.
604 @end itemize 599 @end itemize
605 600
606 601
607 @node Links To FTP Server, Links To Emacs Info Files, Links To Files, Defaults Used For Generating Links 602 @node Links To FTP Servers, Links To Emacs Info Files, Links To Files, Defaults Used For Generating Links
608 @comment node-name, next, previous, up 603 @comment node-name, next, previous, up
609 @subsubsection Links To FTP Server 604 @subsubsection Links To FTP Servers
610 @cindex FTP links 605 @cindex FTP links
611 @vindex hm--html-ftp-hostname:port-default 606 @vindex hm--html-ftp-hostname:port-default
612 @vindex hm--html-ftp-hostname:port-alist 607 @vindex hm--html-ftp-hostname:port-alist
613 @vindex hm--html-ftp-path-alist 608 @vindex hm--html-ftp-path-alist
614 609
615 @itemize @bullet 610 @itemize @bullet
616 @item 611 @item
617 @code{hm--html-ftp-hostname:port-default}: Default hostname with port 612 @code{hm--html-ftp-hostname:port-default}: Default hostname with port
618 for links to ftp server. This is the default FTP server. In general 613 for links to an ftp server. This is for the default FTP server. In general
619 you've not to specify a port for this. 614 you don't need to specify a port for this.
620 @item 615 @item
621 @code{hm--html-ftp-hostname:port-alist}: Alist with hostnames and ports 616 @code{hm--html-ftp-hostname:port-alist}: Alist with hostnames and ports
622 for links to ftp servers. It contains useful alternatives. In general 617 for links to ftp servers. It contains useful alternatives. In general
623 you've not to specify ports for the ftp servers. 618 you don't need to specify ports for the ftp servers.
624 @item 619 @item
625 @code{hm--html-ftp-path-alist}: Alist with directories for the ftp 620 @code{hm--html-ftp-path-alist}: Alist with directories for the ftp
626 server links. It contains useful alternatives with /pub, /pub/gnu and 621 server links. It contains useful alternatives with /pub, /pub/gnu and
627 so on. Each alist element must consist of a number and a directory 622 so on. Each alist element must consist of a number and a directory
628 string. The number is used to select the directory during the query 623 string. The number is used to select the directory during the query
629 about the directory for a ftp link. 624 about the directory for an ftp link.
630 @end itemize 625 @end itemize
631 626
632 627
633 @node Links To Emacs Info Files, Links To Gopher Server, Links To FTP Server, Defaults Used For Generating Links 628 @node Links To Emacs Info Files, Links To Gopher Servers, Links To FTP Servers, Defaults Used For Generating Links
634 @comment node-name, next, previous, up 629 @comment node-name, next, previous, up
635 @subsubsection Links To Emacs Info Files 630 @subsubsection Links To Emacs Info Files
636 @cindex emacs info links 631 @cindex emacs info links
637 @vindex hm--html-info-hostname:port-alist 632 @vindex hm--html-info-hostname:port-alist
638 @vindex hm--html-info-hostname:port-default 633 @vindex hm--html-info-hostname:port-default
642 @item 637 @item
643 @code{hm--html-info-hostname:port-default}: Default hostname with port 638 @code{hm--html-info-hostname:port-default}: Default hostname with port
644 for the Info gateway. 639 for the Info gateway.
645 @item 640 @item
646 @code{hm--html-info-hostname:port-alist}: Alist with hostnames and ports 641 @code{hm--html-info-hostname:port-alist}: Alist with hostnames and ports
647 for the Info gateway. It contains useful alternatives. 642 for Info gateways. It contains useful alternatives.
648 @item 643 @item
649 @code{hm--html-info-path-alist}: Alist with directories for the Info 644 @code{hm--html-info-path-alist}: Alist with directories for the Info
650 gateway. This may be a list with all of your emacs info directories. 645 gateway. This may be a list with all of your emacs info directories.
651 @end itemize 646 @end itemize
652 647
653 648
654 @node Links To Gopher Server, Links To WAIS Gateways, Links To Emacs Info Files, Defaults Used For Generating Links 649 @node Links To Gopher Servers, Links To WAIS Gateways, Links To Emacs Info Files, Defaults Used For Generating Links
655 @comment node-name, next, previous, up 650 @comment node-name, next, previous, up
656 @subsubsection Links To Gopher Server 651 @subsubsection Links To Gopher Servers
657 @cindex Gopher gateway links 652 @cindex Gopher gateway links
658 @vindex hm--html-gopher-hostname:port-default 653 @vindex hm--html-gopher-hostname:port-default
659 @vindex hm--html-gopher-hostname:port-alist 654 @vindex hm--html-gopher-hostname:port-alist
660 @vindex hm--html-gopher-doctype-default 655 @vindex hm--html-gopher-doctype-default
661 @vindex hm--html-gopher-doctype-alist 656 @vindex hm--html-gopher-doctype-alist
662 @vindex hm--html-gopher-anchor-alist 657 @vindex hm--html-gopher-anchor-alist
663 658
664 There are a lot of useful gopher information server in the Internet. 659 There are a lot of useful gopher information servers on the Internet.
665 You can access them with a gopher browser or with a WWW browser. In the 660 You can access them with a gopher browser or with a WWW browser. In the
666 second case you've to use the gopher gateway. 661 latter case you have to use the gopher gateway.
667 662
668 @itemize @bullet 663 @itemize @bullet
669 @item 664 @item
670 @code{hm--html-gopher-hostname:port-default}: Default hostname with port 665 @code{hm--html-gopher-hostname:port-default}: Default hostname with port
671 for links to gopher server. 666 for links to the default gopher server.
672 @item 667 @item
673 @code{hm--html-gopher-hostname:port-alist}: Alist with hostnames and 668 @code{hm--html-gopher-hostname:port-alist}: Alist with hostnames and
674 ports for links to gopher server. It contains useful alternatives. 669 ports for links to gopher servers. It contains useful alternatives.
675 @item 670 @item
676 @code{hm--html-gopher-doctype-default}: For gopher links you've to 671 @code{hm--html-gopher-doctype-default}: For gopher links you have to
677 specify the doctype. In most cases this should be the string \"/1\". 672 specify the doctype. In most cases this should be the string \"/1\".
678 Therefore this is the default doctype, but you might change it to 673 Therefore this is the default doctype, but you can change it to
679 another doctype. 674 another.
680 @item 675 @item
681 @code{hm--html-gopher-doctype-alist}: Alist with doctype strings for links 676 @code{hm--html-gopher-doctype-alist}: Alist with doctype strings for links
682 to gopher server. The strings \"/1\", \"/11\" and \"/00\" are the only 677 to a gopher server. The strings \"/1\", \"/11\" and \"/00\" are the only
683 doctype strings that I know. Please let me know, if there are other 678 doctype strings that I know. Please let me know if there are other
684 strings. 679 strings.
685 @item 680 @item
686 @code{hm--html-gopher-anchor-alist}: Alist with directories for links to 681 @code{hm--html-gopher-anchor-alist}: Alist with directories for links to
687 gopher server. It contains useful alternatives on the main gopher 682 a gopher server. It contains useful alternatives for the main gopher
688 servers. Each alist element must consist of a number and a directory 683 servers. Each alist element must consist of a number and a directory
689 string. The number is used to select the directory during the query 684 string. The number is used to select the directory during the query
690 about the directory for a local program gateway link. 685 about the directory for a local program gateway link.
691 @end itemize 686 @end itemize
692 687
693 688
694 @node Links To WAIS Gateways, Links To The Mail Gateway, Links To Gopher Server, Defaults Used For Generating Links 689 @node Links To WAIS Gateways, Links To The Mail Gateway, Links To Gopher Servers, Defaults Used For Generating Links
695 @comment node-name, next, previous, up 690 @comment node-name, next, previous, up
696 @subsubsection Links To WAIS Gateways 691 @subsubsection Links To WAIS Gateways
697 @cindex WAIS gateway links 692 @cindex WAIS gateway links
698 @vindex hm--html-wais-hostname:port-alist 693 @vindex hm--html-wais-hostname:port-alist
699 @vindex hm--html-wais-hostname:port-default 694 @vindex hm--html-wais-hostname:port-default
700 @vindex hm--html-wais-servername:port-alist 695 @vindex hm--html-wais-servername:port-alist
701 @vindex hm--html-wais-servername:port-default 696 @vindex hm--html-wais-servername:port-default
702 @vindex hm--html-wais-path-alist 697 @vindex hm--html-wais-path-alist
703 698
704 You can either make a link direct to a WAIS server (it may be, that not 699 You can either make a link direct to a WAIS server (it may be that not
705 all WWW browsers support this), or a http link to a server (relay host) 700 all WWW browsers support this) or an http link to a server (relay host)
706 which queries the WAIS server. The variables 701 which queries the WAIS server. The variables
707 @code{hm--html-wais-hostname:port-default} and 702 @code{hm--html-wais-hostname:port-default} and
708 @code{hm--html-wais-hostname} refers to these relay hosts and the 703 @code{hm--html-wais-hostname} refer to these relay hosts and the
709 variables @code{hm--html-wais-servername:port-default} and 704 variables @code{hm--html-wais-servername:port-default} and
710 @code{hm--html-wais-servername:port-alist} are refers to the WAIS servers. 705 @code{hm--html-wais-servername:port-alist} refer to the WAIS servers.
711 706
712 @itemize @bullet 707 @itemize @bullet
713 @item 708 @item
714 @code{hm--html-wais-hostname:port-default}: Default hostname of the 709 @code{hm--html-wais-hostname:port-default}: Default hostname of the
715 relay host with port for the WAIS gateway. 710 relay host with port for the WAIS gateway.
726 @item 721 @item
727 @code{hm--html-wais-path-alist}: Alist with directories for the wais gateway. 722 @code{hm--html-wais-path-alist}: Alist with directories for the wais gateway.
728 @end itemize 723 @end itemize
729 724
730 725
731 @node Links To The Mail Gateway, Links For Sending Mails, Links To WAIS Gateways, Defaults Used For Generating Links 726 @node Links To The Mail Gateway, Links For Sending Mail, Links To WAIS Gateways, Defaults Used For Generating Links
732 @comment node-name, next, previous, up 727 @comment node-name, next, previous, up
733 @subsubsection Links To The Mail Gateway 728 @subsubsection Links To The Mail Gateway
734 @cindex Mail gateway links 729 @cindex Mail gateway links
735 @cindex Mail folder links 730 @cindex Mail folder links
736 @vindex hm--html-mail-hostname:port-default 731 @vindex hm--html-mail-hostname:port-default
737 @vindex hm--html-mail-hostname:port-alist 732 @vindex hm--html-mail-hostname:port-alist
738 @vindex hm--html-mail-path-alist 733 @vindex hm--html-mail-path-alist
739 734
740 The following variables are for customizing the insert of links to mail 735 The following variables are for customizing the insertion of links to a mail
741 folder. You need a special server for this, which sends the emails back 736 folder. You need a special server for this, which sends the email back
742 to the browser. 737 to the browser.
743 738
744 @itemize @bullet 739 @itemize @bullet
745 @item 740 @item
746 @code{hm--html-mail-hostname:port-default}: Default hostname with port 741 @code{hm--html-mail-hostname:port-default}: Default hostname with port
748 @item 743 @item
749 @code{hm--html-mail-hostname:port-alist}: Alist with hostnames and ports 744 @code{hm--html-mail-hostname:port-alist}: Alist with hostnames and ports
750 for the mail gateway. It contains useful alternatives. 745 for the mail gateway. It contains useful alternatives.
751 @item 746 @item
752 @code{hm--html-mail-path-alist}: Alist with directories for the mail 747 @code{hm--html-mail-path-alist}: Alist with directories for the mail
753 gateway. In these directories you'll find probably mail folder. Each 748 gateway. In these directories you'll probably find mail folders. Each
754 alist element must consist of a number and a directory string. The 749 alist element must consist of a number and a directory string. The
755 number is used to select the directory during the query about the 750 number is used to select the directory during the query about the
756 directory for a mail folder link. 751 directory for a mail folder link.
757 @end itemize 752 @end itemize
758 753
759 754
760 @node Links For Sending Mails, Links To The Program Gateway , Links To The Mail Gateway, Defaults Used For Generating Links 755 @node Links For Sending Mail, Links To The Program Gateway, Links To The Mail Gateway, Defaults Used For Generating Links
761 @comment node-name, next, previous, up 756 @comment node-name, next, previous, up
762 @subsubsection Links For Sending Mails 757 @subsubsection Links For Sending Mail
763 @cindex mailto links 758 @cindex mailto links
764 @vindex hm--html-mailto-alist 759 @vindex hm--html-mailto-alist
765 760
766 @itemize @bullet 761 @itemize @bullet
767 @item 762 @item
769 alist. The value of `user-mail-address' will also be added by the 764 alist. The value of `user-mail-address' will also be added by the
770 package to this alist. 765 package to this alist.
771 @end itemize 766 @end itemize
772 767
773 768
774 @node Links To The Program Gateway , Links To The Local Program Gateway, Links For Sending Mails, Defaults Used For Generating Links 769 @node Links To The Program Gateway, Links To The Local Program Gateway, Links For Sending Mail, Defaults Used For Generating Links
775 @comment node-name, next, previous, up 770 @comment node-name, next, previous, up
776 @subsubsection Links To The Program Gateway 771 @subsubsection Links To The Program Gateway
777 @cindex program gateway links 772 @cindex program gateway links
778 @vindex hm--html-proggate-hostname:port-default 773 @vindex hm--html-proggate-hostname:port-default
779 @vindex hm--html-proggate-hostname:port-alist 774 @vindex hm--html-proggate-hostname:port-alist
780 @vindex hm--html-proggate-allowed-file 775 @vindex hm--html-proggate-allowed-file
781 776
782 The program gateway is a special TNT site specific gateway for starting 777 The program gateway is a special TNT site specific gateway for starting
783 programs out of a html page. The programs are started by a special 778 programs out of a html page. The programs are started by a special
784 server, which looks in an allowed file, to determine if it is allowed to 779 server, which looks in an allowed file to determine if it is allowed to
785 start the program. This is necessary, because the programs are running 780 start the program. This is necessary because the programs are running
786 under the user id of the server. We've only allowed to start simple 781 under the user id of the server. We're only allowed to start simple
787 display programs like man, ls and so on. 782 display programs like man, ls and so on.
788 783
789 @itemize @bullet 784 @itemize @bullet
790 @item 785 @item
791 @code{hm--html-proggate-hostname:port-default}: Default hostname with 786 @code{hm--html-proggate-hostname:port-default}: Default hostname with
797 @code{hm--html-proggate-allowed-file}: The filename (with path) of the 792 @code{hm--html-proggate-allowed-file}: The filename (with path) of the
798 proggate allowed file. 793 proggate allowed file.
799 @end itemize 794 @end itemize
800 795
801 796
802 @node Links To The Local Program Gateway, URL For Forms And Image Tags, Links To The Program Gateway , Defaults Used For Generating Links 797 @node Links To The Local Program Gateway, URL For Forms And Image Tags, Links To The Program Gateway, Defaults Used For Generating Links
803 @comment node-name, next, previous, up 798 @comment node-name, next, previous, up
804 @subsubsection Links To The Local Program Gateway 799 @subsubsection Links To The Local Program Gateway
805 @cindex local program gateway links 800 @cindex local program gateway links
806 @vindex hm--html-local-proggate-path-alist 801 @vindex hm--html-local-proggate-path-alist
807 802
864 @cindex templates 859 @cindex templates
865 @vindex hm--html-template-dir 860 @vindex hm--html-template-dir
866 @vindex hm--html-frame-template-file 861 @vindex hm--html-frame-template-file
867 @vindex hm--html-automatic-expand-templates 862 @vindex hm--html-automatic-expand-templates
868 863
869 For inserting html template files you can customize, where you've your 864 For inserting html template files you can customize where you keep your
870 templates. 865 templates.
871 866
872 @itemize @bullet 867 @itemize @bullet
873 @item 868 @item
874 @code{hm--html-template-dir}: A directory with template files. It is now 869 @code{hm--html-template-dir}: A directory with template files. It is now
875 also possible to use it as a list of directories. Look at the variable 870 also possible to use it as a list of directories. Look at the variable
876 @code{tmpl-template-dir-list} for further descriptions. If this 871 @code{tmpl-template-dir-list} for further descriptions. If this
877 variable is set to a non existing directory, than it is set to a 872 variable is set to a non-existent directory, then it defaults to the
878 directory, where the package in the XEmacs is. This is done during 873 directory where the package is in XEmacs. This is done during
879 loading the file @file{hm--html-configuration.el} (@xref{Where Are All 874 loading the file @file{hm--html-configuration.el} (@xref{Where Are All
880 The Customization Variables Defined, Where Are All The Customization 875 The Customization Variables Defined, Where Are All The Customization
881 Variables Defined}.). This may only be useful, in the XEmacs >= 19.12. 876 Variables Defined}.). This may only be useful in XEmacs >= 19.12.
882 @item 877 @item
883 @code{hm--html-frame-template-file}: File, which is used as template for 878 @code{hm--html-frame-template-file}: File which is used as template for
884 a html frame. Such a file is in the package 879 a html frame. An example is in the package
885 @emph{hm--html-menus}. @xref{Contents, Contents}. 880 @emph{hm--html-menus}. @xref{Contents, Contents}.
886 @item 881 @item
887 @code{hm--html-automatic-expand-templates}: Automatic expansion of 882 @code{hm--html-automatic-expand-templates}: Automatic expansion of
888 templates. This feature needs the file @file{tmpl-minor-mode.el} from Heiko 883 templates. This feature needs the file @file{tmpl-minor-mode.el} from Heiko
889 Münkel (@cite{muenkel@@tnt.uni-hannover.de}), which is distributed with the 884 Münkel (@cite{muenkel@@tnt.uni-hannover.de}), which is distributed with the
900 @cindex automounter path 895 @cindex automounter path
901 @vindex hm--html-delete-wrong-path-prefix 896 @vindex hm--html-delete-wrong-path-prefix
902 897
903 @itemize @bullet 898 @itemize @bullet
904 @item 899 @item
905 @code{hm--html-delete-wrong-path-prefix}: If non nil, it specifies path-prefixes, which should be deleted in paths. 900 @code{hm--html-delete-wrong-path-prefix}: If non-nil, it specifies path-prefixes which should be deleted in paths.
906 The Sun automounter adds a temporary prefix to the automounted directories 901 The Sun automounter adds a temporary prefix to the automounted directories
907 (At our site the prefix is /tmp_mnt). But you can't select such a path, 902 (at our site the prefix is /tmp_mnt). But you can't select such a path
908 if the automounter has currently not mounted the directory and so you 903 if the automounter has currently not mounted the directory, and so you
909 can't follow a html-link, which consists of such a path. To overcome 904 can't follow an html link which consists of such a path. To overcome
910 this behaviour, you can set this variable to the prefix 905 this behaviour, you can set this variable to the prefix
911 (eg "/tmp_mnt"). After that, the prefix should be stripped from the 906 (e.g. "/tmp_mnt"). After that, the prefix should be stripped from the
912 paths during the creation of the links. ATTENTION: This variable is 907 paths during the creation of the links. ATTENTION: This variable is
913 used as regular expression ! It can be set to a string or to a list of 908 used as a regular expression! It can be set to a string or to a list of
914 strings. 909 strings.
915 @end itemize 910 @end itemize
916 911
917 @node Automatic Insert Of Information, Latin 1 Characters, Deleting Automounter Path Prefix, Customization Variables 912 @node Automatic Insert Of Information, Latin 1 Characters, Deleting Automounter Path Prefix, Customization Variables
918 @comment node-name, next, previous, up 913 @comment node-name, next, previous, up
923 @cindex created comment 918 @cindex created comment
924 @vindex hm--html-automatic-new-date 919 @vindex hm--html-automatic-new-date
925 @vindex hm--html-automatic-changed-comment 920 @vindex hm--html-automatic-changed-comment
926 @vindex hm--html-automatic-created-comment 921 @vindex hm--html-automatic-created-comment
927 922
928 The @code{hm--html-mode} automatic inserts some useful informations in 923 The @code{hm--html-mode} automatically inserts some useful information in
929 html pages. This behaviour could be changed by the following variables. 924 html pages. This behaviour can be changed by the following variables.
930 925
931 @itemize @bullet 926 @itemize @bullet
932 @item 927 @item
933 @code{hm--html-automatic-new-date}: t => The date in the title line will 928 @code{hm--html-automatic-new-date}: t => The date in the title line will
934 be updated before file saving. nil => No automatic update of the date. 929 be updated before file saving. nil => No automatic update of the date.
951 946
952 @itemize @bullet 947 @itemize @bullet
953 @item 948 @item
954 @code{hm--html-bind-latin-1-char-entities}: Set this to nil, if you 949 @code{hm--html-bind-latin-1-char-entities}: Set this to nil, if you
955 don't want to use the ISO Latin 1 character entities. This is only 950 don't want to use the ISO Latin 1 character entities. This is only
956 useful, if `hm--html-use-old-keymap' is set to nil. It is only used 951 useful if `hm--html-use-old-keymap' is set to nil. It is only used
957 during loading the html package the first time. 952 when loading the html package the first time.
958 @end itemize 953 @end itemize
959 954
960 955
961 @node Drag And Drop, Font Lock Keywords, Latin 1 Characters, Customization Variables 956 @node Drag And Drop, Font Lock Keywords, Latin 1 Characters, Customization Variables
962 @comment node-name, next, previous, up 957 @comment node-name, next, previous, up
966 @vindex hm--html-idd-actions 961 @vindex hm--html-idd-actions
967 962
968 @itemize @bullet 963 @itemize @bullet
969 @item 964 @item
970 @code{hm--html-idd-create-relative-links}: If t, then the 965 @code{hm--html-idd-create-relative-links}: If t, then the
971 @code{hm--html-idd-*} functions are creating relative links. Otherwise 966 @code{hm--html-idd-*} functions create relative links. Otherwise
972 absolute links are used. The idd functions are used for drag and drop. 967 absolute links are used. The idd functions are used for drag and drop.
973 @item 968 @item
974 @code{hm--html-idd-actions}: The action list for the destination mode 969 @code{hm--html-idd-actions}: The action list for the destination mode
975 @code{hm--html-mode}. Look at the description of the variable 970 @code{hm--html-mode}. Look at the description of the variable
976 idd-actions. 971 idd-actions.
1007 @vindex hm--html-mode-prefix-key 1002 @vindex hm--html-mode-prefix-key
1008 1003
1009 @itemize @bullet 1004 @itemize @bullet
1010 @item 1005 @item
1011 @code{hm--html-minor-mode-prefix-key}: The prefix key for the key tables 1006 @code{hm--html-minor-mode-prefix-key}: The prefix key for the key tables
1012 in the @code{hm--html-minor-mode}. 1007 in @code{hm--html-minor-mode}.
1013 @item 1008 @item
1014 @code{hm--html-mode-prefix-key}: The prefix key for the hm--html keys in 1009 @code{hm--html-mode-prefix-key}: The prefix key for the hm--html keys in
1015 the @code{hm--html-mode}. 1010 @code{hm--html-mode}.
1016 @end itemize 1011 @end itemize
1017 1012
1018 1013
1019 @node Pulldown Menu Names, Hook Variables, Prefix Keys, Customization Variables 1014 @node Pulldown Menu Names, Hook Variables, Prefix Keys, Customization Variables
1020 @comment node-name, next, previous, up 1015 @comment node-name, next, previous, up
1021 @subsection Pulldown Menu Names 1016 @subsection Pulldown Menu Names
1022 @cindex pulldown menu names 1017 @cindex pulldown menu names
1023 @vindex hm--html-minor-mode-pulldown-menu-name 1018 @vindex hm--html-minor-mode-pulldown-menu-name
1024 @vindex hm--html-mode-pulldown-menu-name 1019 @vindex hm--html-mode-pulldown-menu-name
1025 1020
1026 It may be, that You'd like to change the names to get the same menu 1021 Perhaps you'd like to change the names to get the same menu
1027 names in the major and in the minor modes of the @code{hm--html-menus} 1022 names in the major and in the minor modes of the @code{hm--html-menus}
1028 package. 1023 package.
1029 1024
1030 @itemize @bullet 1025 @itemize @bullet
1031 @item 1026 @item
1046 functions each time the major html mode is entered or the package is 1041 functions each time the major html mode is entered or the package is
1047 loaded. 1042 loaded.
1048 1043
1049 @itemize @bullet 1044 @itemize @bullet
1050 @item 1045 @item
1051 @code{hm--html-mode-hook}: This hook will be called each time, when the 1046 @code{hm--html-mode-hook}: This hook will be called each time
1052 @code{hm--html-mode} is invoked. 1047 @code{hm--html-mode} is invoked.
1053 @item 1048 @item
1054 @code{hm--html-load-hook}: Hook variable to execute functions after 1049 @code{hm--html-load-hook}: Hook variable to execute functions after
1055 loading the package 1050 loading the package.
1056 @end itemize 1051 @end itemize
1057 1052
1058 1053
1059 @node Previewing HTML Files, Meta Element, Hook Variables, Customization Variables 1054 @node Previewing HTML Files, Meta Element, Hook Variables, Customization Variables
1060 @comment node-name, next, previous, up 1055 @comment node-name, next, previous, up
1061 @subsection Previewing HTML Files 1056 @subsection Previewing HTML Files
1062 @cindex previewing HTML files 1057 @cindex previewing HTML files
1063 @vindex html-view-mosaic-command 1058 @vindex html-view-mosaic-command
1064 @vindex html-sigusr1-signal-value 1059 @vindex html-sigusr1-signal-value
1065 1060
1066 The following two variables are only used, if you preview the html 1061 The following two variables are only used, if you preview html
1067 documents with @code{Mosaic}. There are also some other variables in 1062 documents with @code{Mosaic}. There are also some other variables in
1068 @file{hmtl-view.el}, @xref{Contents, Contents}. Look at that file, if 1063 @file{hmtl-view.el}. @xref{Contents, Contents}. Look at that file if
1069 you've trouble with the functions to preview the html document with the 1064 you have trouble with the functions to preview the html document with
1070 @code{Mosaic}. 1065 @code{Mosaic}.
1071 1066
1072 @itemize @bullet 1067 @itemize @bullet
1073 @item 1068 @item
1074 @code{html-view-mosaic-command}: The command that runs @code{Mosaic} on your 1069 @code{html-view-mosaic-command}: The command that runs @code{Mosaic} on your
1075 system. 1070 system.
1076 @item 1071 @item
1077 @code{html-sigusr1-signal-value}: Value for the SIGUSR1 signal on your 1072 @code{html-sigusr1-signal-value}: Value for the SIGUSR1 signal on your
1078 system. See, usually, @file{/usr/include/sys/signal.h}. 1073 system. See, usually, @file{/usr/include/sys/signal.h}.
1079 @example 1074 @example
1080 SunOS 4.1.x : (setq html-sigusr1-signal-value 30) 1075 SunOS 4.1.x : (setq html-sigusr1-signal-value 30)
1081 SunOS 5.x : (setq html-sigusr1-signal-value 16) 1076 SunOS 5.x : (setq html-sigusr1-signal-value 16)
1082 Linux : (setq html-sigusr1-signal-value 10)) 1077 Linux : (setq html-sigusr1-signal-value 10))
1083 @end example 1078 @end example
1084 @end itemize 1079 @end itemize
1085 1080
1110 @vindex hm--html-intra-tag-indent 1105 @vindex hm--html-intra-tag-indent
1111 @vindex hm--html-tag-name-alist 1106 @vindex hm--html-tag-name-alist
1112 1107
1113 @itemize @bullet 1108 @itemize @bullet
1114 @item 1109 @item
1115 @code{hm--html-disable-indentation}: Set this to t, if you want to 1110 @code{hm--html-disable-indentation}: Set this to t if you want to
1116 disable the indentation in the @code{hm--html-mode}. And may be send me 1111 disable indentation in @code{hm--html-mode}. And maybe send me
1117 (@emph{muenkel@@tnt.uni-hannover.de}) a note, why you've done this. 1112 (@emph{muenkel@@tnt.uni-hannover.de}) a note why you did this.
1118 @item 1113 @item
1119 @code{hm--html-inter-tag-indent}: The indentation after a start tag. 1114 @code{hm--html-inter-tag-indent}: The indentation after a start tag.
1120 @item 1115 @item
1121 @code{hm--html-comment-indent}: The indentation of a comment. 1116 @code{hm--html-comment-indent}: The indentation of a comment.
1122 @item 1117 @item
1123 @code{hm--html-intra-tag-indent}: The indentation after the start of a 1118 @code{hm--html-intra-tag-indent}: The indentation after the start of a
1124 tag. 1119 tag.
1125 @item 1120 @item
1126 @code{hm--html-tag-name-alist}: An alist with tag names known by the 1121 @code{hm--html-tag-name-alist}: An alist with tag names known by
1127 @code{hm--html-mode}. It is used to determine, if a tag is a one element 1122 @code{hm--html-mode}. It is used to determine if a tag is a one element
1128 tag or not. In the future it should also be used to get possible 1123 tag or not. In the future it should also be used to get possible
1129 parameters of the tag. Use lower case characters in this list!!!! If 1124 parameters of the tag. Use lower case characters in this list!!!! If
1130 you've problems with the indentation of 1125 you have problems with the indentation of
1131 @code{:hm--html-one-or-two-element-tag} elements, then you should set 1126 @code{:hm--html-one-or-two-element-tag} elements, then you should set
1132 them to either @code{:hm--html-one-element-tag} or 1127 them to either @code{:hm--html-one-element-tag} or
1133 @code{:hm--html-two-element-tag}, depending on how you use these 1128 @code{:hm--html-two-element-tag}, depending on how you use these
1134 elements. In the future I'll try to implement a better indentation for 1129 elements. In the future I'll try to implement a better indentation for
1135 these elements. 1130 these elements.
1141 @chapter Add New Elements 1136 @chapter Add New Elements
1142 @cindex add new html elements 1137 @cindex add new html elements
1143 @cindex non standard html 1138 @cindex non standard html
1144 @vindex hm--html-tag-name-alist 1139 @vindex hm--html-tag-name-alist
1145 1140
1146 If you'd like to add new HTML elements to this package, you should take 1141 If you'd like to add new HTML elements to this package, you should first take
1147 at first a look at the file @file{hm--html-not-standard.el}, which 1142 a look at the file @file{hm--html-not-standard.el}, which
1148 contains already some non standard elements. If you find your tags 1143 already contains some non-standard elements. If you find your tags
1149 there, you should uncomment the line @code{(require 1144 there, you should uncomment the line @code{(require
1150 'hm--html-not-standard)} in the file @file{hm--html-mode.el}. There are 1145 'hm--html-not-standard)} in the file @file{hm--html-mode.el}. There are
1151 also menu entries for these elements in the file 1146 also menu entries for these elements in the file
1152 @file{hm--html-menu.el}, which are commented out. Don't forget to 1147 @file{hm--html-menu.el}, which are commented out. Don't forget to
1153 recompile the changed lisp files after that! 1148 recompile the changed lisp files after that!
1155 If you don't find your new elements there, you should do the following 1150 If you don't find your new elements there, you should do the following
1156 steps to add them: 1151 steps to add them:
1157 1152
1158 @enumerate 1153 @enumerate
1159 @item 1154 @item
1160 Search a tag, which is similar to the one you want to add. Similar 1155 Locate a tag which is similar to the one you want to add. "Similar"
1161 means, that it is inserted in the way you want to insert the new 1156 means that it is inserted in the way you want to insert the new
1162 tags. Now let's assume, that you chose @samp{<strong></strong>}. 1157 tags. Now let's assume, that you chose @samp{<strong></strong>}.
1163 @item 1158 @item
1164 Look at the file @file{hm--html.el} and search the function(s) which 1159 Look at the file @file{hm--html.el} and search the function(s) which
1165 inserts the "similar tags". If the HTML element consists of only one 1160 inserts the similar tag(s). If the HTML element consists of only one
1166 tag, then there should be only one function for inserting the tag. If 1161 tag, then there should be only one function for inserting the tag. If
1167 the element consists of a start and an end tag, there are at least two 1162 the element consists of a start and an end tag, there are at least two
1168 functions. Only in some special cases, if it is possible to insert 1163 functions. Only in some special cases, if it is possible to insert
1169 elements with different attribute values, there are more than two 1164 elements with different attribute values, are there more than two
1170 functions. In the case of @samp{<strong></strong>}, there are the two 1165 functions. In the case of @samp{<strong></strong>}, there are the two
1171 functions @code{hm--html-add-strong} and 1166 functions @code{hm--html-add-strong} and
1172 @code{hm--html-add-strong-to-region}. The first one is used, if no 1167 @code{hm--html-add-strong-to-region}. The first one is used if no
1173 region is active and the second if a region is active. The naming scheme 1168 region is active, and the second if a region is active. The naming scheme
1174 of these functions are always @var{hm--html-add-<tagname>} and 1169 of these functions is always @var{hm--html-add-<tagname>} and
1175 @var{hm--html-add-<tagname>-to-region}. @var{<tagname>} is not in all 1170 @var{hm--html-add-<tagname>-to-region}. @var{<tagname>} is not in all
1176 cases the tagname. Sometimes a more human readable name is used (eg: 1171 cases the tagname. Sometimes a more human readable name is used (e.g.
1177 bold instead of b). 1172 bold instead of b).
1178 @item 1173 @item
1179 To get the right indentation for the new tags you should add an entry 1174 To get the right indentation for the new tags you should add an entry
1180 for it to the variable @code{hm--html-tag-name-alist}, which is defined 1175 for them to the variable @code{hm--html-tag-name-alist}, which is defined
1181 in @file{hm--html-configuration.el}. Lets assume, that the new tagname 1176 in @file{hm--html-configuration.el}. Let's assume that the new tagname
1182 is @samp{foo}, then the entry in @code{hm--html-tag-name-alist} should 1177 is @samp{foo}. The entry in @code{hm--html-tag-name-alist} should
1183 be 1178 be
1184 @lisp 1179 @lisp
1185 ("foo" (:hm--html-one-element-tag t)) 1180 ("foo" (:hm--html-one-element-tag t))
1186 @end lisp 1181 @end lisp
1187 if the new element consists only of one tag (@samp{img} is such an 1182 if the new element consists only of one tag (@samp{img} is such an
1192 if the new element consists of two tags (@samp{strong} is such an 1187 if the new element consists of two tags (@samp{strong} is such an
1193 element) or 1188 element) or
1194 @lisp 1189 @lisp
1195 ("foo" (:hm--html-one-or-two-element-tag t)) 1190 ("foo" (:hm--html-one-or-two-element-tag t))
1196 @end lisp 1191 @end lisp
1197 if the new element consists of two tags, but it is allowed to use the 1192 if the new element consists of two tags, but it is permissible to use the
1198 start tag without it's end tag (@samp{p} is such an element). 1193 start tag without its end tag (@samp{p} is such an element).
1199 @end enumerate 1194 @end enumerate
1200 1195
1201 Now you are ready and able to insert the new tags with 1196 Now you are ready and able to insert the new tags with
1202 @example 1197 @example
1203 M-x hm--html-add-foo 1198 M-x hm--html-add-foo
1205 and 1200 and
1206 @example 1201 @example
1207 M-x hm--html-add-foo-to-region 1202 M-x hm--html-add-foo-to-region
1208 @end example 1203 @end example
1209 1204
1210 But if you want to add the new commands also to the popup menu, 1205 If you want to add the new commands also to the popup menu,
1211 then you've to take a look at @file{hm--html-menu.el}, where all the 1206 then you have to take a look at @file{hm--html-menu.el}, where all the
1212 menus are defined. Look at @code{hm--html-menu-noregion-expert} and 1207 menus are defined. Look at @code{hm--html-menu-noregion-expert} and
1213 @code{hm--html-menu-region-expert}. The first one is used, if no region is 1208 @code{hm--html-menu-region-expert}. The first one is used if no region is
1214 active and the second, if a region is active (both are only used, 1209 active, and the second if a region is active (both are only available
1215 if the "expert menus" are used; this is an option in the pulldown 1210 if the "expert menus" are used; this is an option in the pulldown
1216 menu). You should now add an entry like 1211 menu). You should now add an entry like
1217 @lisp 1212 @lisp
1218 ["Foo" hm--html-add-foo t] 1213 ["Foo" hm--html-add-foo t]
1219 @end lisp 1214 @end lisp
1224 to the @code{hm--html-menu-region-expert} variable (only if 1219 to the @code{hm--html-menu-region-expert} variable (only if
1225 @code{hm--html-add-foo-to-region} exists). You can do this by setting the 1220 @code{hm--html-add-foo-to-region} exists). You can do this by setting the
1226 whole variable to a new value or by using the function 1221 whole variable to a new value or by using the function
1227 @code{add-menu-button}. I recommend the last method. 1222 @code{add-menu-button}. I recommend the last method.
1228 1223
1229 If you'd like to have also a key sequence for inserting the new tag, 1224 If you'd like to have a key sequence for inserting the new tag as well,
1230 then you've to take a look at @file{hm--html-keys.el}. There are 1225 take a look at @file{hm--html-keys.el}. There are
1231 different key tables defined for region and no region cases and for 1226 different key tables defined for region and no region cases and for
1232 different sorts of elements, like anchors, frame elements (doesn't mean 1227 different sorts of elements, like anchors, frame elements (doesn't mean
1233 the Netscape element frame) and so on. These "groups" are the same as 1228 the Netscape element frame) and so on. These "groups" are the same as
1234 the sub menu groups. 1229 the submenu groups.
1235 1230
1236 1231
1237 @node Use With psgml-html, Internal Drag And Drop, Add New Elements, Top 1232 @node Use With psgml-html, Internal Drag And Drop, Add New Elements, Top
1238 @comment node-name, next, previous, up 1233 @comment node-name, next, previous, up
1239 @chapter Use With psgml-html 1234 @chapter Use With psgml-html
1240 @cindex use with other HTML modes 1235 @cindex use with other HTML modes
1241 @findex hm--html-minor-mode 1236 @findex hm--html-minor-mode
1242 1237
1243 The package provides a minor mode called @code{hm--html-minor-mode}, 1238 The package provides a minor mode called @code{hm--html-minor-mode},
1244 which could be used to join the features of this package with another 1239 which could be used to join the features of this package with another
1245 HTML package. Currently this is only tested with the psgml html mode in 1240 HTML package. Currently this is only tested with the psgml-html mode in
1246 the XEmacs. Please let me know, if it works or not with other packages 1241 XEmacs. Please let me know if it works or not with other packages
1247 or in the Emacs 19. 1242 or in Emacs 19.
1248 1243
1249 If you'd like to use the minor mode in the psgml html mode, you've to 1244 If you'd like to use the minor mode in psgml-html mode,
1250 put the following line in your @file{.emacs}: 1245 put the following line in your @file{.emacs}:
1251 1246
1252 @lisp 1247 @lisp
1253 (add-hook 'html-mode-hook 'hm--html-minor-mode) 1248 (add-hook 'html-mode-hook 'hm--html-minor-mode)
1254 @end lisp 1249 @end lisp
1255 1250
1256 Note: This should work only in XEmacs versions greater than 19.14 and not 1251 Note: This should work only in XEmacs versions greater than 19.14 and not
1257 in 20.0. It doesn't work in other versions, because the hook variable 1252 in 20.0. It doesn't work in other versions because the hook variable
1258 @code{html-mode-hook} exists not in that versions. Therefore in that 1253 @code{html-mode-hook} doesn't exist in those versions. Therefore in those
1259 versions you've to called the minor mode either by hand or change the 1254 versions you must either call the minor mode by hand or change the
1260 lisp file of the psgml html mode. 1255 lisp file of the psgml-html mode.
1261 1256
1262 1257
1263 @node Internal Drag And Drop, Template Minor Mode, Use With psgml-html, Top 1258 @node Internal Drag And Drop, Template Minor Mode, Use With psgml-html, Top
1264 @comment node-name, next, previous, up 1259 @comment node-name, next, previous, up
1265 @chapter Internal Drag And Drop 1260 @chapter Internal Drag And Drop
1267 @cindex internal drag and drop 1262 @cindex internal drag and drop
1268 @vindex idd-actions 1263 @vindex idd-actions
1269 @vindex hm--html-idd-actions 1264 @vindex hm--html-idd-actions
1270 1265
1271 1266
1272 The file @file{internal-drag-and-drop.el}, which is shipped with the 1267 The file @file{internal-drag-and-drop.el}, which is shipped with
1273 @file{hm--html-menus}, provides a general package for internal drag and 1268 @file{hm--html-menus}, provides a general package for internal drag and
1274 drop in the emacs. General means, that it can be used also without the 1269 drop in emacs. "General" means that it can be used apart from
1275 @code{hm--html-mode} in any other mode. 1270 @code{hm--html-mode} in any other mode.
1276 1271
1277 You can start such an action by clicking with the mouse in the source 1272 You can start such an action by clicking with the mouse in the source
1278 buffer and then in the destination buffer. The action could depend on 1273 buffer and then in the destination buffer. The action may depend on
1279 the points where you've clicked with the mouse, on the state of the 1274 the points where you've clicked with the mouse, on the state of the
1280 region, the point, the mark and any other properties of the source and 1275 region, the point, the mark and any other properties of the source and
1281 the destination buffers. The actions are defined by the variable 1276 the destination buffers. The actions are defined by the variable
1282 @code{idd-actions}, which is a buffer local variable. 1277 @code{idd-actions}, which is a buffer local variable.
1283 1278
1291 @comment node-name, next, previous, up 1286 @comment node-name, next, previous, up
1292 @section Drag And Drop Customization 1287 @section Drag And Drop Customization
1293 @cindex customization 1288 @cindex customization
1294 @cindex configuration 1289 @cindex configuration
1295 1290
1296 The internal drag and drop functions could be used in all 1291 The internal drag and drop functions may be used in all
1297 modes. Therefore it's general customization isn't done in 1292 modes. Therefore their general customization isn't done in
1298 @file{hm--html-configuration.el}. It's variables are defined in the file 1293 @file{hm--html-configuration.el}. Its variables are defined in the file
1299 @file{internal-drag-and-drop.el} instead. You can set them in your 1294 @file{internal-drag-and-drop.el} instead. You can set them in your
1300 @file{.emacs} or in one of the other emacs init files (eg: 1295 @file{.emacs} or in one of the other emacs init files (e.g.
1301 @file{default.el}). The following subsections describes the main 1296 @file{default.el}). The following subsections describe the main
1302 customization variables. 1297 customization variables.
1303 1298
1304 1299
1305 @menu 1300 @menu
1306 * Defining The Drag And Drop Actions:: 1301 * Defining The Drag And Drop Actions::
1312 @subsection Defining The Drag And Drop Actions 1307 @subsection Defining The Drag And Drop Actions
1313 @cindex actions 1308 @cindex actions
1314 @cindex drag and drop actions 1309 @cindex drag and drop actions
1315 @vindex idd-actions 1310 @vindex idd-actions
1316 1311
1317 The drag and drop actions are commands, which are called after an 1312 The drag and drop actions are commands which are called after an
1318 internal drag and drop. They depends from the source and the destination 1313 internal drag and drop. They depend on the source and the destination
1319 of the drag and drop. Drag and drop actions must be defined by the 1314 of the drag and drop. Drag and drop actions are defined by the
1320 variable: 1315 variable:
1321 1316
1322 @itemize @bullet 1317 @itemize @bullet
1323 @item 1318 @item
1324 @code{idd-actions}: A list with actions, depending on the source and the 1319 @code{idd-actions}: A list with actions, depending on the source and the
1354 @w{@code{idd-if-local-file-p}} | @w{@code{idd-if-buffer-name-p}} | 1349 @w{@code{idd-if-local-file-p}} | @w{@code{idd-if-buffer-name-p}} |
1355 @w{@code{idd-if-modifiers-p}} | ... 1350 @w{@code{idd-if-modifiers-p}} | ...
1356 @end table 1351 @end table
1357 @end lisp 1352 @end lisp
1358 1353
1359 The @var{<specification-type>} - functions must have two arguments, the 1354 The @var{<specification-type>} - functions must have two arguments. The
1360 first one is the source or destination and the second is the 1355 first one is the source or destination and the second is the
1361 @var{<value>}. It must return @code{nil}, if the test wasn't successful 1356 @var{<value>}. It must return @code{nil}, if the test wasn't successful,
1362 and a number (in general 1), which specifies the weight of the test 1357 and a number (in general 1), which specifies the weight of the test
1363 function. The weights of all single tests are added to a summary weight 1358 function. The weights of all single tests are added to a summary weight
1364 and assigned to the action. The action with the highest weight is called 1359 and assigned to the action. The action with the highest weight is called
1365 from the action handler. Look at the definition of 1360 from the action handler. Look at the definition of
1366 @w{@code{idd-if-major-mode-p}}, @w{@code{idd-if-minor-mode-p}} and so on for 1361 @w{@code{idd-if-major-mode-p}}, @w{@code{idd-if-minor-mode-p}} and so on for
1376 If @var{<destination-specification-1>} or @var{<source-specification-1>} 1371 If @var{<destination-specification-1>} or @var{<source-specification-1>}
1377 is set to @code{nil}, then every source or source 1372 is set to @code{nil}, then every source or source
1378 matches. @code{idd-actions} is a buffer local variable, which should be 1373 matches. @code{idd-actions} is a buffer local variable, which should be
1379 at least mode depended. So if the @var{<destination-specification-1>} is 1374 at least mode depended. So if the @var{<destination-specification-1>} is
1380 set to @code{nil} it says, that the destination buffer must only have a 1375 set to @code{nil} it says, that the destination buffer must only have a
1381 specific mode. But however, it's also possible to define a general 1376 specific mode. However, it's also possible to define a general
1382 @code{idd-actions} list, where the destination mode is specified by 1377 @code{idd-actions} list, where the destination mode is specified by
1383 @code{idd-if-major-mode-p}. 1378 @code{idd-if-major-mode-p}.
1384 1379
1385 @var{<action>} is a function, which has two arguments, the first 1380 @var{<action>} is a function which has two arguments. The first
1386 specifies the source and the second the destination. Look at the 1381 specifies the source and the second the destination. Look at the
1387 function definition of @code{idd-action-copy-region} and 1382 function definition of @code{idd-action-copy-region} and
1388 @code{idd-action-copy-replace-region}. They are examples for such 1383 @code{idd-action-copy-replace-region}. They are examples for such
1389 actions. 1384 actions.
1390 1385
1391 The following is an example for the @code{hm--html-mode}: 1386 The following is an example for @code{hm--html-mode}:
1392 1387
1393 @lisp 1388 @lisp
1394 (defvar idd-actions 1389 (defvar idd-actions
1395 '((nil (((idd-if-major-mode-p . dired-mode) 1390 '((nil (((idd-if-major-mode-p . dired-mode)
1396 (idd-if-dired-file-on-line-p . ".*\\.\\(gif\\)\\|\\(jpq\\)")) 1391 (idd-if-dired-file-on-line-p . ".*\\.\\(gif\\)\\|\\(jpq\\)"))
1419 @vindex idd-global-help-mouse-keys 1414 @vindex idd-global-help-mouse-keys
1420 @vindex idd-drag-and-drop-mouse-binding-type 1415 @vindex idd-drag-and-drop-mouse-binding-type
1421 @findex idd-mouse-drag-and-drop 1416 @findex idd-mouse-drag-and-drop
1422 @findex idd-help-mouse-drag-and-drop 1417 @findex idd-help-mouse-drag-and-drop
1423 1418
1424 There are the following three variables, which determines the mouse 1419 The following three variables determine the mouse
1425 bindings and the mouse behaviour for the internal drag and drop package: 1420 bindings and the mouse behaviour for the internal drag and drop package:
1426 1421
1427 @itemize @bullet 1422 @itemize @bullet
1428 @item 1423 @item
1429 @code{idd-global-mouse-keys}: The mouse keys for the command 1424 @code{idd-global-mouse-keys}: The mouse keys for the command
1430 @code{idd-mouse-drag-and-drop}. The command 1425 @code{idd-mouse-drag-and-drop}. The command
1431 @code{idd-mouse-drag-and-drop} is bound during the loading of the 1426 @code{idd-mouse-drag-and-drop} is bound during the loading of the
1432 package @file{internal-drag-and-drop} to these keys in the @b{global 1427 package @file{internal-drag-and-drop} to these keys in the @b{global
1433 keymap}. The drag and drop action @b{must be bound global}, because the 1428 keymap}. The drag and drop action @b{must be bound global}, because the
1434 drag and drop action must be started by a click in the source 1429 drag and drop action must be started by a click in the source
1435 buffer. Therefore no action will be performed, if the mouse keys are not 1430 buffer. Therefore no action will be performed if the mouse keys are not
1436 bound to @code{idd-mouse-drag-and-drop} in the destination buffer. 1431 bound to @code{idd-mouse-drag-and-drop} in the destination buffer.
1437 1432
1438 Set it to @code{nil}, if you don't want to bind this function during 1433 Set it to @code{nil}, if you don't want to bind this function during
1439 loading. 1434 loading.
1440 1435
1441 If the command is already bound in the global keymap during loading, 1436 If the command is already bound in the global keymap during loading,
1442 then this key sequence will not be bind. 1437 then this key sequence will not be bound.
1443 1438
1444 By default the mouse binding is @key{meta} @key{control} @key{button1}. 1439 By default the mouse binding is @key{meta} @key{control} @key{button1}.
1445 1440
1446 @item 1441 @item
1447 @code{idd-global-help-mouse-keys}: The mouse keys for the command 1442 @code{idd-global-help-mouse-keys}: The mouse keys for the command
1448 @code{idd-help-mouse-drag-and-drop}. The command 1443 @code{idd-help-mouse-drag-and-drop}. The command
1449 @code{idd-help-mouse-drag-and-drop} is bound during the loading of the 1444 @code{idd-help-mouse-drag-and-drop} is bound during the loading of the
1450 package @file{internal-drag-and-drop} to this keys in the @b{global 1445 package @file{internal-drag-and-drop} to these keys in the @b{global
1451 keymap}. 1446 keymap}.
1452 1447
1453 Set it to @code{nil}, if you don't want to bind this function during 1448 Set it to @code{nil} if you don't want to bind this function during
1454 loading. 1449 loading.
1455 1450
1456 If the command is already bound in the global keymap during loading, 1451 If the command is already bound in the global keymap during loading,
1457 then this key sequence will not be bind. 1452 then this key sequence will not be bound.
1458 1453
1459 By default the mouse binding is @key{meta} @key{control} @key{button3}. 1454 By default the mouse binding is @key{meta} @key{control} @key{button3}.
1460 1455
1461 @item 1456 @item
1462 @code{idd-drag-and-drop-mouse-binding-type}: The type of the drag and 1457 @code{idd-drag-and-drop-mouse-binding-type}: The type of the drag and
1463 drop mouse binding. The value maybe @code{click} or 1458 drop mouse binding. The value may be @code{click} or
1464 @code{press-button-during-move}. A value of @code{click} means, that 1459 @code{press-button-during-move}. A value of @code{click} means that
1465 you've to click over the source, leave the button and click it again 1460 you have to click over the source, release the button and click it again
1466 over the destination. A value of @code{press-button-during-move} means, 1461 over the destination. A value of @code{press-button-during-move} means
1467 that you've to press the button down over the source and hold it until 1462 that you have to press the button down over the source and hold it until
1468 the mouse pointer is over the destination. 1463 the mouse pointer is over the destination.
1469 1464
1470 The @emph{disadvantage} of the @code{press-button-during-move} type 1465 The @emph{disadvantage} of the @code{press-button-during-move} type
1471 compared with the @code{click} type is, that you can't select a destination 1466 compared with the @code{click} type is that you can't select a destination
1472 region and therefore a drag and drop action depending on a selected 1467 region, and therefore a drag and drop action depending on a selected
1473 region can't be started with that type of mouse binding. 1468 region can't be started with that type of mouse binding.
1474 @end itemize 1469 @end itemize
1475 1470
1476 @node The Drag And Drop Commands, , Drag And Drop Customization, Internal Drag And Drop 1471 @node The Drag And Drop Commands, , Drag And Drop Customization, Internal Drag And Drop
1477 @comment node-name, next, previous, up 1472 @comment node-name, next, previous, up
1478 @section The Drag And Drop Commands 1473 @section The Drag And Drop Commands
1479 @cindex drag and drop commands 1474 @cindex drag and drop commands
1480 1475
1481 There are 2 groups of commands. The first one contains commands, which 1476 There are 2 groups of commands. The first contains commands which
1482 performs the drag and drop action and the second displayed a help 1477 perform the drag and drop action and the second displays help
1483 message about a possible drag and drop action. 1478 messages about a possible drag and drop action.
1484 1479
1485 1480
1486 @menu 1481 @menu
1487 * Performing The Drag And Drop Action:: 1482 * Performing The Drag And Drop Action::
1488 * Displaying Help On Drag And Drop:: 1483 * Displaying Help On Drag And Drop::
1498 @findex idd-mouse-drag-and-drop-press-button-during-move 1493 @findex idd-mouse-drag-and-drop-press-button-during-move
1499 @findex idd-mouse-drag-and-drop-click 1494 @findex idd-mouse-drag-and-drop-click
1500 @findex idd-help-start-action 1495 @findex idd-help-start-action
1501 @vindex idd-drag-and-drop-mouse-binding-type 1496 @vindex idd-drag-and-drop-mouse-binding-type
1502 1497
1503 There are the following five different commands, which performs internal 1498 The following five commands perform internal
1504 drag and drop actions: 1499 drag and drop actions:
1505 1500
1506 @itemize @bullet 1501 @itemize @bullet
1507 @item 1502 @item
1508 @code{idd-mouse-drag-and-drop}: Performs a drag and drop action. It 1503 @code{idd-mouse-drag-and-drop}: Performs a drag and drop action. It
1509 calls the command @code{idd-mouse-drag-and-drop-click} or 1504 calls the command @code{idd-mouse-drag-and-drop-click} or
1510 @code{idd-mouse-drag-and-drop-press-button-during-move} depending on the 1505 @code{idd-mouse-drag-and-drop-press-button-during-move} depending on the
1511 value of @code{idd-drag-and-drop-mouse-binding-type}. However you've set 1506 value of @code{idd-drag-and-drop-mouse-binding-type}. However you've set
1512 this, you start a drag and drop action with this command by pressing 1507 this, you start a drag and drop action with this command by pressing
1513 down it's mouse button over the source. This command is bind by default 1508 down its mouse button over the source. This command is bound by default
1514 to a global mouse key sequence. @xref{The Mouse Bindings}. 1509 to a global mouse key sequence. @xref{The Mouse Bindings}.
1515 1510
1516 @item 1511 @item
1517 @code{idd-start-mouse-drag-and-drop}: Starts a drag and drop command. 1512 @code{idd-start-mouse-drag-and-drop}: Starts a drag and drop command.
1518 This command could be used to start a drag and drop command without a 1513 This command could be used to start a drag and drop command without a
1519 button event. Therefore this should not be bind direct to a mouse 1514 button event. Therefore this should not be bound directly to a mouse
1520 button. This command can be used to start a drag and drop action with a 1515 button. This command can be used to start a drag and drop action with a
1521 click on a menu item or tool bar icon. After that you've to press down a 1516 click on a menu item or tool bar icon. After that you have to press a
1522 mouse button over the source. The rest depends on the value of 1517 mouse button over the source. The rest depends on the value of
1523 @code{idd-drag-and-drop-mouse-binding-type}, like with the command 1518 @code{idd-drag-and-drop-mouse-binding-type}, as with the command
1524 @code{idd-mouse-drag-and-drop}. 1519 @code{idd-mouse-drag-and-drop}.
1525 1520
1526 @item 1521 @item
1527 @code{idd-help-start-action}: It is possible to display a help buffer 1522 @code{idd-help-start-action}: It is possible to display a help buffer
1528 with a message in it, which describes the action instead of performing 1523 with a message in it, which describes the action instead of performing
1531 buffer, which runs this command. 1526 buffer, which runs this command.
1532 1527
1533 @item 1528 @item
1534 @code{idd-mouse-drag-and-drop-press-button-during-move}: Performs a drag 1529 @code{idd-mouse-drag-and-drop-press-button-during-move}: Performs a drag
1535 and drop action in a more traditional way than 1530 and drop action in a more traditional way than
1536 @code{idd-mouse-drag-and-drop-click}. At first you must press the button 1531 @code{idd-mouse-drag-and-drop-click}. First you press the button
1537 down over the source and then move with the pressed button to the 1532 over the source and then move with the depressed button to the
1538 destination, where you must leave the button up. This must be bind to a 1533 destination, where you release the button. This must be bound to a
1539 mouse button. The @code{SOURCE-EVENT} must be a 1534 mouse button. The @code{SOURCE-EVENT} must be a
1540 @code{button-press-event}. 1535 @code{button-press-event}.
1541 1536
1542 The disadvantage of this command compared with the command 1537 The disadvantage of this command compared with the command
1543 @code{idd-mouse-drag-and-drop-click} is, that you can't select a 1538 @code{idd-mouse-drag-and-drop-click} is, that you can't select a
1544 destination region. 1539 destination region.
1545 1540
1546 You should bind the command @code{idd-mouse-drag-and-drop} instead of 1541 You should bind the command @code{idd-mouse-drag-and-drop} instead of
1547 this one, because it's then possible to switch between both drag and 1542 this one, because it's then possible to switch between both drag and
1548 drop behaviour by changing only one variable. 1543 drop behaviours by changing only one variable.
1549 1544
1550 @item 1545 @item
1551 @code{idd-mouse-drag-and-drop-click}: Performs a drag and drop action in 1546 @code{idd-mouse-drag-and-drop-click}: Performs a drag and drop action in
1552 a more useful way than 1547 a more useful way than
1553 @code{idd-mouse-drag-and-drop-press-button-during-move}. At first you 1548 @code{idd-mouse-drag-and-drop-press-button-during-move}. First you
1554 must click on the source and after that on the destination. This must 1549 click on the source and then on the destination. This must
1555 be bind to a mouse button. The @code{SOURCE-EVENT} must be a 1550 be bound to a mouse button. The @code{SOURCE-EVENT} must be a
1556 @code{button-press-event}. 1551 @code{button-press-event}.
1557 1552
1558 You should bind the command @code{idd-mouse-drag-and-drop} instead of 1553 You should bind the command @code{idd-mouse-drag-and-drop} instead of
1559 this one, because it's then possible to switch between both drag and 1554 this one, because it's then possible to switch between both drag and
1560 drop behaviour by changing only one variable. 1555 drop behaviours by changing only one variable.
1561 @end itemize 1556 @end itemize
1562 1557
1563 1558
1564 @node Displaying Help On Drag And Drop, , Performing The Drag And Drop Action, The Drag And Drop Commands 1559 @node Displaying Help On Drag And Drop, , Performing The Drag And Drop Action, The Drag And Drop Commands
1565 @comment node-name, next, previous, up 1560 @comment node-name, next, previous, up
1568 @cindex displaying help on drag and drop 1563 @cindex displaying help on drag and drop
1569 @findex idd-help-mouse-drag-and-drop 1564 @findex idd-help-mouse-drag-and-drop
1570 @findex idd-start-help-mouse-drag-and-drop 1565 @findex idd-start-help-mouse-drag-and-drop
1571 1566
1572 It's possible to display a buffer with a help message describing the 1567 It's possible to display a buffer with a help message describing the
1573 action before actually performing it. To perform the action, you've then 1568 action being considered before actually performing it. To perform the
1574 to click on a special extent in the help buffer. To get the help buffer, 1569 action, you then click on a special extent in the help buffer. To get
1575 you've to do the same things, as you've to do to perform the action 1570 the help buffer, you do the same things as you do to perform the action
1576 direct. Only the mouse key differs. There are two commands for this: 1571 itself. Only the mouse key differs. There are two commands for this:
1577 1572
1578 @itemize @bullet 1573 @itemize @bullet
1579 @item 1574 @item
1580 @code{idd-help-mouse-drag-and-drop}: Displays help about the drag and 1575 @code{idd-help-mouse-drag-and-drop}: Displays help about the drag and
1581 drop action. It works similar as @code{idd-mouse-drag-and-drop} 1576 drop action. It works similarly to @code{idd-mouse-drag-and-drop}
1582 (@pxref{Performing The Drag And Drop Action}). 1577 (@pxref{Performing The Drag And Drop Action}).
1583 1578
1584 By default this command is global bound to @key{meta} @key{control} 1579 By default this command is globally bound to @key{meta} @key{control}
1585 @key{button3}. This could be changed with the variable 1580 @key{button3}. This may be changed with the variable
1586 @code{idd-global-help-mouse-keys} (@pxref{The Mouse Bindings}). 1581 @code{idd-global-help-mouse-keys} (@pxref{The Mouse Bindings}).
1587 1582
1588 @item 1583 @item
1589 @code{idd-start-help-mouse-drag-and-drop}: Starts displaying help about 1584 @code{idd-start-help-mouse-drag-and-drop}: Starts displaying help about
1590 the drag and drop action. It works similar as 1585 the drag and drop action. It works similarly to
1591 @code{idd-start-mouse-drag-and-drop} (@pxref{Performing The Drag And 1586 @code{idd-start-mouse-drag-and-drop} (@pxref{Performing The Drag And
1592 Drop Action}) and can be used to start the help by clicking on a menu 1587 Drop Action}) and can be used to start the help by clicking on a menu
1593 item or a tool bar icon. 1588 item or a tool bar icon.
1594 @end itemize 1589 @end itemize
1595 1590
1601 1596
1602 There's a file called @file{tmpl-minor-mode.el} in the distribution 1597 There's a file called @file{tmpl-minor-mode.el} in the distribution
1603 of the package @emph{hm---html-menus}. It provides functions to use 1598 of the package @emph{hm---html-menus}. It provides functions to use
1604 templates for the @code{hm--html-mode} and also for other modes. It 1599 templates for the @code{hm--html-mode} and also for other modes. It
1605 needs nothing from the rest of the package and therefore it can be used 1600 needs nothing from the rest of the package and therefore it can be used
1606 independently of the @code{hm--html-mode}. 1601 independently of @code{hm--html-mode}.
1607 1602
1608 1603
1609 @menu 1604 @menu
1610 * What Are Templates:: 1605 * What Are Templates::
1611 * Syntax Of Templates:: 1606 * Syntax Of Templates::
1619 @cindex templates 1614 @cindex templates
1620 @findex tmpl-insert-template-file 1615 @findex tmpl-insert-template-file
1621 @findex tmpl-expand-templates-in-buffer 1616 @findex tmpl-expand-templates-in-buffer
1622 @findex tmpl-expand-templates-in-region 1617 @findex tmpl-expand-templates-in-region
1623 1618
1624 Templates are special pieces of text, which can be expanded by the 1619 Templates are special pieces of text, which can be expanded by
1625 emacs. Expansion means, that the template is replaced by something else, 1620 emacs. Expansion means that the template is replaced by something else,
1626 which is determined by evaluating lisp forms or emacs commands. The 1621 determined by evaluating lisp forms or emacs commands. The
1627 expansion can be done automaticly after the insert of templates 1622 expansion can be done automatically after the insertion of templates
1628 with the command @code{tmpl-insert-template-file} in a buffer or by hand 1623 with the command @code{tmpl-insert-template-file} in a buffer or by hand
1629 with the commands @code{tmpl-expand-templates-in-buffer} or 1624 with the commands @code{tmpl-expand-templates-in-buffer} or
1630 @code{tmpl-expand-templates-in-region}. 1625 @code{tmpl-expand-templates-in-region}.
1631 1626
1632 Templates can be put together with normal text in a so called template 1627 Templates can be put together with normal text in a so called template
1651 The templates are marked with the sign ^@@, which stands for the null 1646 The templates are marked with the sign ^@@, which stands for the null
1652 character (\000). It can be inserted in a buffer with the keys @kbd{C-q 1647 character (\000). It can be inserted in a buffer with the keys @kbd{C-q
1653 C-SPC}. You can also use any other character or string of characters by 1648 C-SPC}. You can also use any other character or string of characters by
1654 changing the variable @code{tmpl-sign}. 1649 changing the variable @code{tmpl-sign}.
1655 1650
1656 At the moment, there are 3 different mayor types of templates: 1651 At the moment, there are 3 major types of templates:
1657 1652
1658 @enumerate 1653 @enumerate
1659 @item 1654 @item
1660 @emph{Emacs Lisp function templates}: The expansion of such a template 1655 @emph{Emacs Lisp function templates}: The expansion of such a template
1661 evals a lisp form. It is possible to use functions or variables as lisp 1656 evals a lisp form. It is possible to use functions or variables as lisp
1663 1658
1664 @lisp 1659 @lisp
1665 ^@@LISP^@@ (insert-file "~/.emacs") ^@@END LISP^@@ 1660 ^@@LISP^@@ (insert-file "~/.emacs") ^@@END LISP^@@
1666 @end lisp 1661 @end lisp
1667 1662
1668 It inserts the contents of the file @file{~/.emacs} in the current 1663 inserts the contents of the file @file{~/.emacs} in the current
1669 buffer during the expansion. 1664 buffer during the expansion.
1670 1665
1671 @item 1666 @item
1672 @emph{Emacs command templates}: The expansion of a command template 1667 @emph{Emacs command templates}: The expansion of a command template
1673 evals a template in the same way as an interactive command, which is 1668 evals a template in the same way as an interactive command, which is
1675 1670
1676 @lisp 1671 @lisp
1677 ^@@COMMAND^@@ insert-file ^@@END COMMAND^@@ 1672 ^@@COMMAND^@@ insert-file ^@@END COMMAND^@@
1678 @end lisp 1673 @end lisp
1679 1674
1680 It runs the interactive command @code{insert-file} during the expansion. 1675 runs the interactive command @code{insert-file} during the expansion.
1681 1676
1682 @item 1677 @item
1683 @emph{Template comments} Nothing will be evaluated during the expansion 1678 @emph{Template comments} Nothing will be evaluated during the expansion
1684 of a template comment. It is only a comment. For example: 1679 of a template comment. It is only a comment. For example:
1685 1680
1689 1684
1690 The end of the comment is the end of the line. Therefore it has the same 1685 The end of the comment is the end of the line. Therefore it has the same
1691 syntax as a lisp or C++ comment. 1686 syntax as a lisp or C++ comment.
1692 @end enumerate 1687 @end enumerate
1693 1688
1694 The default is, that a template will be deleted after its expansion, but 1689 By default, a template will be deleted after its expansion, but
1695 without the linefeed. Look at the following examples: 1690 without the linefeed. Look at the following examples:
1696 1691
1697 Before the expansion: 1692 Before the expansion:
1698 1693
1699 @example 1694 @example
1707 Line before the template 1702 Line before the template
1708 1703
1709 Line after the template 1704 Line after the template
1710 1705
1711 1706
1712 Templates can start in every column and only the template will be deleted 1707 Templates can start in any column, and only the template will be deleted
1713 after its expansion. 1708 after its expansion.
1714 1709
1715 1710
1716 There is also the possibility to put an attribute list in a template. The 1711 It is also possible to put an attribute list in a template. The
1717 attributes of the list are controlling the deletion of the template. It 1712 attributes of the list control the deletion of the template. It
1718 may be, that this will be extended in the future with other attributes. 1713 may be that this will be extended in the future with other attributes.
1719 The attribute list must be specified as an alist (assoc list) in the start 1714 The attribute list must be specified as an alist (assoc list) in the start
1720 tag of a template and after its type. Each element of the alist consists 1715 tag of a template and after its type. Each element of the alist consists
1721 of the name of the attribute following its value. 1716 of the name of the attribute following its value.
1722 If no attribute list is specified or if an attribute is missing, then the 1717 If no attribute list is specified or if an attribute is missing, then the
1723 default values are used. At the moment there are the following 2 attributes: 1718 default values are used. At the moment there are the following 2 attributes:
1724 1719
1725 @enumerate 1720 @enumerate
1726 @item @emph{don't delete attribute} (@code{DONT_DELETE}): If the value 1721 @item @emph{don't delete attribute} (@code{DONT_DELETE}): If the value
1727 is t, then the template will not be deleted after its expansion or else 1722 is t, then the template will not be deleted after its expansion. If the
1728 if the value is nil then the template will be deleted. The default is 1723 value is nil then the template will be deleted. The default is nil. For
1729 nil. For example: 1724 example:
1730 1725
1731 Before the expansion: 1726 Before the expansion:
1732 1727
1733 @example 1728 @example
1734 Line before the template 1729 Line before the template
1744 Line after the template 1739 Line after the template
1745 @end example 1740 @end example
1746 1741
1747 It was assumed, that the file @file{~/.cshrc} was empty ! 1742 It was assumed, that the file @file{~/.cshrc} was empty !
1748 1743
1749 @item 1744 @item @emph{delete line attribute} (@code{DELETE-LINE}): If the value is
1750 @emph{delete line attribute} (@code{DELETE-LINE}): If the value is t, 1745 t, then the linefeed before or after the template will be deleted. If
1751 then the linefeed before or after the template will be deleted or else 1746 the value is nil then no linefeed will be deleted. The default is
1752 if the value is nil then no linefeed will be deleted. The default is
1753 nil. For example: 1747 nil. For example:
1754 1748
1755 Before the expansion: 1749 Before the expansion:
1756 1750
1757 @example 1751 @example
1768 @end example 1762 @end example
1769 1763
1770 It was assumed, that the file @file{~/.cshrc} was empty ! 1764 It was assumed, that the file @file{~/.cshrc} was empty !
1771 @end enumerate 1765 @end enumerate
1772 1766
1773 The attributes can be combined. For example: 1767 These attributes can be combined. For example:
1774 1768
1775 @example 1769 @example
1776 ^@@COMMAND ((DELETE-LINE t) (DONT-DELETE nil))^@@ 1770 ^@@COMMAND ((DELETE-LINE t) (DONT-DELETE nil))^@@
1777 insert-file 1771 insert-file
1778 ^@@END COMMAND^@@ 1772 ^@@END COMMAND^@@
1779 @end example 1773 @end example
1780 1774
1781 The last examples shows also, that whitespaces (blanks, tabs, linefeeds) 1775 The last examples show also that whitespace (blanks, tabs, linefeeds)
1782 are allowed at the most positions in a template. 1776 is allowed at most positions in a template.
1783 1777
1784 Look at the file @file{tmpl-minor-mode.el}, for a description of the 1778 Look at the file @file{tmpl-minor-mode.el} for a description of the
1785 commands to expand templates. 1779 commands to expand templates.
1786 1780
1787 1781
1788 @node Template Customization, Template Commands, Syntax Of Templates, Template Minor Mode 1782 @node Template Customization, Template Commands, Syntax Of Templates, Template Minor Mode
1789 @comment node-name, next, previous, up 1783 @comment node-name, next, previous, up
1794 @vindex tmpl-automatic-expand 1788 @vindex tmpl-automatic-expand
1795 @vindex tmpl-filter-regexp 1789 @vindex tmpl-filter-regexp
1796 @vindex tmpl-sign 1790 @vindex tmpl-sign
1797 @vindex tmpl-minor-mode-map 1791 @vindex tmpl-minor-mode-map
1798 1792
1799 Templates could be used for all editing modes and not only for the 1793 Templates may be used for all editing modes, not only for
1800 @code{hm--html-mode}. Therefore it's general customization isn't done in 1794 @code{hm--html-mode}. Therefore their general customization isn't done in
1801 @file{hm--html-configuration.el}. It's variables are defined in the file 1795 @file{hm--html-configuration.el}. Template variables are defined in the file
1802 @file{tmpl-minor-mode.el} instead. You can set them in your 1796 @file{tmpl-minor-mode.el} instead. You can set them in your
1803 @file{.emacs} or in one of the other emacs init files (eg: 1797 @file{.emacs} or in one of the other emacs init files (e.g.
1804 @file{default.el}). The following are the main variables for 1798 @file{default.el}). The following are the main variables for
1805 customization. 1799 customization.
1806 1800
1807 @itemize @bullet 1801 @itemize @bullet
1808 @item 1802 @item
1813 1807
1814 This variable is used in the commands for inserting templates. Look at 1808 This variable is used in the commands for inserting templates. Look at
1815 @code{tmpl-insert-template-file-from-fixed-dirs} and at 1809 @code{tmpl-insert-template-file-from-fixed-dirs} and at
1816 @code{tmpl-insert-template-file}. The command 1810 @code{tmpl-insert-template-file}. The command
1817 @code{tmpl-insert-template-file} uses only the car of the list (if it is 1811 @code{tmpl-insert-template-file} uses only the car of the list (if it is
1818 a list).") 1812 a list.)
1819 @item 1813 @item
1820 @code{tmpl-filter-regexp}: It determines an regular expression used for 1814 @code{tmpl-filter-regexp}: This defines a regular expression used for
1821 filtering out non template files in template directories. It is used in 1815 filtering out non-template files in template directories. It is used in
1822 the command @code{tmpl-insert-template-file-from-fixed-dirs} to allow 1816 the command @code{tmpl-insert-template-file-from-fixed-dirs} to allow
1823 only the selecting of files, which are matching the regexp. If it is 1817 only the selection of files which match the regexp. If it is
1824 nil, then the Filter @code{".*\\.tmpl$"} is used. Set it to 1818 nil, then the Filter @code{".*\\.tmpl$"} is used. Set it to
1825 @code{\".*\"} if you want to disable the filter function or use the 1819 @code{\".*\"} if you want to disable the filter function or use the
1826 command @code{tmpl-insert-template-file}. 1820 command @code{tmpl-insert-template-file}.
1827 @item 1821 @item
1828 @code{tmpl-automatic-expand}: If you insert a template file with 1822 @code{tmpl-automatic-expand}: If you insert a template file with
1829 @code{tmpl-insert-template-file-from-fixed-dirs} or with 1823 @code{tmpl-insert-template-file-from-fixed-dirs} or with
1830 @code{tmpl-insert-template-file}, this variable is used. In this case 1824 @code{tmpl-insert-template-file}, this variable is used. The templates
1831 the templates in the buffer will be automaticly expanded, if the 1825 in the buffer will be automatically expanded if the variable is set to
1832 variable is set to t, which is the default. 1826 t, which is the default.
1833 @item 1827 @item
1834 @code{tmpl-sign}: It determines the sign which marks the beginning and 1828 @code{tmpl-sign}: Thisdetermines the sign which marks the beginning and
1835 the end of template expressions. By default it is set to the null 1829 the end of template expressions. By default it is set to the null
1836 character (displayed in the emacs as ^@@). You can also set this to a 1830 character (displayed in emacs as ^@@). You can also set this to a
1837 string. Be careful, if you change it, so that the templates will not be 1831 string. Be careful if you change it, so that the templates will not be
1838 mixed up with other non template text! Note: The expansion function 1832 mixed up with other non-template text! Note: The expansion function
1839 looks at the whole template, so that it is very unlikely that the 1833 looks at the whole template, so that it is very unlikely that the
1840 function will make a mistake. 1834 function will make a mistake.
1841 @item 1835 @item
1842 @code{tmpl-minor-mode-map}: The keymap for the template minor mode. 1836 @code{tmpl-minor-mode-map}: The keymap for the template minor mode.
1843 @end itemize 1837 @end itemize
1871 1865
1872 @itemize @bullet 1866 @itemize @bullet
1873 @item 1867 @item
1874 @code{tmpl-insert-template-file}: This command can be used to insert a 1868 @code{tmpl-insert-template-file}: This command can be used to insert a
1875 template file in the current buffer. It will expand the templates in the 1869 template file in the current buffer. It will expand the templates in the
1876 buffer, if @code{tmpl-automatic-expand} is set to @code{t}. You can set 1870 buffer if @code{tmpl-automatic-expand} is set to @code{t}. You can set
1877 a default directory for this command by setting the variable 1871 a default directory for this command by setting the variable
1878 @code{tmpl-template-dir-list}, @xref{Template Customization}. 1872 @code{tmpl-template-dir-list}. @xref{Template Customization}.
1879 @item 1873 @item
1880 @code{tmpl-insert-template-file-from-fixed-dirs}: The difference to the 1874 @code{tmpl-insert-template-file-from-fixed-dirs}: The difference from
1881 simpler command @code{tmpl-insert-template-file} is, that this command 1875 the simpler command @code{tmpl-insert-template-file} is that this
1882 will build a list for filename completion from a list of predefined 1876 command will build a list for filename completion from a list of
1883 directories (look at @code{tmpl-template-dir-list}). The filename 1877 predefined directories (look at @code{tmpl-template-dir-list}). The
1884 completion list will also be filtered with the regular expression 1878 filename completion list will also be filtered with the regular
1885 defined by @code{tmpl-filer-regexp}. @xref{Template Customization}. You 1879 expression defined by @code{tmpl-filer-regexp}. @xref{Template
1886 can set the directory list and/or the filter different in each mode, 1880 Customization}. You can set the directory list and/or the filter
1887 where you use templates, so that you will get only template files in the 1881 differently in each mode where you use templates, so that you will get
1888 completion list, which could be used for the current mode. 1882 in the completion list only template files which could be used for the
1883 current mode.
1889 1884
1890 If you want to insert a template file with this command, which is not in 1885 If you want to insert a template file with this command, which is not in
1891 one of the directories from @code{tmpl-template-dir-list}, then you've 1886 one of the directories from @code{tmpl-template-dir-list}, then you have
1892 to enter the string @emph{"Change the directory"} instead of a template 1887 to enter the string @emph{"Change the directory"} instead of a template
1893 file. This string is also in the completion list. 1888 file. This string is also in the completion list.
1894 @end itemize 1889 @end itemize
1895 1890
1896 Both commands can also be used as functions. In this case the template 1891 Both commands can also be used as functions. In this case the template
1906 @cindex template expansion 1901 @cindex template expansion
1907 @cindex expansion 1902 @cindex expansion
1908 @findex tmpl-expand-templates-in-region 1903 @findex tmpl-expand-templates-in-region
1909 @findex tmpl-expand-templates-in-buffer 1904 @findex tmpl-expand-templates-in-buffer
1910 1905
1911 You can expand templates by hand or automaticly after their 1906 You can expand templates by hand or automatically after their
1912 insert. @xref{Insert Of Template Files}, for automatic 1907 insertion. @xref{Insert Of Template Files}, for automatic
1913 expansion. The expansion by hand can be done with one of the 1908 expansion. Expansion by hand can be done with one of the
1914 following two functions: 1909 following two functions:
1915 1910
1916 @itemize @bullet 1911 @itemize @bullet
1917 @item 1912 @item
1918 @code{tmpl-expand-templates-in-region}: Expands the templates in the 1913 @code{tmpl-expand-templates-in-region}: Expands the templates in the
1919 region. The region is determined by it's optional arguments @code{BEGIN} 1914 region. The region is established by the optional arguments @code{BEGIN}
1920 and @code{END}. If the arguments are @code{nil}, or if the function is called 1915 and @code{END}. If the arguments are @code{nil}, or if the function is called
1921 interactive, then the current region will be used. 1916 interactively, then the current region will be used.
1922 @item 1917 @item
1923 @code{tmpl-expand-templates-in-buffer}: Expands all templates in the 1918 @code{tmpl-expand-templates-in-buffer}: Expands all templates in the
1924 current buffer. 1919 current buffer.
1925 @end itemize 1920 @end itemize
1926 1921
1927 Both commands are bind to keys in the @code{tmpl-minor-mode}. @xref{The 1922 Both commands are bound to keys in the @code{tmpl-minor-mode}. @xref{The
1928 Template Minor Mode}. 1923 Template Minor Mode}.
1929 1924
1930 1925
1931 @node Escaping Of Template Signs, The Template Minor Mode, Expansion Of Templates, Template Commands 1926 @node Escaping Of Template Signs, The Template Minor Mode, Expansion Of Templates, Template Commands
1932 @comment node-name, next, previous, up 1927 @comment node-name, next, previous, up
1937 @findex tmpl-escape-tmpl-sign-in-buffer 1932 @findex tmpl-escape-tmpl-sign-in-buffer
1938 1933
1939 It is possible to escape template signs in a buffer or in a 1934 It is possible to escape template signs in a buffer or in a
1940 region. Templates with escaped template signs are not expanded, but they 1935 region. Templates with escaped template signs are not expanded, but they
1941 are un-escaped by the expansion functions. Therefore it is possible to 1936 are un-escaped by the expansion functions. Therefore it is possible to
1942 prevent single templates from the expansion by escaping them. Note: 1937 exclude single templates from the expansion by escaping them. Note:
1943 You can't escape template twice. The commands, which can be used for 1938 You can't escape a template twice. The commands which can be used for
1944 this are: 1939 this are:
1945 1940
1946 @itemize @bullet 1941 @itemize @bullet
1947 @item 1942 @item
1948 @code{tmpl-escape-tmpl-sign-in-region}: Escapes all @code{tmpl-sign}'s 1943 @code{tmpl-escape-tmpl-sign-in-region}: Escapes all @code{tmpl-sign}s
1949 (@pxref{Template Customization}) with a @code{tmpl-sign} in a 1944 (@pxref{Template Customization}) with a @code{tmpl-sign} in a
1950 region. The region is determined by it's optional arguments @code{BEGIN} 1945 region. The region is established by the optional arguments @code{BEGIN}
1951 and @code{END}. If the arguments are @code{nil}, or if the function is 1946 and @code{END}. If the arguments are @code{nil}, or if the function is
1952 called interactive, then the current region will be used. 1947 called interactively, then the current region will be used.
1953 @item 1948 @item
1954 @code{tmpl-escape-tmpl-sign-in-buffer}: Same as 1949 @code{tmpl-escape-tmpl-sign-in-buffer}: Same as
1955 @code{tmpl-escape-tmpl-sign-in-region}, but escapes all templates in the 1950 @code{tmpl-escape-tmpl-sign-in-region}, but escapes all templates in the
1956 whole buffer. 1951 whole buffer.
1957 @end itemize 1952 @end itemize
1958 1953
1959 Both commands are bind to keys in the @code{tmpl-minor-mode}. @xref{The 1954 Both commands are bound to keys in @code{tmpl-minor-mode}. @xref{The
1960 Template Minor Mode}. 1955 Template Minor Mode}.
1961 1956
1962 1957
1963 @node The Template Minor Mode, , Escaping Of Template Signs, Template Commands 1958 @node The Template Minor Mode, , Escaping Of Template Signs, Template Commands
1964 @comment node-name, next, previous, up 1959 @comment node-name, next, previous, up
1969 @findex tmpl-minor-mode 1964 @findex tmpl-minor-mode
1970 1965
1971 The template minor mode can be toggled with the command 1966 The template minor mode can be toggled with the command
1972 @code{tmpl-minor-mode}. The purpose of this mode is only to provide 1967 @code{tmpl-minor-mode}. The purpose of this mode is only to provide
1973 key bindings for some of the commands of the package 1968 key bindings for some of the commands of the package
1974 @file{tmpl-minor-mode}. So if you don't want to use the key bindings, you 1969 @file{tmpl-minor-mode}. If you don't want to use the key bindings, you
1975 don't need this minor mode. 1970 don't need this minor mode.
1976 1971
1977 Look at the key table @code{tmpl-minor-mode-map} (@pxref{Template 1972 Look at the key table @code{tmpl-minor-mode-map} (@pxref{Template
1978 Customization}) for the definition of the keys. 1973 Customization}) for the definition of the keys.
1979 1974
1980 It may be, that I'll provide also a pulldown or popup menu for the minor 1975 It may be that I'll also provide a pulldown or popup menu for the minor
1981 mode in a future release. 1976 mode in a future release.
1982 1977
1983 1978
1984 @node Bug Reports, Concept Index, Template Minor Mode, Top 1979 @node Bug Reports, Concept Index, Template Minor Mode, Top
1985 @comment node-name, next, previous, up 1980 @comment node-name, next, previous, up
1986 @chapter Bug Reports 1981 @chapter Bug Reports
1987 @cindex bug report 1982 @cindex bug report
1988 @findex hm--html-submit-bug-report 1983 @findex hm--html-submit-bug-report
1989 1984
1990 There's no software out there without bugs. This package contains 1985 There's no software out there without bugs. This package contains
1991 software, therefore it has bus. I (Heiko Münkel 1986 software, therefore it has bugs. I (Heiko Münkel
1992 <muenkel@@tnt.uni-hannover.de>) have inserted most of the bugs in this 1987 <muenkel@@tnt.uni-hannover.de>) have inserted most of the bugs in this
1993 package by myself, but I've forgotten where. So please help me out of 1988 package by myself, but I've forgotten where. So please help me out of
1994 this disaster and send bug reports, if you've found one of these little 1989 this disaster and send bug reports, if you've found one of these little
1995 animals. I'll try to do my very best to fix them and to insert new ones. 1990 animals. I'll try to do my very best to fix them and to insert new ones.
1996 1991
2000 M-x hm--html-submit-bug-report 1995 M-x hm--html-submit-bug-report
2001 @end lisp 1996 @end lisp
2002 1997
2003 There's also an entry in the pulldown menu for this. 1998 There's also an entry in the pulldown menu for this.
2004 1999
2005 In some cases a backtrace would also be fine. 2000 In some cases a backtrace would also be appropriate.
2006 2001
2007 If you can't send the report with this function, than you should at 2002 If you can't send the report with this function, at
2008 least insert the package version and your @code{Emacs}/@code{XEmacs} 2003 least include the package version and your @code{Emacs}/@code{XEmacs}
2009 version. 2004 version.
2010 2005
2011 In the best of all worlds you include also a patch to fix the bug. 2006 In the best of all worlds you would also include a patch to fix the bug.
2012 2007
2013 @emph{Note}: It's not true, that I've inserted the bugs as a marketing trick, 2008 @emph{Note}: It's not true that I've inserted the bugs as a marketing trick,
2014 so that you must buy the next version to get some of them fixed. This is 2009 so that you must buy the next version to get some of them fixed. This is
2015 false, because this software is free. 2010 false, because this software is free.
2016 2011
2017 2012
2018 @node Concept Index, Function Index, Bug Reports, Top 2013 @node Concept Index, Function Index, Bug Reports, Top