Mercurial > hg > xemacs-beta
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 |