comparison man/w3.texi @ 20:859a2309aef8 r19-15b93

Import from CVS: tag r19-15b93
author cvs
date Mon, 13 Aug 2007 08:50:05 +0200
parents 0293115a14e9
children 8fc7fe29b841
comparison
equal deleted inserted replaced
19:ac1f612d5250 20:859a2309aef8
1 \input texinfo 1 \input texinfo
2 @c
3 @c Please note that this file uses some constructs not supported by earlier
4 @c versions of TeXinfo. You must be running one of the newer TeXinfo
5 @c releases (I currently use version 3.9 from ftp://prep.ai.mit.edu/pub/gnu
6 @c
7 @c Please do not send in bug reports about not being able to format the
8 @c document with 'makeinfo' or 'tex', just upgrade your installation.
9 @c
10 @c Info formatted files are provided in the distribution, and you can
11 @c retrieve dvi, postscript, and PDF versions from the web site or ftp
12 @c site: http://www.cs.indiana.edu/elisp/w3/docs.html
13 @c
2 @setfilename w3.info 14 @setfilename w3.info
3 @settitle Emacs-W3 User's Manual 15 @settitle Emacs-W3 User's Manual
4 @iftex 16 @iftex
5 @finalout 17 @finalout
6 @end iftex 18 @end iftex
18 * W3: (w3). Emacs-W3 World Wide Web browser. 30 * W3: (w3). Emacs-W3 World Wide Web browser.
19 @end direntry 31 @end direntry
20 @ifinfo 32 @ifinfo
21 This file documents the Emacs-W3 World Wide Web browser. 33 This file documents the Emacs-W3 World Wide Web browser.
22 34
23 Copyright (C) 1993, 1994, 1995 William M. Perry 35 Copyright (C) 1993, 1994, 1995, 1996 William M. Perry
24 Copyright (C) 1996 Free Software Foundation 36 Copyright (C) 1996, 1997 Free Software Foundation
25 37
26 Permission is granted to make and distribute verbatim copies of 38 Permission is granted to make and distribute verbatim copies of
27 this manual provided the copyright notice and this permission notice 39 this manual provided the copyright notice and this permission notice
28 are preserved on all copies. 40 are preserved on all copies.
29 41
41 @center @titlefont{Emacs-W3} 53 @center @titlefont{Emacs-W3}
42 @center @titlefont{User's Manual} 54 @center @titlefont{User's Manual}
43 @sp 4 55 @sp 4
44 @center Third Edition, Emacs-W3 Version 3.0 56 @center Third Edition, Emacs-W3 Version 3.0
45 @sp 1 57 @sp 1
46 @center December 1996 58 @center February 1997
47 @sp 5 59 @sp 5
48 @center William M. Perry 60 @center William M. Perry
49 @center @i{wmperry@@cs.indiana.edu} 61 @center @i{wmperry@@cs.indiana.edu}
50 @page 62 @page
51 @vskip 0pt plus 1filll 63 @vskip 0pt plus 1filll
52 Copyright @copyright{} 1993, 1994, 1995 William M. Perry@* 64 Copyright @copyright{} 1993, 1994, 1995 William M. Perry@*
53 Copyright @copyright{} 1996 Free Software Foundation 65 Copyright @copyright{} 1996, 1997 Free Software Foundation
54 66
55 Permission is granted to make and distribute verbatim copies of@* 67 Permission is granted to make and distribute verbatim copies of@*
56 this manual provided the copyright notice and this permission notice@* 68 this manual provided the copyright notice and this permission notice@*
57 are preserved on all copies. 69 are preserved on all copies.
58 70
59 @end titlepage 71 @end titlepage
60 @page 72 @page
61 @ifinfo 73 @ifinfo
62 @node Top, Introduction,, (DIR) 74 @node Top, Getting Started,, (DIR)
63 This manual documents the Emacs-W3 World Wide Web browser, a Lisp program 75 Users can browse the World Wide Web from within Emacs by using Emacs-W3.
64 which runs as a subsystem under Emacs. The manual is divided into the 76 All of the widely used (and even some not very widely used) @sc{url}
65 following chapters. 77 schemes are supported, and it is very easy to add new methods as the
78 need arises.
79
80 Emacs-W3 provides some core functionality that can be readily re-used
81 from any program in Emacs. Users and other package writers are
82 encouraged to @i{Web-enable} their applications and daily work routines
83 with the library.
84
85 Emacs-W3 is completely customizable, both from Emacs-Lisp and from
86 stylesheets @xref{Style Sheets} If there is any aspect of Emacs-W3 that
87 cannot be modified to your satisfaction, please send mail to the
88 @t{w3-beta@@indiana.edu} mailing list with any suggestions.
89 @xref{Reporting Bugs}
66 90
67 @menu 91 @menu
68 * Introduction:: Overview of Emacs-W3.
69 * Getting Started:: Getting up and running with Emacs-W3 92 * Getting Started:: Getting up and running with Emacs-W3
70 * Basic Usage:: Basic movement and usage of Emacs-W3. 93 * Basic Usage:: Basic movement and usage of Emacs-W3.
71 * Compatibility:: Explanation of compatibility with 94 * Compatibility:: Explanation of compatibility with
72 other web browsers. 95 other browsers.
73 * Controlling Formatting:: How to control HTML formatting 96 * Stylesheets:: How to control the look of web pages
74 * MIME Support:: Support for MIME 97 * MIME Support:: Support for @sc{mime}
75 * Security:: Various forms of security 98 * Security:: Various security methods supported
76 * Non-Unix Operating Systems:: Special considerations necessary to get 99 * Non-Unix Operating Systems:: Special considerations necessary to get
77 up and running correctly under non-unix 100 up and running correctly under non-unix
78 OS's. 101 OS's.
102 * Speech Integration:: Outputting to a speech synthesizer.
79 * Advanced Features:: Some of the more arcane features. 103 * Advanced Features:: Some of the more arcane features.
80 * More Help:: How to get more help---mailing lists, 104 * More Help:: How to get more help---mailing lists,
81 newsgroups, etc. 105 newsgroups, etc.
82 * Future Directions:: Plans for future revisions 106 * Future Directions:: Plans for future revisions
83 107
84 Appendices: 108 Appendices:
85 * Reporting Bugs:: How to report a bug in Emacs-W3 109 * Reporting Bugs:: How to report a bug in Emacs-W3
86 * Installing SSL:: Turning on SSL support 110 * Installing SSL:: Turning on @sc{ssl} support
87 * Using PGP/PEM:: Turning on PGP/PEM encryption support
88 * Mailcap Files:: An explanation of Mailcap files 111 * Mailcap Files:: An explanation of Mailcap files
89 112
90 Indices: 113 Indices:
91 * General Index:: General Index 114 * General Index:: General Index
92 * Key Index:: Menus of command keys and their references 115 * Key Index:: Menus of command keys and their references
93 @end menu 116 @end menu
94 @end ifinfo 117 @end ifinfo
95 118
96 @node Introduction, Getting Started, Top, Top 119 @node Getting Started, Basic Usage, Top, Top
97 @chapter Introduction
98 @cindex World Wide Web
99
100 :: WORK :: Basic info on what Emacs-W3 is, including copyrights, etc.
101
102 @ifinfo
103 Here is some more specific information about what languages and
104 protocols Emacs-W3 supports.
105 @menu
106 * Markup Languages Supported:: Markup languages supported by Emacs-W3
107 * Stylesheets:: Stylesheet languages supported by Emacs-W3
108 * Supported Protocols:: Network protocols supported by Emacs-W3
109 @end menu
110 @end ifinfo
111 @node Markup Languages Supported, Stylesheets, Introduction, Introduction
112 @chapter Supported Markup Languages
113 Several different markup languages, and various extensions to those
114 languages, are supported by Emacs-W3.
115 @ifinfo
116 @center ----------
117 @center HTML 2.0
118 @center ----------
119 @end ifinfo
120 @iftex
121 @section HTML 2.0
122 @end iftex
123 @cindex HTML 2.0
124
125 :: WORK :: Reference to the HTML 2.0 RFC
126 :: WORK :: Basic explanation of HTML, tag structure, etc.
127
128 @ifinfo
129 @center ----------
130 @center HTML 3.2
131 @center ----------
132 @end ifinfo
133 @iftex
134 @section HTML 3.2
135 @end iftex
136 @cindex HTML 3.2
137 The HTML 3.2 language is an extension of HTML, with a large degree of
138 backward compatibility with HTML 2.0. This basically documents current
139 practice as of January, 1996.
140
141 @ifinfo
142 @center ----------
143 @center SGML Features
144 @center ----------
145 @end ifinfo
146 @iftex
147 @section SGML Features
148 @end iftex
149 @cindex SGML Features
150 @cindex Entity Definitions
151 @cindex Marked Sections
152
153 :: WORK :: Document marked sections, SGML features
154
155 @ifinfo
156 @center ----------
157 @center Extras
158 @center ----------
159 @end ifinfo
160 @iftex
161 @section Extra Markup
162 @end iftex
163 @cindex Easter Eggs
164 @cindex Fluff
165 @cindex Pomp & Circumstance
166 There are several different markup elements that are not officially part
167 of HTML or HTML 3.2 that Emacs-W3 supports. These are either items that
168 were dropped from HTML 3.@var{x} after I had implemented them, things I
169 find just completely hilarious, or experimental parts of HTML that
170 should not be counted as "official" or long lived.
171 @itemize @bullet
172 @item
173 FLAME support. For truly interesting dynamic documents. This is
174 replaced with a random quote from Mr. Angry (see @kbd{M-x flame} for a
175 sample).
176 @item
177 The top ten tags that did not make it into netscape. These tags were
178 posted to the newsgroup comp.infosystems.www.misc by Laura Lemay
179 (@i{lemay@@netcom.com}). Much thanks to her for the humor.
180 @table @b
181 @item <wired>...</wired>
182 Renders the enclosed text in a suitably ugly font/color combination. If
183 no default has been set up by the user, this is the default font, with
184 red text on a yellow background.
185 @item <roach>...</roach>
186 When selected, the enclosed text runs and hides under the nearest
187 window. OR, giggles a lot and demands nachos, depending on the
188 definition of "roach." (the formal definition, of course, to be
189 determined by the Official Honorary Internet Standards Committee For
190 Moving Really Slowly.)
191 @item <pinhead>
192 Inserts "zippyisms" into the enclosed text. Perfect for those professional
193 documents. This is sure to be a favorite of mine!
194 @item <secret>...</secret>
195 Must use secret spy decoder glasses (available direct from Netscape for
196 a reasonable fee) in order to read the enclosed text. Can also be read
197 by holding the computer in front of a full moon during the autumn
198 solstice.
199
200 In Emacs-W3, this displays the text using rot13 encoding.
201 @item <hype>
202 Causes Marc Andreesen to magically appear and grant an interview (wanted
203 or not). Please use this tag sparingly.
204 @item <peek>....</peek>
205 @item <poke>...</poke>
206 Need more control over screen layout in HTML? Well, here ya go.
207 n
208 Actually, <peek> could almost be considered useful. The VARIABLE
209 attribute can be used to insert the value of an emacs variable into the
210 current document. Things like 'Welcome to my page, <peek
211 variable=user-mail-address>' can be useful in spreading fear,
212 uncertainty, and doubt among users.
213 @item <yogsothoth>
214 @cindex Gates Bill
215 @cindex Yogsothoth
216 Summons the elder gods to suck away your immortal soul. Or Bill Gates,
217 if the elder gods are busy. Unpredictable (but amusing) results occur
218 when the <YOGSOTHOTH> and <HYPE> tags are used in close proximity.
219
220 @item <blink>...</blink>
221 Causes the enclosed text to .... ooops that one made it in.
222 @end table
223 @end itemize
224
225 @node Stylesheets, Supported Protocols, Markup Languages Supported,Introduction
226 @chapter Stylesheets
227 @cindex Stylesheets
228 @cindex Cascading Style Sheets
229 @cindex Aural Cascading Style Sheets
230 @cindex CSS
231 @cindex DSSSL
232 :: WORK :: Document CSS support
233 CSS Information at http://www.w3.org/pub/WWW/TR/REC-CSS1
234 Style guide at http://www.htmlhelp.com/reference/css/
235 :: WORK :: Document ACSS support
236 ACSS Information at http://www.w3.org/pub/WWW/Style/CSS/Speech/NOTE-ACSS
237 :: WORK :: Document DSSSL support
238
239 @node Supported Protocols, , Stylesheets, Introduction
240 @chapter Supported Protocols
241 @cindex Network Protocols
242 @cindex Protocols Supported
243 @cindex Supported Protocols
244 Emacs-W3 supports the following protocols
245 @table @b
246 @item Usenet News
247 Can either display an entire newsgroup or specific articles by
248 Message-ID: header. Instead of rewriting a newsreader, this integrates
249 with the Gnus newsreader. It requires at least Gnus 5.0, but it is
250 always safest to use the latest version. Gnus supports some very
251 advanced features, including virtual newsgroups, mail and news
252 integration, and reading news from multiple servers. @inforef{Gnus,
253 Top,gnus}, for more info.
254
255 To be more in line with the other URL schemes, the hostname and port of
256 an NNTP server can be specified. URLs of the form
257 news://hostname:port/messageID work, but might not work in some other
258 browsers.
259
260 @item HTTP
261 Supports the HTTP/0.9, HTTP/1.0, and parts of the HTTP/1.1 protocols.
262 @item Gopher
263 Support for all gopher types, including CSO queries.
264 @item Gopher+
265 Support for Gopher+ retrievals. Support for converting ASK blocks into
266 HTML 3.0 FORMS and submitting them back to the server.
267 @item FTP
268 FTP is handled by either ange-ftp or efs.
269 @inforef{Ange-FTP,Top,ange-ftp}, for more information on Ange-FTP, or
270 @inforef{EFS, Top,efs}, for information on EFS.
271 @item Local files
272 Local files are of course handled, and MIME content-types are derived
273 from the file extensions.
274 @item telnet, tn3270, rlogin
275 Telnet, tn3270, and rogin are handled by running the appropriate program
276 in an emacs buffer, or running an external process.
277 @item mailto
278 Causes a mail message to be started to a specific address. Supports the
279 Netscape @i{extensions} to specify arbitrary headers on the message.
280 @item data
281 A quick and easy way to `inline' small pieces of information that you do
282 not necessarily want to download over the net separately. Can speed up
283 display of small icons, stylesheet information, etc. See the internet
284 draft draft-masinter-url-data-02.txt for more information.
285 @item mailserver
286 A more powerful version of mailto, which allows the author to specify
287 the subject and body text of the mail message. This type of link is
288 never fully executed without user confirmation, because it is possible
289 to insert insulting or threatening (and possibly illegal) data into the
290 message. The mail message is displayed, and the user must confirm the
291 message before it is sent.
292 @item x-exec
293 A URL can cause a local executable to be run, and its output interpreted
294 as if it had come from an HTTP server. This is very useful, but is
295 still an experimental protocol, hence the X- prefix. This URL protocol
296 is deprecated, but might be useful in the future.
297 @item NFS
298 Retrieves information over NFS. This requires that your operating
299 system support auto-mounting of NFS volumes.
300 @item finger
301 Retrieves information about a user via the 'finger' protocol.
302 @item Info
303 Creates a link to an GNU-style info file. @inforef{Info,Top,info}, for more
304 information on the Info format.
305 @item SSL
306 SSL requires a set of patches to the Emacs C code and SSLRef 2.0, or an
307 external program to run in a subprocess (similar to the @file{tcp.el}
308 package that comes with GNUS. @xref{Installing SSL}
309 @end table
310
311 @node Getting Started, Getting Emacs, Introduction, Top
312 @chapter Getting Started 120 @chapter Getting Started
313 @cindex Clueless in Seattle 121 @cindex Clueless in Seattle
314 @cindex Getting Started 122 @cindex Getting Started
315 This section of the manual deals with getting, compiling, and 123 @kindex M-x w3
316 configuring @i{Emacs-W3}. 124 @vindex w3-default-homepage
317 :: WORK :: Introduction to 'Getting Started' 125 @findex w3
318 126 If installed correctly, starting Emacs-W3 is quite painless. Just type
319 @ifinfo 127 @kbd{M-x w3} in a running Emacs sessions. This will retrieve the
128 default page that has been configured - by default the documentation for
129 Emacs-W3 at Indiana University.
130
131 If the default page is not retrieved correctly at startup, you will have
132 to do some customization.
133
320 @menu 134 @menu
321 * Getting Emacs:: Where to get Emacs 135 * Using the Network:: Tell Emacs about your network setup.
322 * Getting Emacs-W3:: Where to get Emacs-W3 136 * Proxy Gateways:: Using an @sc{http} proxy
323 * Basic Setup:: Basic setup that most people want to do 137 * Startup Files:: What is where, and why.
324 * Firewalls:: Integrating Emacs-W3 with a firewall setup. 138 * Preferences Panel:: Quick configuration of common options.
325 * Proxy Gateways:: Using a proxy server
326 @end menu 139 @end menu
327 @end ifinfo 140
328 141 @node Using the Network, Proxy Gateways, Getting Started, Getting Started
329 @node Getting Emacs, Getting Emacs-W3, Getting Started, Getting Started 142 @section Using the Network
330 @section Getting Emacs 143 By default, Emacs can support standard @sc{tcp}/@sc{ip} network
331 @cindex Getting Emacs 144 connections on almost all the platforms it runs on (Unix, @sc{vms},
332 @cindex Source code availability 145 Windows, etc). However, there are several situations where it is not
333 :: WORK :: Explanation of Emacs, XEmacs, and where to get both 146 sufficient.
334 147
335 @node Getting Emacs-W3, Basic Setup, Getting Emacs, Getting Started
336 @section Getting Emacs-W3
337 @cindex FTP'in the distribution
338 @cindex Source code availability
339 :: WORK :: Explanation of Emacs, XEmacs, and where to get both
340
341 @node Basic Setup, Firewalls, Getting Emacs-W3, Getting Started
342 @section Basic Setup
343 For most people, Emacs-W3 will be ready to run straight out of the box.
344 Once the user is more familiar with the web and how it integrates with
345 Emacs, there are a few basic configuration variables that most people
346 will want to personalize.
347
348 @table @code
349 @item w3-default-homepage
350 @vindex w3-default-homepage
351 The URL to open at startup. This defaults to the environment variable
352 WWW_HOME if it is not set it in the users @file{.emacs} file. If
353 WWW_HOME is undefined, then it defaults to the hypertext documentation
354 for Emacs-W3.
355
356 @item w3-delay-image-loads
357 @vindex w3-delay-image-loads
358 Controls the loading of inlined images. If non-@code{nil}, images are
359 not loaded. If the correct image converters are not installed or the
360 network connection is very slow, it is best to set this to @code{t}.
361 Defaults to @code{nil}.
362 @item url-global-history-file
363 @vindex url-global-history-file
364 The global history file used by both Mosaic/X and Emacs-W3. This file
365 contains a list of all the URLs that have been visited. This file is parsed
366 at startup and used to provide URL completion. Emacs-W3 can read and
367 write Mosaic/X or Netscape 1.x style history files, or use its own
368 internal format (faster). The file type is determined automatically, or
369 prompted for if the file does not exist.
370 @item w3-hotlist-file
371 @vindex w3-hotlist-file
372 Hotlist filename. This should be the name of a file that is stored in
373 NCSA's Mosaic/X or Netscape's format. It is used to keep a listing of
374 commonly accessed URLs.
375 @item w3-personal-annotation-directory
376 @vindex w3-personal-annotation-directory
377 The directory where Emacs-W3 looks for personal annotations. This is a
378 directory that should hold the personal annotations stored in a
379 Mosaic/X-compatible format.
380 @item url-pgp/pem-entity
381 @findex user-real-login-name
382 @findex system-name
383 The name by which the user is known to PGP and/or PEM entities. If this
384 is not set when Emacs-W3 is loaded, it defaults to
385 @code{user-mail-address} if it is set, otherwise @code{(user-real-login-name)}@@@code{(system-name)}.
386 @item url-personal-mail-address
387 @vindex url-personal-mail-address
388 @vindex url-pgp/pem-entity
389 User's full email address. This is what is sent to HTTP/1.0 servers as
390 the FROM header. If this is not set when Emacs-W3 is loaded, then it
391 defaults to the value of @code{url-pgp/pem-entity}.
392
393 @item w3-right-border
394 @vindex w3-right-border
395 @findex window-width
396 Amount of space to leave on right margin of WWW buffers. This amount is
397 subtracted from the width of the window for each new WWW buffer and used
398 as the new @code{fill-column}.
399
400 @item w3-track-mouse
401 @vindex w3-track-mouse
402 Controls whether to track the mouse and message the url under the mouse.
403 If this is non-@code{nil}, then a description of the hypertext area
404 under the mouse is shown in the minibuffer. This shows what type of
405 link (inlined image, form entry area, delayed image, delayed MPEG, or
406 hypertext reference) is under the cursor, and the destination.
407 @item w3-echo-link
408 @vindex w3-echo-link
409 Controls how a URL is shown when a link is reached with @key{f},
410 @key{b}, or the mouse moves over it. Possible values are:
411 @table @b 148 @table @b
412 @item url
413 Displays the URL (ie: @samp{http://www.cs.indiana.edu/}).
414 @item text
415 Displays the text of the link (ie: @samp{A link to Indiana University}).
416 @item title
417 Displays the title of the link, if any, otherwise behaves the same as @code{url}.
418 @item nil
419 Show nothing.
420 @end table
421 @item w3-use-forms-index
422 @vindex w3-use-forms-index
423 @cindex ISINDEX handling
424 @cindex Forms based searching
425 @cindex Searching with forms
426 Non-@code{nil} means translate <ISINDEX> tags into a hypertext form. A
427 single text entry box is shown where the ISINDEX tag appears.
428 @item url-use-hypertext-gopher
429 @vindex url-use-hypertext-gopher
430 @cindex Gopher+
431 Controls how gopher documents are retrieved. If non-@code{nil}, the
432 gopher pages are converted into HTML and parsed just like any other
433 page. If @code{nil}, the requests are passed off to the
434 @file{gopher.el} package by Scott Snyder. Using the @file{gopher.el}
435 package loses the gopher+ support, and inlined searching.
436 @item url-xterm-command
437 @vindex url-xterm-command
438 Command used to start a windowed shell, similar to an xterm. This
439 string is passed through @code{format}, and should expect four strings:
440 the title of the window, the program name to execute, and the server and
441 port number. The default is for xterm, which is very UNIX and
442 XWindows-centric.
443 @end table
444 @node Firewalls, Proxy Gateways, Basic Setup, Getting Started
445 @section Firewalls
446 @cindex Gateways
447 There are several different reasons why the gateway support might be
448 required.
449 @enumerate
450 @cindex Firewalls 149 @cindex Firewalls
451 @item 150 @item Firewalls
452 Stuck behind a firewall. This is usually the case at large corporations 151 It is becoming more and more common to be behind a firewall or some
453 with paranoid system-administrators. 152 other system that restricts your outbound network activity, especially
454 153 if you are like me and away from the wonderful world of academia.
455 @cindex TERM 154 Emacs-W3 has several different methods to get around firewalls (not to
456 @item 155 worry though - none of them should get you in trouble with the local
457 Using TERM @footnote{TERM is a user-level protocol for emulating IP over 156 @sc{mis} department.)
458 a serial line. More information is available at 157
459 ftp://sunsite.unc.edu/pub/Linux/apps/comm/term} for slip-like access to 158 @item Emacs cannot resolve hostnames.
460 the internet.
461
462 NOTE: XEmacs and Emacs 19.22 or later have patches to enable native TERM
463 networking. To enable it, #define TERM in the appropriate s/*.h file
464 for the operating system, then change the SYSTEM_LIBS define to include
465 the @file{termnet} library that comes with the latest versions of TERM.
466
467 @item
468 @cindex Faulty hostname resolvers 159 @cindex Faulty hostname resolvers
469 @cindex Broken SUN libc 160 @cindex Broken SunOS libc
470 @cindex Can't resolve hostnames 161 @cindex Hostname resolution
471 Emacs cannot resolve hostnames. This happens quite often on Sun 162 This happens quite often on SunOS workstations and some ULTRIX machines.
472 workstations and some ULTRIX machines. Some C libraries do not include 163 Some C libraries do not include the hostname resolver routines in their
473 the hostname resolver routines in their static libraries. If Emacs was 164 static libraries. If Emacs was linked statically, and was not linked
474 linked statically, this means it won't be able to get to any machines 165 with the resolver libraries, it wil not be able to get to any machines
475 off the local network. This is characterized by being able to reach 166 off the local network. This is characterized by being able to reach
476 someplace with a raw ip number, but not its hostname 167 someplace with a raw ip number, but not its hostname
477 (http://129.79.254.191/ works, but http://www.cs.indiana.edu/ doesn't). 168 (@url{http://129.79.254.191/} works, but
478 169 @url{http://www.cs.indiana.edu/} doesn't).
479 If for some reason it is not feasible to recompile Emacs with the 170
480 @file{-lresolv} library or dynamic linking, it is just like being behind 171 The best solution for this problem is to recompile Emacs, making sure to
481 a firewall. Another alternative is to set the variable 172 either link dynamically (if available on your operating system), or
482 @code{url-broken-resolution} - this will use the support in ange-ftp or 173 include the @file{-lresolv}.
483 EFS to use @file{nslookup} in a subprocess to do all hostname resolving. 174
484 See the variables @code{efs-nslookup-program}, 175 @cindex url-gateway-broken-resolution
485 @code{efs-nslookup-on-connect}, and @code{efs-nslookup-threshold} if are 176 If you do not have the disk space or the appropriate permissions to
486 using EFS, or @code{ange-ftp-nslookup-program} if using Ange-FTP. 177 recompile Emacs, another alternative is using the @file{nslookup}
487 178 program to do hostname resolution. To turn this on, set the variable
488 @end enumerate 179 @code{url-gateway-broken-resolution} in your @file{~/.emacs} file. This
180 runs the program specified by @code{url-gateway-nslookup-program} (by
181 default "@code{nslookup}" to do hostname resolution. This program should
182 expect a single argument on the command line - the hostname to resolve,
183 and should produce output similar to the standard Unix @file{nslookup}
184 program:
185
186 @example
187 Name: www.cs.indiana.ed
188 Address: 129.79.254.191
189 @end example
190
191 @cindex @sc{term}
192 @item Using @sc{term} (or @sc{term}-like) Networking Software
193 @sc{term} @footnote{@sc{term} is a user-level protocol for emulating
194 @sc{ip} over a serial line. More information is available at
195 @url{ftp://sunsite.unc.edu/pub/Linux/apps/comm/term}} for slip-like
196 access to the internet.
197
198 @sc{note}: XEmacs and Emacs 19.22 or later have patches to enable native
199 @sc{term} networking. To enable it, @code{#define TERM} in the
200 appropriate s/*.h file for the operating system, then change the
201 @code{SYSTEM_LIBS} definition to include the @file{termnet} library that
202 comes with the latest versions of @sc{term}.
203
204 If you run into any problems with the native @sc{term} networking
205 support in Emacs or XEmacs, please let @t{wmperry@@cs.indiana.edu} know,
206 as he is responsible for the original support.
207 @end table
489 208
490 @vindex url-gateway-local-host-regexp 209 @vindex url-gateway-local-host-regexp
491 Emacs-W3 has support for using the gateway mechanism for certain 210 Emacs-W3 has support for using the gateway mechanism for certain
492 domains, and directly connecting to others. To use this, change the 211 domains, and directly connecting to others. The variable
493 value of @code{url-gateway-local-host-regexp}. This should be a regular 212 @code{url-gateway-local-host-regexp} controls this behaviour. This is a
494 expression @footnote{Please see the full Emacs distribution for a 213 regular expression @footnote{Please see the full Emacs distribution for
495 description of regular expressions} that matches local hosts that do not 214 a description of regular expressions} that matches local hosts that do
496 require the use of a gateway. If @code{nil}, then all connections are 215 not require the use of a gateway. If @code{nil}, then all connections
497 made through the gateway. 216 are made through the gateway.
498
499 217
500 @vindex url-gateway-method 218 @vindex url-gateway-method
501 Emacs-W3 supports several methods of getting around gateways. The variable 219 Emacs-W3 supports several methods of getting around gateways. The
502 @code{url-gateway-method} controls which of these methods is used. This 220 variable @code{url-gateway-method} controls which of these methods is
503 variable can have several values (use these as symbol names, not 221 used. This variable can have several values (use these as symbol names,
504 strings): 222 not strings), ie: @samp{(setq url-gateway-method 'telnet)}. Possible
223 values are:
224
505 @table @dfn 225 @table @dfn
506 @item program 226 @item telnet
507 Run a program in a subprocess to connect to remote hosts (examples are 227 Use this method if you must first telnet and log into a gateway host,
508 @i{itelnet}@footnote{Itelnet is a standard name for a telnet executable 228 and then run telnet from that host to connect to outside machines.
509 that is capable of escaping the firewall. Check with system 229
510 administrators to see if anything similar is available}, an 230 :: WORK :: document telnet gw variables
511 @i{expect}@footnote{Expect is a scripting language that allows control 231 This section needs more information, specifically documenting the
512 of interactive programs (like telnet) very easily. It is available from 232 following variables. For now, please do @key{C-h v} on the variable for
513 gatekeeper.dec.com:/pub/GNU/expect-3.24.0.tar.gz} script, etc.). 233 more information.
234
235 @table @code
236 @item url-gateway-telnet-host
237 @item url-gateway-telnet-parameters
238 @item url-gateway-telnet-password-prompt
239 @item url-gateway-telnet-puser-name
240 @item url-gateway-prompt-pattern
241 @end table
242
243 @item rlogin
244 This method is identical to the @code{telnet} method, but uses
245 @file{rlogin} to log into the remote machine without having to send the
246 username and password over the wire every time.
247
248 :: WORK :: document rlogin gw variables
249 This section needs more information, specifically documenting the
250 following variables. For now, please do @key{C-h v} on the variable for
251 more information.
252
253 @table @code
254 @item url-gateway-rlogin-host
255 @item url-gateway-rlogin-parameters
256 @item url-gateway-rlogin-user-name
257 @item url-gateway-prompt-pattern
258 @end table
514 259
515 @item tcp 260 @item tcp
516 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very nice 261 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very small
517 replacement for the standard networking in Emacs. This does basically 262 application that you can run in a subprocess to do the network
518 the same thing that a method of @code{program} does, but is slightly 263 connections.
519 more transparent to the user. 264
265 @item @sc{socks}
266 Use if the firewall has a @sc{socks} gateway running on it.
267
268 :: WORK :: document socks variables
269 This section needs more information, specifically documenting the
270 following variables. For now, please do @key{C-h v} on the variable for
271 more information.
272
273 @table @code
274 @item socks-host
275 @item socks-password
276 @item socks-username
277 @item socks-port
278 @item socks-timeout
279 @end table
280
281 @c @item ssl
282 @c This probably shouldn't be documented
283
520 @item native 284 @item native
521 This means that Emacs-W3 should use the builtin networking code of Emacs. 285 This means that Emacs-W3 should use the builtin networking code of
522 This should be used only if there is no firewall, or the Emacs source 286 Emacs. This should be used only if there is no firewall, or the Emacs
523 has already been hacked to get around the firewall. 287 source has already been hacked to get around the firewall.
524 @end table 288 @end table
525 One of these needs a bit more explanation than that:
526 @vindex url-gateway-telnet-ready-regexp
527 @vindex url-gateway-telnet-program
528 When running a program in a subprocess to emulate a network connection,
529 a few extra variables need to be set. The variable
530 @code{url-gateway-telnet-program} should point to an executable that
531 accepts a hostname and port # as its arguments, and passes standard
532 input to the remote host. This can be either the full path to the
533 executable or just the basename. The variable
534 @code{url-gateway-telnet-ready-regexp} controls how long Emacs-W3 should
535 wait after spawning the subprocess to start sending to its standard
536 input. This gets around a bug where telnet would miss the beginning of
537 requests becausse it did not buffer its input before opening a
538 connection. This should be a regular expression to watch for that
539 signifies the end of the setup of @code{url-gateway-telnet-program}.
540 The default should work fine for telnet.
541 289
542 Emacs-W3 should now be able to get outside the local network. If none 290 Emacs-W3 should now be able to get outside the local network. If none
543 of this makes sense, its probably my fault. Please check with the 291 of this makes sense, its probably my fault. Please check with the
544 network administrators to see if they have a program that does most of 292 network administrators to see if they have a program that does most of
545 this already, since somebody somewhere at the company has probably been 293 this already, since somebody somewhere at the company has probably been
546 through something similar to this before, and would be much more 294 through something similar to this before, and would be much more
547 helpful/knowledgeable about the local setup than I would be. But feel 295 helpful/knowledgeable about the local setup than I would be. But feel
548 free to mail me as a last resort. 296 free to mail me as a last resort.
549 297 @node Proxy Gateways, Startup Files , Using the Network, Getting Started
550 @node Proxy Gateways, Basic Usage, Firewalls, Getting Started
551 @section Proxy Gateways 298 @section Proxy Gateways
552 @vindex url-proxy-services 299 @vindex url-proxy-services
553 @cindex Proxy Servers 300 @cindex Proxy Servers
554 @cindex Proxies 301 @cindex Proxies
555 @cindex Proxies, environment variables 302 @cindex Proxies, environment variables
556 @cindex HTTP Proxy 303 @cindex HTTP Proxy
304
557 In late January 1993, Kevin Altis and Lou Montulli proposed and 305 In late January 1993, Kevin Altis and Lou Montulli proposed and
558 implemented a new proxy service. This service requires the use of 306 implemented a new proxy service. This service requires the use of
559 environment variables to specify a gateway server/port # to send 307 environment variables to specify a gateway server/port # to send
560 protocol requests to. Each protocol (HTTP, WAIS, gopher, FTP, etc.@:) 308 protocol requests to. Each protocol (@sc{http}, @sc{wais}, gopher,
561 can have a different gateway server. The environment variables are 309 @sc{ftp}, etc.) can have a different gateway server. The environment
562 @var{PROTOCOL}_proxy, where @var{PROTOCOL} is one of the supported 310 variables are @code{PROTOCOL}_proxy, where @code{PROTOCOL} is one of the
563 network protocols (gopher, file, HTTP, FTP, etc.) 311 supported network protocols (gopher, file, @sc{http}, @sc{ftp}, etc.)
564 312
565 @cindex No Proxy 313 @cindex No Proxy
566 @cindex Proxies, exclusion lists 314 @cindex Proxies, exclusion lists
567 @vindex NO_PROXY 315 @vindex NO_PROXY
568 For companies with internal intranets, it will usually be helpful to 316 For companies with internal intranets, it will usually be helpful to
569 define a list of hosts that should be contacted directly, @b{not} sent 317 define a list of hosts that should be contacted directly, @b{not} sent
570 through the proxy. The @var{NO_PROXY} environment variable controls 318 through the proxy. The @code{NO_PROXY} environment variable controls
571 what hosts are able to be contacted directly. This should be a comma 319 what hosts are able to be contacted directly. This should be a comma
572 separated list of hostnames, domain names, or a mixture of both. 320 separated list of hostnames, domain names, or a mixture of both.
573 Asterisks can be used as a wildcard. For example: 321 Asterisks can be used as a wildcard. For example:
574 322
575 @example 323 @example
583 @vindex url-proxy-services 331 @vindex url-proxy-services
584 @cindex Proxies, setting from lisp 332 @cindex Proxies, setting from lisp
585 For those adventurous souls who enjoy writing regular expressions, all 333 For those adventurous souls who enjoy writing regular expressions, all
586 the proxy settings can be manipulated from Emacs-Lisp. The variable 334 the proxy settings can be manipulated from Emacs-Lisp. The variable
587 @code{url-proxy-services} controls this. This is an assoc list, keyed 335 @code{url-proxy-services} controls this. This is an assoc list, keyed
588 on the protocol type (http, gopher, etc) in all lowercase. The 336 on the protocol type (@sc{http}, gopher, etc) in all lowercase. The
589 @code{cdr} of each entry should be the fully-specified URL of the proxy 337 @code{cdr} of each entry should be the fully-specified @sc{url} of the proxy
590 server to contact, or, in the case of the special "no_proxy" entry, a 338 server to contact, or, in the case of the special "no_proxy" entry, a
591 regular expression that matches any hostnames that should be contacted 339 regular expression that matches any hostnames that should be contacted
592 directly. 340 directly.
593 341
594 @example 342 @example
595 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/") 343 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/")
596 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com"))) 344 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com")))
597 @end example 345 @end example
598 346
599 @node Basic Usage, , Proxy Gateways, Top 347 @node Startup Files, Preferences Panel, Proxy Gateways, Getting Started
348 @section Startup Files
349 @cindex Startup files
350 @cindex Default stylesheet
351 :: WORK :: startup files
352 This section should document where emacs-w3 looks for its startup files,
353 and what each one does. 'profile' 'stylesheet' 'hotlist' 'history' etc.
354
355 @node Preferences Panel, , Startup Files, Getting Started
356 @section Preferences Panel
357 @cindex Preferences
358 @kindex M-x w3-edit-preferences
359 :: WORK :: pref panel
360 This should document the quick preferences panel. M-x w3-edit-preferences
361
362 @node Basic Usage, Movement , Getting Started, Top
600 @chapter Basic Usage 363 @chapter Basic Usage
601 Emacs-W3 is similar to the Info package all Emacs users hold near and dear to 364 @cindex Basic Usage
602 their hearts (@xref{Top,,Info,info, The Info Manual}, for a description 365 @kindex space
603 of Info). Basically, @kbd{space} and @kbd{backspace} control scrolling, 366 @kindex backspace
604 and @kbd{return} or @kbd{mouse2} follows a hypertext link. The @kbd{f} 367 @kindex return
605 and @kbd{b} keys maneuver around the various links on the page. 368 @kindex tab
606 369 @kindex M-tab
607 @b{NOTE:} To enter data into a form entry area, select it using 370 Emacs-W3 is similar to the Info package all Emacs users hold near and
608 @kbd{return} or the middle mouse button, just like a hypertext link. 371 dear to their hearts (@xref{Top,,Info,info, The Info Manual}, for a
372 description of Info). Basically, @kbd{space} and @kbd{backspace}
373 control scrolling, and @kbd{return} or the middle mouse button follows a
374 hypertext link. The @kbd{tab} and @kbd{Meta-tab} keys maneuver around the
375 various links on the page.
376
377 @b{NOTE:} Starting with Emacs-W3 3.0, form entry areas in a page can be
378 typed directly into. This is one of the main differences in navigation
379 from version 2.0. If you are used to using the @kbd{f} and @kbd{b} keys
380 to navigate around a buffer, I suggest training yourself to always use
381 @kbd{tab} and @kbd{M-tab} - it will save time and frustration on pages
382 with lots of form fields.
609 383
610 By default, hypertext links are surrounded by '[[' and ']]' on 384 By default, hypertext links are surrounded by '[[' and ']]' on
611 non-graphic terminals (VT100, DOS window, etc.). On a graphics 385 non-graphic terminals (VT100, DOS window, etc.). On a graphics
612 terminal, the links are in shown in different colors. @xref{Controlling 386 terminal, the links are in shown in different colors.
613 Formatting} for information on how to change this, or for help on 387 @xref{Stylesheets} for information on how to change this.
614 getting the highlighting to work on graphics terminals.
615 388
616 There are approximately 50 keys bound to special Emacs-W3 functions. 389 There are approximately 50 keys bound to special Emacs-W3 functions.
617 The basic rule of thumb regarding keybindings in Emacs-W3 is that a 390 The basic rule of thumb regarding keybindings in Emacs-W3 is that a
618 lowercase key takes an action on the @b{current document}, and an 391 lowercase key takes an action on the @b{current document}, and an
619 uppercase key takes an action on the document pointed to by the 392 uppercase key takes an action on the document pointed to by the
622 There are several areas that the keybindings fall into: movement, 395 There are several areas that the keybindings fall into: movement,
623 information, action, and miscellaneous. 396 information, action, and miscellaneous.
624 397
625 @ifinfo 398 @ifinfo
626 @menu 399 @menu
627 * Movement:: Moving around in a Emacs-W3 buffer 400 * Movement:: Moving around in the buffer.
628 * Information:: Getting information about the Emacs-W3 document being 401 * Information:: Getting information about a document.
629 viewed, and/or links within that document. 402 * Action:: Following links, printing, etc.
630 * Action:: Taking actions in a Emacs-W3 buffer (following links, 403 * Miscellaneous:: Everything else.
631 printing, etc.)
632 * Miscellaneous:: Miscellaneous keybindings
633 @end menu 404 @end menu
634 @end ifinfo 405 @end ifinfo
635 @node Movement, Information, Basic Usage, Basic Usage 406 @node Movement, Information, Basic Usage, Basic Usage
636 @section Movement 407 @section Movement
637 :: WORK :: Document the 'h' and 'a' keymaps 408 All the standard Emacs bindings for movement are still in effect, with a
409 few additions for convenience.
410
638 @table @kbd 411 @table @kbd
639 @findex scroll-up 412 @findex w3-scroll-up
640 @kindex SPC 413 @kindex space
641 @item SPC 414 @item space
642 Scroll downward in the buffer. With prefix arg, scroll down that many 415 Scroll downward in the buffer. With prefix arg, scroll down that many
643 screenfuls. 416 screenfuls.
644 @kindex DEL 417 @kindex backspace
645 @findex scroll-down 418 @findex scroll-down
646 @item DEL 419 @item backspace
647 Scroll upward in the buffer. With prefix arg, scroll up that many 420 Scroll upward in the buffer. With prefix arg, scroll up that many
648 screenfuls. 421 screenfuls.
649 @kindex < 422 @kindex <
650 @findex w3-start-of-document 423 @findex w3-start-of-document
651 @item < 424 @item <
653 @kindex > 426 @kindex >
654 @findex w3-end-of-document 427 @findex w3-end-of-document
655 @item > 428 @item >
656 Goes to the end of document 429 Goes to the end of document
657 @kindex b 430 @kindex b
658 @kindex Shift-TAB 431 @kindex Meta-tab
659 @findex w3-back-link 432 @findex w3-widget-backward
660 @item Shift-TAB, b 433 @item Meta-tab, b
661 Attempts to move backward one link area in the current document. 434 Attempts to move backward one link area in the current document.
662 Signals an error if no previous links are found. 435 Signals an error if no previous links are found.
663 @kindex hl 436 @kindex f
664 @findex w3-show-hotlist 437 @kindex tab
665 @item hl 438 @kindex n
666 Displays a complete listing of the items in the hotlist. 439 @findex w3-widget-forward
667 @kindex hu 440 @item tab, f, n
668 @findex w3-use-hotlist 441 Attempts to move forward one link area in the current document. Signals
669 @item hu 442 an error if no more links are found.
670 Go to a link in the hotlist. 443 @kindex B
444 @findex w3-backward-in-history
445 @item B
446 Move backwards in the history stack.
447 @kindex F
448 @findex w3-forward-in-history
449 @item F
450 Move forwards in the history stack.
451 @kindex l
452 @findex w3-goto-last-buffer
453 @item l
454 Return to the last buffer shown before this buffer.
455 @kindex q
456 @findex w3-quit
457 @item q
458 Kill this buffer.
459 @kindex Q, u
460 @findex w3-leave-buffer
461 Bury this buffer, but don't kill it
462 @end table
463
464 @node Information, Action, Movement, Basic Usage
465 @section Information
466 These functions relate information about one or more links on the
467 current document.
468
469 @table @kbd
470 @kindex v
471 @findex url-view-url
472 @item v
473 This shows the @sc{url} of the current document in the minibuffer.
474 @kindex V
475 @findex w3-view-this-url
476 @item V
477 This shows the @sc{url} of the hypertext link under point in the
478 minibuffer.
479 @kindex i
480 @findex w3-document-information
481 @item i
482 Shows miscellaneous information about the currently displayed document.
483 This includes the @sc{url}, the last modified date, @sc{mime} headers,
484 the @sc{http} response code, and any relationships to other documents.
485 Any security information is also displayed.
486 @kindex I
487 @findex w3-document-information-this-url
488 @item I
489 Shows information about the @sc{url} at point.
490 @kindex s
491 @findex w3-source-document
492 @item s
493 This shows the @sc{html} source of the current document in a separate buffer.
494 The buffer's name is based on the document's @sc{url}.
495 @kindex S
496 @findex w3-source-document-at-point
497 @item S
498 Shows the @sc{html} source of the hypertext link under point in a separate
499 buffer. The buffer's name is based on the document's @sc{url}.
500 @kindex k
501 @findex w3-save-url
502 @item k
503 This stores the current document's @sc{url} in the kill ring, and also in the
504 current window-system's clipboard, if possible.
505 @kindex K
506 @findex w3-save-this-url
507 @item K
508 Stores the @sc{url} of the document under point in the kill ring, and also in
509 the current window-system's clipboard, if possible.
510 @end table
511
512 @node Action, Miscellaneous, Information, Basic Usage
513 @section Action
514 First, here are the keys and functions that bring up a new hypertext
515 page, usually creating a new buffer.
516 @table @kbd
671 @kindex m 517 @kindex m
672 @findex w3-complete-link 518 @findex w3-complete-link
673 @item m 519 @item m
674 Choose a link from the current buffer and follow it. A completing-read 520 Choose a link from the current buffer and follow it. A completing-read
675 is done on all the links, so @kbd{space} and @kbd{TAB} can be used for 521 is done on all the links, so @kbd{space} and @kbd{TAB} can be used for
676 completion. 522 completion.
677 @kindex f
678 @kindex TAB
679 @kindex n
680 @findex w3-forward-link
681 @item TAB, f, n
682 Attempts to move forward one link area in the current document. Signals
683 an error if no more links are found.
684 @end table
685 @node Information, Action, Movement, Basic Usage
686 @section Information
687 These functions relate information about one or more links on the
688 current document.
689 @table @kbd
690 @kindex v
691 @findex url-view-url
692 @item v
693 This shows the URL of the current document in the minibuffer.
694 @kindex V
695 @findex w3-view-this-url
696 @item V
697 This shows the URL of the hypertext link under point in the minibuffer.
698 If there is not a hypertext link under point, then it shows the type of
699 form entry area under point. If there is no form entry area under
700 point, then it shows the inlined image's URL that is under point, if
701 any.
702 @kindex i
703 @findex w3-document-information
704 @item i
705 Shows miscellaneous information about the currently displayed document.
706 This includes the URL, the last modified date, MIME headers, the HTTP
707 response code, and any relationships to other documents. Any security
708 information is also displayed.
709 @kindex I
710 @findex w3-document-information-this-url
711 @item I
712 Shows information about the URL at point.
713 @kindex s
714 @findex w3-source-document
715 @item s
716 This shows the HTML source of the current document in a separate buffer.
717 The buffer's name is based on the document's URL.
718 @kindex S
719 @findex w3-source-document-at-point
720 @item S
721 Shows the HTML source of the hypertext link under point in a separate
722 buffer. The buffer's name is based on the document's URL.
723 @kindex k
724 @findex w3-save-url
725 @item k
726 This stores the current document's URL in the kill ring, and also in the
727 current window-system's clipboard, if possible.
728 @kindex K
729 @findex w3-save-this-url
730 @item K
731 Stores the URL of the document under point in the kill ring, and also in
732 the current window-system's clipboard, if possible.
733 @end table
734 @node Action, Miscellaneous, Information, Basic Usage
735 @section Action
736 First, here are the keys and functions that bring up a new hypertext
737 page, usually creating a new buffer.
738 @table @kbd
739 @kindex return 523 @kindex return
740 @findex w3-follow-link 524 @findex w3-follow-link
741 @item return 525 @item return
742 Pressing return when over a hyperlink attempts to follow the link 526 Pressing return when over a hyperlink attempts to follow the link
743 under the cursor. With a prefix argument (@kbd{C-u}), this forces the 527 under the cursor. With a prefix argument (@kbd{C-u}), this forces the
744 file to be saved to disk instead of being passed off to other viewers 528 file to be saved to disk instead of being passed off to other viewers
745 or being parsed as HTML. 529 or being parsed as @sc{html}.
746 530
747 Pressing return when over a form input field will prompt in the 531 Pressing return when over a form input field can cause auto-submission
532 of the form. This is for Mosaic and Netscape compatibility. If there
533 is only one item in the form other than submit or reset buttons, then
534
748 minibuffer for the data to insert into the input field. Type checking 535 minibuffer for the data to insert into the input field. Type checking
749 is done, and the data is only entered into the form when data of the 536 is done, and the data is only entered into the form when data of the
750 correct type is entered (ie: cannot enter 44 for 'date' field, etc). 537 correct type is entered (ie: cannot enter 44 for 'date' field, etc).
751 538
752 @kindex Middle Mouse Button 539 @kindex Middle Mouse Button
769 556
770 @kindex p 557 @kindex p
771 @findex w3-print-this-url 558 @findex w3-print-this-url
772 @item p 559 @item p
773 Prints out the current buffer in a variety of formats, including 560 Prints out the current buffer in a variety of formats, including
774 PostScript, HTML source, or formatted text. 561 PostScript, @sc{html} source, or formatted text.
775 @kindex P 562 @kindex P
776 @findex w3-print-url-under-point 563 @findex w3-print-url-under-point
777 @item P 564 @item P
778 Prints out the URL under point in a variety of formats, including 565 Prints out the @sc{url} under point in a variety of formats, including
779 PostScript, HTML source, or formatted text. 566 PostScript, @sc{html} source, or formatted text.
780 @kindex m 567 @kindex m
781 @findex w3-complete-link 568 @findex w3-complete-link
782 @item m 569 @item m
783 Selects a destination from a list of all the hyperlinks in the current 570 Selects a destination from a list of all the hyperlinks in the current
784 buffer. Use @kbd{space} and @kbd{tab} to complete on the links. 571 buffer. Use @kbd{space} and @kbd{tab} to complete on the links.
793 unconditional reload from the remote server - the locally cached copy is 580 unconditional reload from the remote server - the locally cached copy is
794 not consulted. 581 not consulted.
795 @kindex C-o 582 @kindex C-o
796 @findex w3-fetch 583 @findex w3-fetch
797 @item C-o 584 @item C-o
798 Prompts for a URL in the minibuffer, and attempts to fetch 585 Prompts for a @sc{url} in the minibuffer, and attempts to fetch
799 it. If there are any errors, or Emacs-W3 cannot understand the type of link 586 it. If there are any errors, or Emacs-W3 cannot understand the type of link
800 requested, the errors are displayed in a hypertext buffer. 587 requested, the errors are displayed in a hypertext buffer.
801 @kindex o 588 @kindex o
802 @findex w3-open-local 589 @findex w3-open-local
803 @vindex url-use-hypertext-dired 590 @vindex url-use-hypertext-dired
814 @findex w3-search 601 @findex w3-search
815 @item M-s 602 @item M-s
816 Perform a search, if this is a searchable index. Searching requires a 603 Perform a search, if this is a searchable index. Searching requires a
817 server - Emacs-W3 can not do local file searching, as there are too many 604 server - Emacs-W3 can not do local file searching, as there are too many
818 possible types of searches people could want to do. Generally, the only 605 possible types of searches people could want to do. Generally, the only
819 URL types that allow searching are HTTP, gopher, and X-EXEC. 606 @sc{url} types that allow searching are @sc{http}, gopher, and X-EXEC.
820 @kindex Hv 607 @kindex Hv
821 @findex w3-show-history-list 608 @findex w3-show-history-list
822 @vindex w3-keep-history 609 @vindex w3-keep-history
823 @item Hv 610 @item Hv
824 If @code{url-keep-history} is non-@code{nil}, then Emacs-W3 keeps track 611 If @code{url-keep-history} is non-@code{nil}, then Emacs-W3 keeps track
825 of all the URLs visited in an Emacs session. This function takes all 612 of all the @sc{url}s visited in an Emacs session. This function takes all
826 the links that are in that internal list, and formats them as hypertext 613 the links that are in that internal list, and formats them as hypertext
827 links in a list. 614 links in a list.
828 @end table 615 @end table
829 616
830 @cindex Buffer movement 617 @cindex Buffer movement
868 @table @kbd 655 @table @kbd
869 @kindex M-m 656 @kindex M-m
870 @findex w3-mail-current-document 657 @findex w3-mail-current-document
871 @item M-m 658 @item M-m
872 Mails the current document to someone. Choose from several different 659 Mails the current document to someone. Choose from several different
873 formats to mail: formatted text, HTML source, PostScript, or LaTeX source. 660 formats to mail: formatted text, @sc{html} source, PostScript, or LaTeX source.
874 When the HTML source is mailed, then an appropriate <base> tag is inserted 661 When the @sc{html} source is mailed, then an appropriate <base> tag is inserted
875 at the beginning of the document so that relative links may be followed 662 at the beginning of the document so that relative links may be followed
876 correctly by whoever receives the mail. 663 correctly by whoever receives the mail.
877 @kindex M-M 664 @kindex M-M
878 @findex w3-mail-document-under-point 665 @findex w3-mail-document-under-point
879 @item M-M 666 @item M-M
880 Mails the document pointed to by the hypertext link under point to someone. 667 Mails the document pointed to by the hypertext link under point to someone.
881 Choose from several different formats to mail: formatted text, HTML source, 668 Choose from several different formats to mail: formatted text, @sc{html} source,
882 PostScript, or LaTeX source. When the HTML source is mailed, then an 669 PostScript, or LaTeX source. When the @sc{html} source is mailed, then an
883 appropriate <base> tag is inserted at the beginning of the document so that 670 appropriate <base> tag is inserted at the beginning of the document so that
884 relative links may be followed correctly by whoever receives the 671 relative links may be followed correctly by whoever receives the
885 mail. 672 mail.
886 @kindex p 673 @kindex p
887 @findex w3-print-this-url 674 @findex w3-print-this-url
888 @item p 675 @item p
889 Prints the current document. Choose from several different formats to 676 Prints the current document. Choose from several different formats to
890 print: formatted text, HTML source, PostScript (with ps-print), or by using 677 print: formatted text, @sc{html} source, PostScript (with ps-print), or by using
891 LaTeX and dvips). 678 LaTeX and dvips).
892 679
893 @findex lpr-buffer 680 @findex lpr-buffer
894 @vindex lpr-command 681 @vindex lpr-command
895 @vindex lpr-switches 682 @vindex lpr-switches
896 When the formatted text is printed, the normal @code{lpr-buffer} function 683 When the formatted text is printed, the normal @code{lpr-buffer} function
897 is called, and the variables @code{lpr-command} and @code{lpr-switches} 684 is called, and the variables @code{lpr-command} and @code{lpr-switches}
898 control how the document is printed. 685 control how the document is printed.
899 686
900 When the HTML source is printed, then an appropriate <base> tag is 687 When the @sc{html} source is printed, then an appropriate <base> tag is
901 inserted at the beginning of the document. 688 inserted at the beginning of the document.
902 @vindex w3-print-commnad 689 @vindex w3-print-commnad
903 @vindex w3-latex-docstyle 690 @vindex w3-latex-docstyle
904 When postscript is printed, then the HTML source of the document is 691 When postscript is printed, then the @sc{html} source of the document is
905 converted into LaTeX source. There are several variables controlling 692 converted into LaTeX source. There are several variables controlling
906 what the final LaTeX document looks like. 693 what the final LaTeX document looks like.
907 694
908 :: WORK :: Document the new LaTeX backend 695 :: WORK :: Document the new LaTeX backend
909 696
913 If non-@code{nil}, configures the LaTeX engine to use the LaTeX2e 700 If non-@code{nil}, configures the LaTeX engine to use the LaTeX2e
914 syntax. A @code{nil} value indicates that LaTeX 2.0.9 compabibility 701 syntax. A @code{nil} value indicates that LaTeX 2.0.9 compabibility
915 will be used instead. 702 will be used instead.
916 @item w3-latex-docstyle 703 @item w3-latex-docstyle
917 @vindex w3-latex-docstyle 704 @vindex w3-latex-docstyle
918 The document style to use when printing or mailing converted HTML files 705 The document style to use when printing or mailing converted @sc{html} files
919 in LaTeX. Good defaults are: @{article@}, [psfig,twocolumn]@{article@}, 706 in LaTeX. Good defaults are: @{article@}, [psfig,twocolumn]@{article@},
920 etc. 707 etc.
921 @item w3-latex-packages 708 @item w3-latex-packages
922 @vindex w3-latex-packages 709 @vindex w3-latex-packages
923 List of LaTeX packages to include. Currently this is only used if 710 List of LaTeX packages to include. Currently this is only used if
926 @vindex w3-latex-use-maketitle 713 @vindex w3-latex-use-maketitle
927 If non-@code{nil}, the LaTeX engine will use real LaTeX title pages for 714 If non-@code{nil}, the LaTeX engine will use real LaTeX title pages for
928 document titles. 715 document titles.
929 @item w3-latex-print-links 716 @item w3-latex-print-links
930 @vindex w3-latex-print-links 717 @vindex w3-latex-print-links
931 If non-@code{nil}, prints the URLs of hypertext links as endnotes at the 718 If non-@code{nil}, prints the @sc{url}s of hypertext links as endnotes at the
932 end of the document. If set to @code{footnote}, prints the URL's as 719 end of the document. If set to @code{footnote}, prints the @sc{url}'s as
933 footnotes on each page. 720 footnotes on each page.
934 @end table 721 @end table
935 722
936 @kindex P 723 @kindex P
937 @findex w3-print-url-under-point 724 @findex w3-print-url-under-point
939 Prints the document pointed to by the hypertext link under point. 726 Prints the document pointed to by the hypertext link under point.
940 Please see the previous item for more information. 727 Please see the previous item for more information.
941 @kindex M-x w3-insert-formatted-url 728 @kindex M-x w3-insert-formatted-url
942 @findex w3-insert-formatted-url 729 @findex w3-insert-formatted-url
943 @item M-x w3-insert-formatted-url 730 @item M-x w3-insert-formatted-url
944 Insert a fully formatted HTML link into another buffer. This gets the 731 Insert a fully formatted @sc{html} link into another buffer. This gets the
945 name and URL of either the current buffer, or, with a prefix arg, of the 732 name and @sc{url} of either the current buffer, or, with a prefix arg, of the
946 link under point, and construct the appropriate <a...>...</a> markup and 733 link under point, and construct the appropriate <a...>...</a> markup and
947 insert it into the desired buffer. 734 insert it into the desired buffer.
948 @kindex M-tab 735 @kindex M-tab
949 @findex w3-insert-this-url 736 @findex w3-insert-this-url
950 @item M-tab 737 @item M-tab
951 Inserts the URL of the current document into another buffer. Buffer is 738 Inserts the @sc{url} of the current document into another buffer. Buffer is
952 prompted for in the minibuffer. With prefix arg, uses the URL of the 739 prompted for in the minibuffer. With prefix arg, uses the @sc{url} of the
953 link under point. 740 link under point.
954 @kindex U 741 @kindex U
955 @findex w3-use-links 742 @findex w3-use-links
956 @item U 743 @item U
957 Selects one of the <LINK> tags from this document and fetch it. Links 744 Selects one of the <LINK> tags from this document and fetch it. Links
983 * Session History:: Keeping a history of documents visited 770 * Session History:: Keeping a history of documents visited
984 in one Emacs sessions allows the use of 771 in one Emacs sessions allows the use of
985 'forward' and 'back' buttons easily. 772 'forward' and 'back' buttons easily.
986 * Global History:: Keeping a history of all the places ever 773 * Global History:: Keeping a history of all the places ever
987 visited on the web. 774 visited on the web.
988 * Annotations:: Annotations allow comments on other
989 people's Web documents without needing
990 to change the document.
991 @end menu 775 @end menu
992 @end ifinfo 776 @end ifinfo
993 @node Emulation, Hotlist Handling, Compatibility, Compatibility 777 @node Emulation, Hotlist Handling, Compatibility, Compatibility
994 @section Emulation 778 @section Emulation
995 @cindex Browser emulation 779 @cindex Browser emulation
1000 @findex turn-on-lynx-emulation 784 @findex turn-on-lynx-emulation
1001 @findex w3-netscape-emulation-minor-mode 785 @findex w3-netscape-emulation-minor-mode
1002 @findex w3-lynx-emulation-minor-mode 786 @findex w3-lynx-emulation-minor-mode
1003 @vindex w3-mode-hook 787 @vindex w3-mode-hook
1004 :: WORK :: Document lynx emulation 788 :: WORK :: Document lynx emulation
789 @table @key
790 @item Down arrow
791 Highlight next topic
792 @item Up arrow
793 Highlight previous topic
794 @item Right arrow, Return, Enter
795 Jump to highlighted topic
796 @item Left arrow
797 Return to previous topic
798 @item +
799 Scroll down to next page (Page-Down)
800 @item -
801 Scroll up to previous page (Page-Up)
802 @item SPACE
803 Scroll down to next page (Page-Down)
804 @item b
805 Scroll up to previous page (Page-Up)
806 @item C-A
807 Go to first page of the current document (Home)
808 @item C-E
809 Go to last page of the current document (End)
810 @item C-B
811 Scroll up to previous page (Page-Up)
812 @item C-F
813 Scroll down to next page (Page-Down)
814 @item C-N
815 Go forward two lines in the current document
816 @item C-P
817 Go back two lines in the current document
818 @item )
819 Go forward half a page in the current document
820 @item (
821 Go back half a page in the current document
822 @item #
823 Go to Toolbar or Banner in the current document
824 @item ?, h
825 Help (this screen)
826 @item a
827 Add the current link to a bookmark file
828 @item c
829 Send a comment to the document owner
830 @item d
831 Download the current link
832 @item e
833 Edit the current file
834 @item g
835 Goto a user specified @sc{url} or file
836 @item i
837 Show an index of documents
838 @item j
839 Execute a jump operation
840 @item k
841 Show a list of key mappings
842 @item l
843 List references (links) in current document
844 @item m
845 Return to main screen
846 @item o
847 Set your options
848 @item p
849 Print the current document
850 @item q
851 Quit
852 @item /
853 Search for a string within the current document
854 @item s
855 Enter a search string for an external search
856 @item n
857 Go to the next search string
858 @item v
859 View a bookmark file
860 @item V
861 Go to the Visited Links Page
862 @item x
863 Force submission of form or link with no-cache
864 @item z
865 Cancel transfer in progress
866 @item [backspace]
867 Go to the history Page
868 @item =
869 Show file and link info
870 @item \
871 Toggle document source/rendered view
872 @item !
873 Spawn your default shell
874 @item *
875 Toggle image_links mode on and off
876 @item [
877 Toggle pseudo_inlines mode on and off
878 @item ]
879 Send an @sc{http} @sc{head} request for the current doc or link
880 @item C-R
881 Reload current file and refresh the screen
882 @item C-W
883 Refresh the screen
884 @item C-U
885 Erase input line
886 @item C-G
887 Cancel input or transfer
888 @item C-T
889 Toggle trace mode on and off
890 @item C-K
891 Invoke the Cookie Jar Page
892 @end table
893
1005 :: WORK :: Document netscape emulation 894 :: WORK :: Document netscape emulation
895 Uh, turn this into pretty tables about what keys are emulated.
896
897 @example
898 (define-key w3-netscape-emulation-minor-mode-map "\M-s" 'w3-save-as)
899 (define-key w3-netscape-emulation-minor-mode-map "\M-m" 'w3-mailto)
900 (define-key w3-netscape-emulation-minor-mode-map "\M-n" 'make-frame)
901 (define-key w3-netscape-emulation-minor-mode-map "\M-l" 'w3-fetch)
902 (define-key w3-netscape-emulation-minor-mode-map "\M-o" 'w3-open-local)
903 (define-key w3-netscape-emulation-minor-mode-map "\M-p" 'w3-print-this-url)
904 (define-key w3-netscape-emulation-minor-mode-map "\M-q" 'w3-quit)
905 (define-key w3-netscape-emulation-minor-mode-map "\M-f" 'w3-search-forward)
906 (define-key w3-netscape-emulation-minor-mode-map "\M-g" 'w3-search-again)
907 (define-key w3-netscape-emulation-minor-mode-map "\M-r" 'w3-reload-document)
908 (define-key w3-netscape-emulation-minor-mode-map "\M-i" 'w3-load-delayed-images)
909 (define-key w3-netscape-emulation-minor-mode-map "\M-a" 'w3-hotlist-add-document)
910 (define-key w3-netscape-emulation-minor-mode-map "\M-b" 'w3-show-hotlist)
911 (define-key w3-netscape-emulation-minor-mode-map "\M-h" 'w3-show-history-list)
912
913 @end example
1006 914
1007 @node Hotlist Handling, Session History, Emulation, Compatibility 915 @node Hotlist Handling, Session History, Emulation, Compatibility
1008 @section Hotlist Handling 916 @section Hotlist Handling
1009 :: WORK :: Document that it supports different types of hotlist formats 917 :: WORK :: Document that it supports different types of hotlist formats
1010 :: WORK :: Make sure everything hotlist related can be accessed via 'h' 918 :: WORK :: Make sure everything hotlist related can be accessed via 'h'
1011 In order to avoid having to traverse many documents to get to the same 919 In order to avoid having to traverse many documents to get to the same
1012 document over and over, Emacs-W3 supports a ``hotlist'' like Mosaic. This is 920 document over and over, Emacs-W3 supports a ``hotlist'' like Mosaic. This is
1013 a file that contains URLs and aliases. Hotlists allow quick access to any 921 a file that contains @sc{url}s and aliases. Hotlists allow quick access to any
1014 document in the Web, providing it has been visited and added to the hotlist. 922 document in the Web, providing it has been visited and added to the hotlist.
1015 The variable @code{w3-hotlist-file} determines where this information 923 The variable @code{w3-hotlist-file} determines where this information
1016 is saved. The structure of the file is compatible with Mosaic's 924 is saved. The structure of the file is compatible with Mosaic's
1017 hotlist file, so this defaults to @file{~/.mosaic-hotlist-default}. 925 hotlist file, so this defaults to @file{~/.mosaic-hotlist-default}.
1018 926
1022 @findex w3-hotlist-add-document 930 @findex w3-hotlist-add-document
1023 @vindex w3-hotlist-file 931 @vindex w3-hotlist-file
1024 @item a 932 @item a
1025 Adds the current document to the hotlist, with the buffer name as its 933 Adds the current document to the hotlist, with the buffer name as its
1026 identifier. Modifies the file specified by @code{w3-hotlist-file}. If 934 identifier. Modifies the file specified by @code{w3-hotlist-file}. If
1027 this is given a @var{prefix-argument} (via @kbd{C-u}), the title is 935 this is given a prefix-argument (via @kbd{C-u}), the title is prompted
1028 prompted for instead of automatically defaulting to the 936 for instead of automatically defaulting to the document title.
1029 document title.
1030 937
1031 @findex w3-hotlist-refresh 938 @findex w3-hotlist-refresh
1032 @vindex w3-hotlist-file 939 @vindex w3-hotlist-file
1033 @kindex hR 940 @kindex hR
1034 @item hR 941 @item hR
1060 @key{tab} key shows partial completions. 967 @key{tab} key shows partial completions.
1061 968
1062 @item hv 969 @item hv
1063 @kindex hv 970 @kindex hv
1064 @findex w3-show-hotlist 971 @findex w3-show-hotlist
1065 Converts the hotlist into HTML and displays it. 972 Converts the hotlist into @sc{html} and displays it.
1066 @item ha 973 @item ha
1067 @kindex ha 974 @kindex ha
1068 @findex w3-hotlist-apropos 975 @findex w3-hotlist-apropos
1069 Shows the hotlist entries matching a regular expression. 976 Shows the hotlist entries matching a regular expression.
1070 @item hA 977 @item hA
1073 Appends another hotlist file to the one currently in memory. 980 Appends another hotlist file to the one currently in memory.
1074 @end table 981 @end table
1075 @node Session History, Global History, Hotlist Handling, Compatibility 982 @node Session History, Global History, Hotlist Handling, Compatibility
1076 @section History 983 @section History
1077 @cindex History Lists 984 @cindex History Lists
1078 Almost all web browsers keep track of the URLs followed from a page, so 985 Almost all web browsers keep track of the @sc{url}s followed from a page, so
1079 that it can provide @b{forward} and @b{back} buttons to keep a @i{path} 986 that it can provide @b{forward} and @b{back} buttons to keep a @i{path}
1080 of URLs that can be traversed easily. 987 of @sc{url}s that can be traversed easily.
1081 @vindex url-keep-history 988 @vindex url-keep-history
1082 If the variable @code{url-keep-history} is @code{t}, then Emacs-W3 989 If the variable @code{url-keep-history} is @code{t}, then Emacs-W3
1083 keeps a list of all the URLs visited in a session. 990 keeps a list of all the @sc{url}s visited in a session.
1084 @findex w3-show-history 991 @findex w3-show-history
1085 To view a listing of the history for this session of Emacs-W3, use 992 To view a listing of the history for this session of Emacs-W3, use
1086 @code{M-x w3-show-history} from any buffer, and Emacs-W3 generates an 993 @code{M-x w3-show-history} from any buffer, and Emacs-W3 generates an
1087 HTML document showing every URL visited since Emacs started (or 994 @sc{html} document showing every @sc{url} visited since Emacs started (or
1088 cleared the history list), and then format it. Any of the links can 995 cleared the history list), and then format it. Any of the links can
1089 be chosen and followed to the original document. To clear the history 996 be chosen and followed to the original document. To clear the history
1090 list, choose 'Clear History' from the 'Options' menu. 997 list, choose 'Clear History' from the 'Options' menu.
1091 998
1092 @findex w3-forward-in-history 999 @findex w3-forward-in-history
1093 @findex w3-backward-in-history 1000 @findex w3-backward-in-history
1094 @findex w3-fetch 1001 @findex w3-fetch
1095 Another twist on the history list mechanism is the fact that all 1002 Another twist on the history list mechanism is the fact that all
1096 Emacs-W3 buffers remember what URL, buffer, and buffer position of the 1003 Emacs-W3 buffers remember what @sc{url}, buffer, and buffer position of the
1097 last document, and also keeps track of the next location jumped @b{to} 1004 last document, and also keeps track of the next location jumped @b{to}
1098 from that buffer. This means that the user can go forwards and 1005 from that buffer. This means that the user can go forwards and
1099 backwards very easily along the path taken to reach a particular 1006 backwards very easily along the path taken to reach a particular
1100 document. To go forward, use the function @code{w3-forward-in-history}, 1007 document. To go forward, use the function @code{w3-forward-in-history},
1101 to go backward, use the function @code{w3-backward-in-history}. 1008 to go backward, use the function @code{w3-backward-in-history}.
1102 1009
1103 @node Global History, Annotations, Session History, Compatibility 1010 @node Global History, , Session History, Compatibility
1104 @section Global History 1011 @section Global History
1105 :: WORK :: Document that the global history can have diff. formats 1012 :: WORK :: Document that the global history can have diff. formats
1106 Most web browsers also support the idea of a ``history'' of URLs the 1013 Most web browsers also support the idea of a ``history'' of @sc{url}s the
1107 user has visited, and it displays them in a different style than normal 1014 user has visited, and it displays them in a different style than normal
1108 URLs. 1015 @sc{url}s.
1109 1016
1110 @vindex url-keep-history 1017 @vindex url-keep-history
1111 @vindex url-global-history-file 1018 @vindex url-global-history-file
1112 If the variable @code{url-keep-history} is @code{t}, then Emacs-W3 1019 If the variable @code{url-keep-history} is @code{t}, then Emacs-W3
1113 keeps a list of all the URLs visited in a session. The file is 1020 keeps a list of all the @sc{url}s visited in a session. The file is
1114 automatically written to disk when exiting emacs. The list is added to 1021 automatically written to disk when exiting emacs. The list is added to
1115 those already in the file specified by @code{url-global-history-file}, 1022 those already in the file specified by @code{url-global-history-file},
1116 which defaults to @file{~/.mosaic-global-history}. 1023 which defaults to @file{~/.mosaic-global-history}.
1117 1024
1118 If any URL in the list is found in the file, it is not saved, but new 1025 If any @sc{url} in the list is found in the file, it is not saved, but new
1119 ones are added at the end of the file. 1026 ones are added at the end of the file.
1120 1027
1121 The function that saves the global history list is smart enough to 1028 The function that saves the global history list is smart enough to
1122 notice what style of history list is being used (Netscape, Emacs-W3, or 1029 notice what style of history list is being used (Netscape, Emacs-W3, or
1123 XMosaic), and writes out the new additions appropriately. 1030 XMosaic), and writes out the new additions appropriately.
1125 @cindex Completion of URLs 1032 @cindex Completion of URLs
1126 @cindex Usefulness of global history 1033 @cindex Usefulness of global history
1127 One of the nice things about keeping a global history files is that Emacs-W3 1034 One of the nice things about keeping a global history files is that Emacs-W3
1128 can use it as a completion table. When doing @kbd{M-x w3-fetch}, pressing 1035 can use it as a completion table. When doing @kbd{M-x w3-fetch}, pressing
1129 the @kbd{tab} or @kbd{space} key will show all completions for a 1036 the @kbd{tab} or @kbd{space} key will show all completions for a
1130 partial URL. This is very useful, especially for very long URLs that 1037 partial @sc{url}. This is very useful, especially for very long @sc{url}s that
1131 are not in a hotlist, or for seeing all the pages from a particular web 1038 are not in a hotlist, or for seeing all the pages from a particular web
1132 site before choosing which to retrieve. 1039 site before choosing which to retrieve.
1133 1040
1134 @node Annotations, Group Annotations, Global History, Compatibility 1041 @node Stylesheets, General Formatting, Top, Top
1135 @section Annotations 1042 @chapter Stylesheets
1136 @cindex Annotations
1137 Mosaic can @i{annotate} documents. Annotations are comments about the
1138 current document, and these annotations appear as a link to the comments
1139 at the end of the document. The original file is not changed.
1140
1141 @ifinfo
1142 @menu
1143 * Group Annotations:: Annotations accessible by everyone
1144 * Personal Annotations:: Private annotations only accessible
1145 to the user who created them
1146 @end menu
1147 @end ifinfo
1148 @node Group Annotations, Personal Annotations, Annotations, Annotations
1149 @subsection Group Annotations
1150 @cindex Group Annotations
1151 @b{@i{NOTE}}: The group annotation experiment has been terminated. It
1152 will be replaced with support on the server side for adding <LINK> tags
1153 to documents.
1154
1155 @node Personal Annotations, , Group Annotations, Annotations
1156 @subsection Personal Annotations
1157 @cindex Personal Annotations
1158 @vindex w3-personal-annotation-directory
1159 Emacs-W3 looks in the directory specified by
1160 @code{w3-personal-annotation-directory} (defaults to
1161 @file{~/.mosaic-personal-annotations}). Any personal annotations for a
1162 document are automatically appended when it is retrieved.
1163
1164 :: WORK :: Document the new 'a' prefix keymap
1165 :: WORK :: Tell where the annotations are stored
1166
1167 @findex w3-add-personal-annotation
1168 @vindex w3-annotation-mode
1169 To add a new personal annotation, type @kbd{M-x
1170 w3-add-personal-annotation}. This creates a new buffer, in the mode
1171 specified by @code{w3-annotation-mode}. This defaults to
1172 @code{html-mode}. If this variable is @code{nil}, or it points to an
1173 undefined function, then @code{default-major-mode} is consulted.
1174
1175 A minor mode redefines @kbd{C-c C-c} to complete the annotation and
1176 store it on the local disk.
1177
1178 @findex w3-delete-personal-annotation
1179 To delete a personal annotation, it must be the current page. Once
1180 reading the annotation, @kbd{M-x w3-delete-personal-annotation} will
1181 remove it. This deletes the file containing the annotation, and any
1182 references to it in the annotation log file.
1183
1184 Editing personal annotations is not yet supported.
1185
1186 @node Controlling Formatting, General Formatting, Top, Top
1187 @chapter Controlling Formatting
1188 @cindex Customizing formatting 1043 @cindex Customizing formatting
1189 @cindex Specifying Fonts 1044 @cindex Specifying Fonts
1190 @cindex Fonts 1045 @cindex Fonts
1046 @cindex Stylesheets
1191 @cindex Colors 1047 @cindex Colors
1192 How Emacs-W3 formats a document is very customizable. All control over 1048 How Emacs-W3 formats a document is very customizable. All control over
1193 formatting is now controlled by a default stylesheet set by the user 1049 formatting is now controlled by a default stylesheet set by the user
1194 with the @code{w3-default-sheet} variable. 1050 with the @code{w3-default-stylesheet} variable.
1195 1051
1196 The following sections describe in more detail how to change the 1052 The following sections describe in more detail how to change the
1197 formatting of a document. 1053 formatting of a document.
1198 1054
1199 @ifinfo 1055 @ifinfo
1210 OS/2, etc.) 1066 OS/2, etc.)
1211 * Inlined images:: How to specify how Emacs-W3 1067 * Inlined images:: How to specify how Emacs-W3
1212 handles inlined images/mpegs. 1068 handles inlined images/mpegs.
1213 @end menu 1069 @end menu
1214 @end ifinfo 1070 @end ifinfo
1215 @node General Formatting, Character based terminals, Controlling Formatting, Controlling Formatting 1071 @node General Formatting, Character based terminals, Stylesheets, Stylesheets
1216 @section General formatting conventions 1072 @section General formatting conventions
1217 @iftex 1073 @iftex
1218 @heading Setting the fill column 1074 @heading Setting the fill column
1219 @end iftex 1075 @end iftex
1220 @ifinfo 1076 @ifinfo
1238 @center Formatting of directory listings 1094 @center Formatting of directory listings
1239 @center -------------------- 1095 @center --------------------
1240 @end ifinfo 1096 @end ifinfo
1241 @vindex url-use-hypertext-dired 1097 @vindex url-use-hypertext-dired
1242 When Emacs-W3 encounters a link to a directory (whether by local file access 1098 When Emacs-W3 encounters a link to a directory (whether by local file access
1243 or via FTP), it can either create an HTML document on the fly, or use 1099 or via @sc{ftp}), it can either create an @sc{html} document on the fly, or use
1244 @code{dired-mode} to peruse the listing. The variable 1100 @code{dired-mode} to peruse the listing. The variable
1245 @code{url-use-hypertext-dired} controls this behavior. 1101 @code{url-use-hypertext-dired} controls this behavior.
1246 1102
1247 If the value is @code{t}, Emacs-W3 uses @code{directory-files} to list them 1103 If the value is @code{t}, Emacs-W3 uses @code{directory-files} to list them
1248 out and transform the directory into a hypertext document, then pass it 1104 out and transform the directory into a hypertext document, then pass it
1263 @end ifinfo 1119 @end ifinfo
1264 @vindex w3-use-hypertext-gopher 1120 @vindex w3-use-hypertext-gopher
1265 @cindex Gopher+ 1121 @cindex Gopher+
1266 @cindex ASK blocks 1122 @cindex ASK blocks
1267 There are two different ways of viewing gopher links. The built-in 1123 There are two different ways of viewing gopher links. The built-in
1268 support that converts gopher directories into HTML, or the 1124 support that converts gopher directories into @sc{html}, or the
1269 @file{gopher.el} package by Scott Snyder (@i{snyder@@fnald0.fnal.gov}). 1125 @file{gopher.el} package by Scott Snyder (@i{snyder@@fnald0.fnal.gov}).
1270 The variable that controls this is @code{w3-use-hypertext-gopher}. If 1126 The variable that controls this is @code{w3-use-hypertext-gopher}. If
1271 set to @code{nil}, then @file{gopher.el} is used. Any other value 1127 set to @code{nil}, then @file{gopher.el} is used. Any other value
1272 causes Emacs-W3 to use its internal gopher support. If using 1128 causes Emacs-W3 to use its internal gopher support. If using
1273 @file{gopher.el}, all the hypertext capabilities of Emacs-W3 are lost. 1129 @file{gopher.el}, all the hypertext capabilities of Emacs-W3 are lost.
1290 @center -------------------- 1146 @center --------------------
1291 @center Creating a horizontal rule 1147 @center Creating a horizontal rule
1292 @center -------------------- 1148 @center --------------------
1293 @end ifinfo 1149 @end ifinfo
1294 @vindex w3-horizontal-rule-char 1150 @vindex w3-horizontal-rule-char
1295 Horizontal rules (@b{<HR>} tags in HTML[+]) are used to separate chunks 1151 Horizontal rules (@b{<HR>} tags in @sc{html}[+]) are used to separate chunks
1296 of a document, and is meant to be rendered as a solid line across the 1152 of a document, and is meant to be rendered as a solid line across the
1297 page. Some terminals display characters differently, so the variable 1153 page. Some terminals display characters differently, so the variable
1298 @code{w3-horizontal-rule-char} controls which character is used to draw 1154 @code{w3-horizontal-rule-char} controls which character is used to draw
1299 a horizontal bar. This variable must be the ASCII value of the 1155 a horizontal bar. This variable must be the ASCII value of the
1300 character, @b{not a string}. The variable is passed through 1156 character, @b{not a string}. The variable is passed through
1301 @code{make-string} whenever a horizontal rule of a certain width is 1157 @code{make-string} whenever a horizontal rule of a certain width is
1302 necessary. 1158 necessary.
1303 1159
1304 @node Character based terminals, Graphics workstations, General Formatting, Controlling Formatting 1160 @node Character based terminals, Graphics workstations, General Formatting, Stylesheets
1305 @section On character based terminals 1161 @section On character based terminals
1306 @vindex w3-delimit-emphasis 1162 @vindex w3-delimit-emphasis
1307 On character based terminals, there is no easy way to show that a 1163 On character based terminals, there is no easy way to show that a
1308 certain range of text is in bold or italics. If the variable 1164 certain range of text is in bold or italics. If the variable
1309 @code{w3-delimit-emphasis} is non-@code{nil}, then Emacs-W3 can insert 1165 @code{w3-delimit-emphasis} is non-@code{nil}, then Emacs-W3 can insert
1310 characters before and after character formatting commands in HTML 1166 characters before and after character formatting commands in @sc{html}
1311 documents. The defaul value of @code{w3-delimit-emphasis} is 1167 documents. The defaul value of @code{w3-delimit-emphasis} is
1312 automatically set based on the type of window system and version of 1168 automatically set based on the type of window system and version of
1313 Emacs being used. 1169 Emacs being used.
1314 1170
1315 @vindex w3-header-chars-assoc 1171 @vindex w3-header-chars-assoc
1319 @code{w3-header-chars-assoc} is an assoc list of header tags and a list 1175 @code{w3-header-chars-assoc} is an assoc list of header tags and a list
1320 of formatting instructions. The @code{car} of the list is the level of 1176 of formatting instructions. The @code{car} of the list is the level of
1321 the header (1--6). The rest of the list should contain three items. 1177 the header (1--6). The rest of the list should contain three items.
1322 The first item is text to insert before the header. The second item is 1178 The first item is text to insert before the header. The second item is
1323 text to insert after the header. Both should have reserved characters 1179 text to insert after the header. Both should have reserved characters
1324 converted to their HTML[+] entity definitions. The third item is a 1180 converted to their @sc{html}[+] entity definitions. The third item is a
1325 function to call on the area the header is in. This function is called 1181 function to call on the area the header is in. This function is called
1326 with arguments specifying the start and ending character positions of 1182 with arguments specifying the start and ending character positions of
1327 the header. The starting point is always first. To convert a region to 1183 the header. The starting point is always first. To convert a region to
1328 upper case, please use @code{w3-upcase-region} instead of 1184 upper case, please use @code{w3-upcase-region} instead of
1329 @code{upcase-region}, so that entities are converted properly. 1185 @code{upcase-region}, so that entities are converted properly.
1330 1186
1331 @node Graphics workstations, Inlined images, Character based terminals, Controlling Formatting 1187 @node Graphics workstations, Inlined images, Character based terminals, Stylesheets
1332 @section With graphics workstations 1188 @section With graphics workstations
1333 Starting with the first public release of version 2.3.0, all formatting 1189 Starting with the first public release of version 2.3.0, all formatting
1334 is controlled by the use of stylesheets. 1190 is controlled by the use of stylesheets.
1335 1191
1336 :: WORK :: Graphic workstation stuff - redo for stylesheets 1192 :: WORK :: Graphic workstation stuff - redo for stylesheets
1337 1193
1338 @node Inlined images, , Graphics workstations, Controlling Formatting 1194 @node Inlined images, , Graphics workstations, Stylesheets
1339 @cindex Inlined images 1195 @cindex Inlined images
1340 @cindex Images 1196 @cindex Images
1341 @cindex Movies 1197 @cindex Movies
1342 @cindex Inlined MPEGs 1198 @cindex Inlined MPEGs
1343 @cindex MPEGs 1199 @cindex MPEGs
1353 To do this, the @b{netpbm utilities}@footnote{Available via anonymous 1209 To do this, the @b{netpbm utilities}@footnote{Available via anonymous
1354 ftp from ftp.x.org:/R5contrib/netpbm-1mar1994.tar.gz, and most large ftp 1210 ftp from ftp.x.org:/R5contrib/netpbm-1mar1994.tar.gz, and most large ftp
1355 sites.} programs are normally used. This is a suite of freeware image 1211 sites.} programs are normally used. This is a suite of freeware image
1356 conversion tools. The variable @code{w3-graphic-converter-alist} 1212 conversion tools. The variable @code{w3-graphic-converter-alist}
1357 controls how each image type is converted. This is an assoc list, keyed 1213 controls how each image type is converted. This is an assoc list, keyed
1358 on the MIME content-type. The @code{car} is the content-type, and the 1214 on the @sc{mime} content-type. The @code{car} is the content-type, and
1359 @code{cdr} is a string suitable to pass to @code{format}. A %s in this 1215 the @code{cdr} is a string suitable to pass to @code{format}. A %s in
1360 string will be replaced with a converter from the ppm image format to an 1216 this string will be replaced with a converter from the ppm image format
1361 XPixmap (or XBitmap, if being run on a monochrome display). By default, 1217 to an XPixmap (or XBitmap, if being run on a monochrome display). By
1362 the Emacs-W3 browser has converters for: 1218 default, the Emacs-W3 browser has converters for:
1363 1219
1364 @enumerate 1220 @enumerate
1365 @item 1221 @item
1366 image/x-xbitmap 1222 image/x-xbitmap
1367 @item 1223 @item
1461 @code{w3-load-delayed-images}. Its counterpart for delayed movies is 1317 @code{w3-load-delayed-images}. Its counterpart for delayed movies is
1462 @code{w3-load-delayed-mpegs} 1318 @code{w3-load-delayed-mpegs}
1463 1319
1464 @node MIME Support, Adding MIME types based on file extensions, , Top 1320 @node MIME Support, Adding MIME types based on file extensions, , Top
1465 @chapter MIME Support 1321 @chapter MIME Support
1466 MIME is an emerging standard for multimedia mail. It offers a very 1322 @sc{mime} is an emerging standard for multimedia mail. It offers a very
1467 flexible typing mechanism. The type of a file or message is specified 1323 flexible typing mechanism. The type of a file or message is specified
1468 in two parts, separated by a '/'. The first part is the general 1324 in two parts, separated by a '/'. The first part is the general
1469 category of the data (text, application, image, etc.). The second part 1325 category of the data (text, application, image, etc.). The second part
1470 is the specific type of data (postscript, gif, jpeg, etc.). So 1326 is the specific type of data (postscript, gif, jpeg, etc.). So
1471 @samp{text/html} specifies an HTML document, whereas 1327 @samp{text/html} specifies an @sc{html} document, whereas
1472 @samp{image/x-xwindowdump} specifies an image of an Xwindow taken with 1328 @samp{image/x-xwindowdump} specifies an image of an Xwindow taken with
1473 the @file{xwd} program. 1329 the @file{xwd} program.
1474 1330
1475 1331
1476 This typing allows much more flexibility in naming files. HTTP/1.0 1332 This typing allows much more flexibility in naming files. @sc{http}/1.0
1477 servers can now send back content-type headers in response to a request, 1333 servers can now send back content-type headers in response to a request,
1478 and not have the client second-guess it based on file extensions. HTML 1334 and not have the client second-guess it based on file extensions. @sc{html}
1479 files can now be named @file{something.gif} (not a great idea, but 1335 files can now be named @file{something.gif} (not a great idea, but
1480 possible). 1336 possible).
1481 1337
1482 @ifinfo 1338 @ifinfo
1483 @menu 1339 @menu
1493 @node Adding MIME types based on file extensions, Specifying Viewers, MIME Support, MIME Support 1349 @node Adding MIME types based on file extensions, Specifying Viewers, MIME Support, MIME Support
1494 @section Adding MIME types based on file extensions 1350 @section Adding MIME types based on file extensions
1495 @vindex mm-mime-extensions 1351 @vindex mm-mime-extensions
1496 For some protocols however, it is still necessary to guess the content 1352 For some protocols however, it is still necessary to guess the content
1497 of a file based on the file extension. This type of guess-work should 1353 of a file based on the file extension. This type of guess-work should
1498 only be needed when accessing files via FTP, local file access, or old 1354 only be needed when accessing files via @sc{ftp}, local file access, or old
1499 HTTP/0.9 servers. 1355 @sc{http}/0.9 servers.
1500 1356
1501 Instead of specifying how to view things twice, once based on 1357 Instead of specifying how to view things twice, once based on
1502 content-type and once based on the file extension, it is easier to map 1358 content-type and once based on the file extension, it is easier to map
1503 file extensions to MIME content-types. The variable that controls this 1359 file extensions to MIME content-types. The variable that controls this
1504 is @code{mm-mime-extensions}. 1360 is @code{mm-mime-extensions}.
1510 files. If a content-type is defined for the document, then this is 1366 files. If a content-type is defined for the document, then this is
1511 over-ridden. Regular expressions can @b{NOT} be used. 1367 over-ridden. Regular expressions can @b{NOT} be used.
1512 1368
1513 @cindex mime-types file 1369 @cindex mime-types file
1514 @findex mm-parse-mimetypes 1370 @findex mm-parse-mimetypes
1515 Both Mosaic and the NCSA HTTP daemon rely on a separate file for mapping 1371 Both Mosaic and the NCSA @sc{http} daemon rely on a separate file for mapping
1516 file extensions to MIME types. Instead of having the users of Emacs-W3 1372 file extensions to MIME types. Instead of having the users of Emacs-W3
1517 duplicate this in lisp, this file can be parsed using the 1373 duplicate this in lisp, this file can be parsed using the
1518 @code{url-parse-mimetypes} function. This function is called each time 1374 @code{url-parse-mimetypes} function. This function is called each time
1519 w3 is loaded. It tries to locate mimetype files in several places. If 1375 w3 is loaded. It tries to locate mimetype files in several places. If
1520 the environment variable @code{MIMETYPES} is nonempty, then this is 1376 the environment variable @code{MIMETYPES} is nonempty, then this is
1533 @file{/usr/local/etc/mime-types} 1389 @file{/usr/local/etc/mime-types}
1534 @item 1390 @item
1535 @file{/usr/local/www/conf/mime-types} 1391 @file{/usr/local/www/conf/mime-types}
1536 @end enumerate 1392 @end enumerate
1537 1393
1538 Each line contains information for one http type. These types resemble 1394 Each line contains information for one @sc{http} type. These types resemble
1539 MIME types. To add new ones, use subtypes beginning with x-, such as 1395 MIME types. To add new ones, use subtypes beginning with x-, such as
1540 application/x-myprogram. Lines beginning with # are comment lines, and 1396 application/x-myprogram. Lines beginning with # are comment lines, and
1541 suitably ignored. Each line consists of: 1397 suitably ignored. Each line consists of:
1542 1398
1543 type/subtype ext1 ext2 ... ext@var{n} 1399 type/subtype ext1 ext2 ... ext@var{n}
1546 of space-separated filename extensions which correspond to the MIME 1402 of space-separated filename extensions which correspond to the MIME
1547 type. 1403 type.
1548 1404
1549 @node Specifying Viewers, ,Adding MIME types based on file extensions, MIME Support 1405 @node Specifying Viewers, ,Adding MIME types based on file extensions, MIME Support
1550 @section Specifying Viewers 1406 @section Specifying Viewers
1551 Not all files look as they should when parsed as an HTML document 1407 Not all files look as they should when parsed as an @sc{html} document
1552 (whitespace is stripped, paragraphs are reformatted, and lots of little 1408 (whitespace is stripped, paragraphs are reformatted, and lots of little
1553 changes that make the document look unrecognizable). Files may be 1409 changes that make the document look unrecognizable). Files may be
1554 passed to external programs or Emacs Lisp functions to be viewed. 1410 passed to external programs or Emacs Lisp functions to be viewed.
1555 1411
1556 Not all files can be viewed accurately from within an Emacs session (GIF 1412 Not all files can be viewed accurately from within an Emacs session (GIF
1560 1416
1561 @findex mm-add-mailcap-entry 1417 @findex mm-add-mailcap-entry
1562 As an alternative, the function @code{mm-add-mailcap-entry} can also be 1418 As an alternative, the function @code{mm-add-mailcap-entry} can also be
1563 used from an appropriate hook.@xref{Hooks} This functions takes three 1419 used from an appropriate hook.@xref{Hooks} This functions takes three
1564 arguments, the major type ("@i{image}"), the minor type ("@i{gif}"), and 1420 arguments, the major type ("@i{image}"), the minor type ("@i{gif}"), and
1565 an assoc list of information about the viewer. Please see the URL 1421 an assoc list of information about the viewer. Please see the @sc{url}
1566 documentation for more specific information on what this assoc list 1422 documentation for more specific information on what this assoc list
1567 should look like. 1423 should look like.
1568 1424
1569 @node Security, Non-Unix Operating Systems, , Top 1425 @node Security, Non-Unix Operating Systems, , Top
1570 @chapter Security 1426 @chapter Security
1599 @cindex Gag Puke Retch 1455 @cindex Gag Puke Retch
1600 @cindex Exportability 1456 @cindex Exportability
1601 @cindex Export Restrictions 1457 @cindex Export Restrictions
1602 SSL is the @code{Secure Sockets Layer} interface developed by Netscape 1458 SSL is the @code{Secure Sockets Layer} interface developed by Netscape
1603 Communications @footnote{http://www.netscape.com/}. Emacs-W3 supports 1459 Communications @footnote{http://www.netscape.com/}. Emacs-W3 supports
1604 HTTP transfers over an SSL encrypted channel, if the appropriate files 1460 @sc{http} transfers over an SSL encrypted channel, if the appropriate files
1605 have been installed.@xref{Installing SSL} 1461 have been installed.@xref{Installing SSL}
1606 @item PGP/PEM
1607 @cindex HTTP/1.0 Authentication
1608 @cindex Public Key Cryptography
1609 @cindex Authentication, PGP
1610 @cindex Authentication, PEM
1611 @cindex RIPEM
1612 @cindex Public Key Cryptography
1613 @cindex PGP
1614 @cindex Pretty Good Privacy
1615 @cindex Encryption
1616 @cindex Security
1617 @cindex ITAR must die
1618 @cindex Stupid export restrictions
1619 @cindex Support your local crypto-anarchist
1620 @cindex NSA freaks
1621 A few servers still support this method of authentication, but it has
1622 been superseded by SSL and Secure-HTTP.@xref{Using PGP/PEM}
1623 @end table 1462 @end table
1624 1463
1625 @node Non-Unix Operating Systems, VMS, Security, Top 1464 @node Non-Unix Operating Systems, VMS, Security, Top
1626 @chapter Non-Unix Operating Systems 1465 @chapter Non-Unix Operating Systems
1627 @cindex Non-Unix Operating Systems 1466 @cindex Non-Unix Operating Systems
1628 @ifinfo 1467 @ifinfo
1629 @menu 1468 @menu
1630 * VMS:: The wonderful world of VAX|AXP-VMS! 1469 * VMS:: The wonderful world of VAX|AXP-VMS!
1631 * OS/2:: The next-best thing to Unix. 1470 * OS/2:: The next-best thing to Unix.
1632 * MS-DOS:: The wonderful world of MS-DOG! 1471 * MS-DOS:: The wonderful world of MS-DOG!
1633 * 32-Bit Windows:: Windows NT, Chicago/Windows 95. 1472 * Windows:: Windows NT, Chicago/Windows 95.
1634 * Amiga:: The Amiga, for those who still love them.
1635 @end menu 1473 @end menu
1636 @end ifinfo 1474 @end ifinfo
1637 1475
1638 @node VMS, OS/2, Non-Unix Operating Systems, Non-Unix Operating Systems 1476 @node VMS, OS/2, Non-Unix Operating Systems, Non-Unix Operating Systems
1639 @section VMS 1477 @section VMS
1647 @section OS/2 1485 @section OS/2
1648 @cindex OS/2 1486 @cindex OS/2
1649 @cindex Warp 1487 @cindex Warp
1650 :: WORK :: OS/2 Specific instructions 1488 :: WORK :: OS/2 Specific instructions
1651 1489
1652 @node MS-DOS, 32-Bit Windows, OS/2, Non-Unix Operating Systems 1490 @node MS-DOS, Windows, OS/2, Non-Unix Operating Systems
1653 @section MS-DOS 1491 @section MS-DOS
1654 @cindex MS-DOS 1492 @cindex MS-DOS
1655 @cindex Microsloth 1493 @cindex Microsloth
1656 @cindex DOS 1494 @cindex DOS
1657 @cindex MS-DOG 1495 @cindex MS-DOG
1658 :: WORK :: DOS Specific instructions 1496 :: WORK :: DOS Specific instructions
1659 1497
1660 @node 32-Bit Windows, Amiga, MS-DOS, Non-Unix Operating Systems 1498 @node Windows, Speech Integration , MS-DOS, Non-Unix Operating Systems
1661 @section 32-Bit Windows 1499 @section Windows
1662 @cindex Windows (32-Bit) 1500 @cindex Windows (32-Bit)
1663 @cindex 32-Bit Windows 1501 @cindex 32-Bit Windows
1664 @cindex Microsloth 1502 @cindex Microsloth
1665 @cindex Windows '95 1503 @cindex Windows '95
1666 :: WORK :: 32bit Windows Specific instructions 1504 :: WORK :: 32bit Windows Specific instructions
1667 1505
1668 @node Amiga, Advanced Features, 32-Bit Windows, Non-Unix Operating Systems 1506 @node Speech Integration, Advanced Features, Windows, Top
1669 @section Amiga 1507 @chapter Speech Integration
1670 @cindex Amiga 1508 :: WORK :: Emacspeak integration
1671 @cindex Commodore 1509
1672 :: WORK :: Amiga specific instructions 1510 @node Advanced Features, Style Sheets, Speech Integration, Top
1673
1674 @node Advanced Features, Style Sheets, Amiga, Top
1675 @chapter Advanced Features 1511 @chapter Advanced Features
1676 1512
1677 @ifinfo 1513 @ifinfo
1678 @menu 1514 @menu
1679 * Style Sheets:: Formatting control, the right way 1515 * Style Sheets:: Formatting control, the right way
1680 * Disk Caching:: Improving performance by using a local disk cache 1516 * Disk Caching:: Improving performance by using a local disk cache
1681 * Interfacing to Mail/News:: How to make VM understand hypertext links 1517 * Interfacing to Mail/News:: How to make VM understand hypertext links
1682 * Debugging HTML:: How to make Emacs-W3 display warnings about invalid 1518 * Debugging HTML:: How to make Emacs-W3 display warnings about invalid
1683 HTML/HTML+ constructs. 1519 @sc{html}/@sc{html}+ constructs.
1684 * Native WAIS Support:: How to make Emacs-W3 understand WAIS links without 1520 * Native WAIS Support:: How to make Emacs-W3 understand WAIS links without
1685 using a gateway. 1521 using a gateway.
1686 * Rating Links:: How to make Emacs-W3 put an 'interestingness' value 1522 * Rating Links:: How to make Emacs-W3 put an 'interestingness' value
1687 next to each link. 1523 next to each link.
1688 * Gopher Plus Support:: How Emacs-W3 makes use of the Gopher+ protocol. 1524 * Gopher Plus Support:: How Emacs-W3 makes use of the Gopher+ protocol.
1728 1564
1729 @cindex <style> 1565 @cindex <style>
1730 To include a stylesheet into a document, simply use the <style> tag. 1566 To include a stylesheet into a document, simply use the <style> tag.
1731 Use the @b{notation} attribute to specify what language the stylesheet 1567 Use the @b{notation} attribute to specify what language the stylesheet
1732 is specified in. The default is @b{css}. The data between the <style> 1568 is specified in. The default is @b{css}. The data between the <style>
1733 and </style> tags is the stylsheet proper - no HTML parsing is done to 1569 and </style> tags is the stylsheet proper - no @sc{html} parsing is done to
1734 this data - it is treated similar to an <XMP> section of text. To 1570 this data - it is treated similar to an <XMP> section of text. To
1735 reference an external stylesheet, use the <link> tag. 1571 reference an external stylesheet, use the <link> tag.
1736 @example 1572 @example
1737 <link rel="stylesheet" href="/bill.style"> 1573 <link rel="stylesheet" href="/bill.style">
1738 @end example 1574 @end example
1739 If these two mechanisms are mixed, then the URL is resolved first, and 1575 If these two mechanisms are mixed, then the @sc{url} is resolved first, and
1740 the contents of the <style> tag take precedence if there are any 1576 the contents of the <style> tag take precedence if there are any
1741 conflicting directives. 1577 conflicting directives.
1742 1578
1743 @cindex DSSSL 1579 @cindex DSSSL
1744 @cindex DSSSL-lite 1580 @cindex DSSSL-lite
1802 @cindex Caching options 1638 @cindex Caching options
1803 @cindex Alternate caching method 1639 @cindex Alternate caching method
1804 Emacs-W3 caches files under the temporary directory specified by 1640 Emacs-W3 caches files under the temporary directory specified by
1805 @code{url-temporary-directory}, in a user-specific subdirectory 1641 @code{url-temporary-directory}, in a user-specific subdirectory
1806 (determined by the @code{user-real-login-name} function). The cache 1642 (determined by the @code{user-real-login-name} function). The cache
1807 files are stored under their original names, so a URL like: 1643 files are stored under their original names, so a @sc{url} like:
1808 http://www.aventail.com/foo/bar/baz.html would be stored in a cache file 1644 http://www.aventail.com/foo/bar/baz.html would be stored in a cache file
1809 named: /tmp/wmperry/com/aventail/www/foo/bar/baz.html. Sometimes, 1645 named: /tmp/wmperry/com/aventail/www/foo/bar/baz.html. Sometimes,
1810 espcially with gopher links, there will be name conflicts, and an error 1646 espcially with gopher links, there will be name conflicts, and an error
1811 will be signalled. This cannot be avoided, and still have reasonable 1647 will be signalled. This cannot be avoided, and still have reasonable
1812 performance at startup time (reading in an index file of all the cached 1648 performance at startup time (reading in an index file of all the cached
1836 @cindex Using Emacs-W3 with VM 1672 @cindex Using Emacs-W3 with VM
1837 @cindex GNUS 1673 @cindex GNUS
1838 @cindex Using Emacs-W3 with Gnus 1674 @cindex Using Emacs-W3 with Gnus
1839 @cindex RMAIL 1675 @cindex RMAIL
1840 @cindex Using Emacs-W3 with RMAIL 1676 @cindex Using Emacs-W3 with RMAIL
1841 More and more people are including URLs in their signatures, and within 1677 More and more people are including @sc{url}s in their signatures, and within
1842 the body of mail messages. It can get quite tedious to type these into 1678 the body of mail messages. It can get quite tedious to type these into
1843 the minibuffer to follow one. 1679 the minibuffer to follow one.
1844 1680
1845 @vindex browse-url-browser-function 1681 @vindex browse-url-browser-function
1846 With the latest versions of VM (the 5.9x series of betas) and Gnus 1682 With the latest versions of VM (the 5.9x series of betas) and Gnus
1847 (5.x), URLs are automatically highlighted, and can be followed with the 1683 (5.x), @sc{url}s are automatically highlighted, and can be followed with the
1848 mouse or the return key. How the URLs are viewed is determined by the 1684 mouse or the return key. How the @sc{url}s are viewed is determined by the
1849 variable @code{browse-url-browser-function}, and it should be set to the 1685 variable @code{browse-url-browser-function}, and it should be set to the
1850 symbol @code{browse-url-w3}. 1686 symbol @code{browse-url-w3}.
1851 1687
1852 To access URLs from within RMAIL, the following hook should do the 1688 To access @sc{url}s from within RMAIL, the following hook should do the
1853 trick. 1689 trick.
1854 @example 1690 @example
1855 (add-hook 'rmail-mode-hook 1691 (add-hook 'rmail-mode-hook
1856 (function 1692 (function
1857 (lambda () 1693 (lambda ()
1865 @cindex Invalid HTML 1701 @cindex Invalid HTML
1866 @cindex Bad HTML 1702 @cindex Bad HTML
1867 @vindex w3-debug-buffer 1703 @vindex w3-debug-buffer
1868 @vindex w3-debug-html 1704 @vindex w3-debug-html
1869 For those people that are adventurous, or are just as anal as I am about 1705 For those people that are adventurous, or are just as anal as I am about
1870 people writing valid HTML, set the variable @code{w3-debug-html} to 1706 people writing valid @sc{html}, set the variable @code{w3-debug-html} to
1871 @code{t} and see what happens. 1707 @code{t} and see what happens.
1872 1708
1873 1709
1874 If a Emacs-W3 thinks it has encountered invalid HTML, then a debugging 1710 If a Emacs-W3 thinks it has encountered invalid @sc{html}, then a debugging
1875 message is displayed. 1711 message is displayed.
1876 1712
1877 :: WORK :: Need to list the different values w3-debug-html can have, and 1713 :: WORK :: Need to list the different values w3-debug-html can have, and
1878 :: WORK :: what they do :: 1714 :: WORK :: what they do ::
1879 1715
1890 @vindex url-wais-gateway-port 1726 @vindex url-wais-gateway-port
1891 The variable @code{url-waisq-prog} must point to this executable, and 1727 The variable @code{url-waisq-prog} must point to this executable, and
1892 one of @code{url-wais-gateway-server} or @code{url-wais-gateway-port} 1728 one of @code{url-wais-gateway-server} or @code{url-wais-gateway-port}
1893 should be @code{nil}. 1729 should be @code{nil}.
1894 1730
1895 When a WAIS URL is encountered, a form will be automatically generated 1731 When a WAIS @sc{url} is encountered, a form will be automatically generated
1896 and displayed. After typing in the search term, the query will be sent 1732 and displayed. After typing in the search term, the query will be sent
1897 to the server by running the @code{url-waisq-prog} in a subprocess. The 1733 to the server by running the @code{url-waisq-prog} in a subprocess. The
1898 results will be converted into HTML and displayed. 1734 results will be converted into @sc{html} and displayed.
1899 1735
1900 @node Rating Links, Gopher Plus Support, Native WAIS Support, Advanced Features 1736 @node Rating Links, Gopher Plus Support, Native WAIS Support, Advanced Features
1901 @section Rating Links 1737 @section Rating Links
1902 The @code{w3-link-info-display-function} variable can be used to 'rate' a URL 1738 The @code{w3-link-info-display-function} variable can be used to 'rate' a @sc{url}
1903 when it shows up in an HTML page. If non-@code{nil}, then this should 1739 when it shows up in an @sc{html} page. If non-@code{nil}, then this should
1904 be a list specifying (or a symbol specifying the name) of a function. 1740 be a list specifying (or a symbol specifying the name) of a function.
1905 This function should expect one argument, a fully specified URL, and 1741 This function should expect one argument, a fully specified @sc{url}, and
1906 should return a string. This string is inserted after the link 1742 should return a string. This string is inserted after the link
1907 text. 1743 text.
1908 1744
1909 If a user has decided that all links served from blort.com are too laden 1745 If a user has decided that all links served from blort.com are too laden
1910 with images, and wants to be warned that a link points at this host, 1746 with images, and wants to be warned that a link points at this host,
1923 1759
1924 @node Gopher Plus Support, Hooks, Rating Links, Advanced Features 1760 @node Gopher Plus Support, Hooks, Rating Links, Advanced Features
1925 @section Gopher+ Support 1761 @section Gopher+ Support
1926 @cindex Gopher+ 1762 @cindex Gopher+
1927 The gopher+ support in Emacs-W3 is limited to the conversion of ASK 1763 The gopher+ support in Emacs-W3 is limited to the conversion of ASK
1928 blocks into HTML 3.0 forms, and the usage of the content-length given by 1764 blocks into @sc{html} 3.0 forms, and the usage of the content-length given by
1929 the gopher+ server to give a nice status bar on the bottom of the 1765 the gopher+ server to give a nice status bar on the bottom of the
1930 screen. 1766 screen.
1931 1767
1932 This will hopefully be extended to include the Gopher+ method of 1768 This will hopefully be extended to include the Gopher+ method of
1933 content-type negotiation, but this may be a while. 1769 content-type negotiation, but this may be a while.
1941 of functions) that are called consecutively. 1777 of functions) that are called consecutively.
1942 1778
1943 @table @code 1779 @table @code
1944 @vindex w3-load-hooks 1780 @vindex w3-load-hooks
1945 @item w3-load-hooks 1781 @item w3-load-hooks
1946 These hooks are run by @code{w3-do-setup} the first time a URL is 1782 These hooks are run by @code{w3-do-setup} the first time a @sc{url} is
1947 fetched. All the w3 variables are initialized before this hook is 1783 fetched. All the w3 variables are initialized before this hook is
1948 run. 1784 run.
1949 @item w3-file-done-hooks 1785 @item w3-file-done-hooks
1950 These hooks are run by @code{w3-prepare-buffer} after all parsing on a 1786 These hooks are run by @code{w3-prepare-buffer} after all parsing on a
1951 document has been done. All @code{url-current-}@var{*} and 1787 document has been done. All @code{url-current-}@var{*} and
1952 @code{w3-current-}@var{*} variables are initialized when this hook is run. 1788 @code{w3-current-}@var{*} variables are initialized when this hook is run.
1953 This is run before the buffer is shown, and before any inlined images 1789 This is run before the buffer is shown, and before any inlined images
1954 are downloaded and converted. 1790 are downloaded and converted.
1955 @item w3-file-prepare-hooks 1791 @item w3-file-prepare-hooks
1956 These hooks are run by @code{w3-prepare-buffer} before any parsing is 1792 These hooks are run by @code{w3-prepare-buffer} before any parsing is
1957 done on the HTML file. The HTTP/1.0 headers specified by 1793 done on the @sc{html} file. The @sc{http}/1.0 headers specified by
1958 @code{w3-show-headers} have been inserted, the syntax table has been set 1794 @code{w3-show-headers} have been inserted, and the syntax table has been
1959 to @code{w3-parse-args-syntax-table}, and any personal annotations have 1795 set to @code{w3-parse-args-syntax-table} by the time this hook is run.
1960 been inserted by the time this hook is run.
1961 @item w3-mode-hooks 1796 @item w3-mode-hooks
1962 These hooks are run after a buffer has been parsed and displayed, but 1797 These hooks are run after a buffer has been parsed and displayed, but
1963 before any inlined images are downloaded and converted. 1798 before any inlined images are downloaded and converted.
1964 @item w3-source-file-hooks 1799 @item w3-source-file-hooks
1965 These hooks are run after displaying a document's source 1800 These hooks are run after displaying a document's source
1972 1807
1973 @table @code 1808 @table @code
1974 @item url-bad-port-list 1809 @item url-bad-port-list
1975 @vindex url-bad-port-list 1810 @vindex url-bad-port-list
1976 List of ports to warn the user about connecting to. Defaults to just 1811 List of ports to warn the user about connecting to. Defaults to just
1977 the mail and NNTP ports so a malicious HTML author cannot spoof mail or 1812 the mail and @sc{nntp} ports so a malicious @sc{html} author cannot spoof mail or
1978 news to other people. 1813 news to other people.
1979 @item url-confirmation-func 1814 @item url-confirmation-func
1980 @vindex url-confirmation-func 1815 @vindex url-confirmation-func
1981 What function to use for asking yes or no functions. Possible values 1816 What function to use for asking yes or no functions. Possible values
1982 are @code{'yes-or-no-p} or @code{'y-or-n-p}, or any function that takes 1817 are @code{'yes-or-no-p} or @code{'y-or-n-p}, or any function that takes
2025 @code{yes} means assume the user wants to always reuse the buffer. A 1860 @code{yes} means assume the user wants to always reuse the buffer. A
2026 value of @code{no} means assume the user always wants to re-fetch the 1861 value of @code{no} means assume the user always wants to re-fetch the
2027 document. 1862 document.
2028 @item w3-show-headers 1863 @item w3-show-headers
2029 @vindex w3-show-headers 1864 @vindex w3-show-headers
2030 This is a list of HTTP/1.0 headers to show at the end of a buffer. All 1865 This is a list of @sc{http}/1.0 headers to show at the end of a buffer. All
2031 the headers should be in lowercase. They are inserted at the end of the 1866 the headers should be in lowercase. They are inserted at the end of the
2032 buffer in a <UL> list. Alternatively, if this is simply @code{t}, then 1867 buffer in a <UL> list. Alternatively, if this is simply @code{t}, then
2033 all the HTTP/1.0 headers are shown. The default value is 1868 all the @sc{http}/1.0 headers are shown. The default value is
2034 @code{nil}. 1869 @code{nil}.
2035 @item w3-show-status, url-show-status 1870 @item w3-show-status, url-show-status
2036 @vindex url-show-status 1871 @vindex url-show-status
2037 @vindex w3-show-status 1872 @vindex w3-show-status
2038 Whether to show progress messages in the minibuffer. 1873 Whether to show progress messages in the minibuffer.
2061 binary, x-compress, x-hqx, and quoted-printable. 1896 binary, x-compress, x-hqx, and quoted-printable.
2062 @item url-uncompressor-alist 1897 @item url-uncompressor-alist
2063 @vindex url-uncompressor-alist 1898 @vindex url-uncompressor-alist
2064 An assoc list of file extensions and the appropriate uncompression 1899 An assoc list of file extensions and the appropriate uncompression
2065 programs for each. This is used to build the Accept-encoding header for 1900 programs for each. This is used to build the Accept-encoding header for
2066 HTTP/1.0 requests. 1901 @sc{http}/1.0 requests.
2067 @item url-waisq-prog 1902 @item url-waisq-prog
2068 @vindex url-waisq-prog 1903 @vindex url-waisq-prog
2069 Name of the waisq executable on this system. This should be the 1904 Name of the waisq executable on this system. This should be the
2070 @file{waisq} program from think.com's wais8-b5.1 distribution. 1905 @file{waisq} program from think.com's wais8-b5.1 distribution.
2071 @end table 1906 @end table
2131 @appendix Reporting Bugs 1966 @appendix Reporting Bugs
2132 @cindex Reporting Bugs 1967 @cindex Reporting Bugs
2133 @cindex Bugs 1968 @cindex Bugs
2134 @cindex Contacting the author 1969 @cindex Contacting the author
2135 1970
2136 :: WORK :: Reporting bugs needs work. 1971 If any bugs are discovered in Emacs-W3, please report them to the
2137 1972 mailing list @t{w3-beta@@indiana.edu} - this is where the brave souls
2138 @node Installing SSL, Using PGP/PEM, Reporting Bugs, Top 1973 who beta test the latest versions of Emacs-W3 reside, and are generally
1974 very responsive to bug reports.
1975
1976 @kindex w
1977 Please make sure to use the bug submission feature of Emacs-W3, so that
1978 all relevant information will be sent along with your bug report. By
1979 default this is bound to the `@key{w}' key when in an Emacs-W3 buffer,
1980 or you can use @key{M-x w3-submit-bug} from anywhere within Emacs.
1981
1982 For problems that are causing emacs to signal and error, please send a
1983 backtrace. You can get a backtrace by @kbd{M-x setvariable RET
1984 debug-on-error RET t RET}, and then reproduce the error.
1985
1986 If the problem is visual, please capture a copy of the output and mail
1987 it along with the bug report (preferably as a MIME attachment, but
1988 anything will do). You can use the @code{xwd} program under X-windows
1989 for this, or @key{Alt-PrintScreen} under Windows 95/NT. Sorry, but I
1990 don't remember what the magic incarnation is for doing a screen dump
1991 under NeXTstep or OS/2.
1992
1993 If the problem is actually causing Emacs to crash, then you will need to
1994 also mail the maintainers of the various Emacs distributions with the
1995 bug. Please use the @t{gnu.emacs.bug} newgroup for reporting bugs with
1996 GNU Emacs 19, and @t{comp.emacs.xemacs} for reporting bugs with XEmacs
1997 19 or XEmacs 20. I am actively involved with the beta testing of the
1998 latest versions of both branches of Emacs, and if I can reproduce the
1999 problem, I will do my best to see it gets fixed in the next release.
2000
2001 It is also important to always maintain as much context as possible in
2002 your responses. I get so much email from my various Emacs-activities
2003 and work, that I cannot remember everything. If you send a bug report,
2004 and I send you a reply, and you reply with 'no that didn't work', then
2005 odds are I will have no clue what didn't work, much less what that was
2006 trying to fix in the first place. It will be much quicker and less
2007 painful if I don't have to waste a round-trip email exchange saying
2008 'what are you talking about'.
2009
2010 @node Installing SSL, Mailcap Files, Reporting Bugs, Top
2139 @appendix Installing SSL 2011 @appendix Installing SSL
2140 @cindex HTTP/1.0 Authentication 2012 @cindex HTTP/1.0 Authentication
2141 @cindex Secure Sockets Layer 2013 @cindex Secure Sockets Layer
2142 @cindex SSL 2014 @cindex SSL
2143 @cindex Gag Puke Retch 2015 @cindex Gag Puke Retch
2169 2041
2170 This should be all the configuration necessary. In the future, I will 2042 This should be all the configuration necessary. In the future, I will
2171 be distributing a set of patches to Emacs 19.xx and XEmacs 19.xx to 2043 be distributing a set of patches to Emacs 19.xx and XEmacs 19.xx to
2172 SSL-enable them, for the sake of speed. 2044 SSL-enable them, for the sake of speed.
2173 2045
2174 @node Using PGP/PEM, Mailcap Files, Installing SSL, Top 2046 @node Mailcap Files, General Index, Installing SSL, Top
2175 @appendix Using PGP/PEM
2176 @cindex HTTP/1.0 Authentication
2177 @cindex Public Key Cryptography
2178 @cindex Authentication, PGP
2179 @cindex Authentication, PEM
2180 @cindex RIPEM
2181 @cindex Public Key Cryptography
2182 @cindex PGP
2183 @cindex Pretty Good Privacy
2184 @cindex Encryption
2185 @cindex Security
2186 @cindex ITAR must die
2187 @cindex Stupid export restrictions
2188 @cindex Support your local crypto-anarchist
2189 @cindex NSA freaks
2190 Most of this chapter has been reproduced from the original documentation
2191 written by Rob McCool (@i{robm@@netscape.com})@footnote{See
2192 http://hoohoo.ncsa.uiuc.edu/docs/PEMPGP.html for the original}.
2193
2194 RIPEM is 'Riordan's Internet Privacy Enhanced Mail', and is currently on
2195 version 1.2b3. US citizens can ftp it from
2196 ftp://ripem.msu.edu/pub/crypt/ripem.
2197
2198 PGP is 'Pretty Good Privacy', and is currently on version 2.6. The
2199 legal controversies that plagued earlier versions have been resolved, so
2200 this is a competely legal program now. There is also a legal version
2201 for european users, called 2.6ui (the Unofficial International
2202 version).
2203
2204 PGP and PEM are programs that allow two parties to communicate in a way
2205 which does not allow third parties to read them, and which certify that
2206 the person who sent the message is really who they claim they are.
2207
2208
2209 PGP and PEM both use RSA encryption. The U.S. government has strict
2210 export controls over foreign use of this technology, so people outside
2211 the U.S. may have a difficult time finding programs which perform the
2212 encryption.
2213
2214 A working copy of either Pretty Good Privacy or RIPEM is required. You
2215 should be familiar with the program and have generated a public/private
2216 key pair.
2217
2218
2219 Currently, the protocol has been implemented with PEM and PGP using
2220 local key files on the server side, and on the client side with PEM
2221 using finger to retrieve the server's public key.
2222
2223 Parties who wish to use Emacs-W3 with PEM or PGP encryption will need to
2224 communicate beforehand and find a tamper-proof way to exchange their
2225 public keys.
2226
2227 Pioneers get shot full of arrows. This work is currently in the
2228 experimental stages and thus may have some problems that I have
2229 overlooked. The only known problem that I know about is that the
2230 messages are currently not timestamped. This means that a malicious
2231 user could record the encrypted message with a packet sniffer and repeat
2232 it back to the server ad nauseum. Although they would not be able to
2233 read the reply, if the request was for something being charged for, this
2234 could be very inconvenient.
2235
2236 This protocol is almost word-for-word a copy of Tony Sander's RIPEM
2237 based scheme, generalized a little. Below, wherever PEM is used,
2238 replace it with PGP, and the behaviour should remain the same.
2239
2240 @example
2241 *Client:*
2242
2243 GET /docs/protected.html HTTP/1.0
2244 UserAgent: Emacs-W3/2.1.x
2245
2246 *Server:*
2247
2248 HTTP/1.0 401 Unauthorized
2249 WWW-Authenticate: PEM entity="webmaster@@hoohoo.ncsa.uiuc.edu"
2250 Server: NCSA/1.1
2251
2252 *Client:*
2253
2254 GET / HTTP/1.0
2255 Authorization: PEM entity="robm@@ncsa.uiuc.edu"
2256 Content-type: application/x-www-pem-request
2257
2258 --- BEGIN PRIVACY-ENHANCED MESSAGE ---
2259 this is the real request, encrypted
2260 --- END PRIVACY-ENHANCED MESSAGE ---
2261
2262 *Server:*
2263
2264 HTTP/1.0 200 OK
2265 Content-type: application/x-www-pem-reply
2266
2267 --- BEGIN PRIVACY-ENHANCED MESSAGE ---
2268 this is the real reply, encrypted
2269 --- END PRIVACY-ENHANCED MESSAGE ---
2270 That's it.
2271 @end example
2272
2273 @cindex Mailcrypt
2274 Emacs-W3 uses the excellent @i{mailcrypt}@footnote{Available from
2275 http://www.cs.indiana.edu/LCD/cover.html?mailcrypt} package written by
2276 Jin S Choi (@i{jsc@@mit.edu}). This package takes care of calling ripem
2277 and/or pgp with the correct arguments. Please see the documentation at
2278 the top of mailcrypt.el for instructions on using mailcrypt. All bug
2279 reports about mailcrypt should go to Jin S Choi, but bugs about how I
2280 use it in Emacs-W3 should of course be directed to me.
2281
2282 @node Mailcap Files, General Index, Using PGP/PEM, Top
2283 @appendix Mailcap Files 2047 @appendix Mailcap Files
2284 NCSA Mosaic and almost all other WWW browsers rely on a separate file 2048 NCSA Mosaic and almost all other WWW browsers rely on a separate file
2285 for mapping MIME types to external viewing programs. This takes some of 2049 for mapping MIME types to external viewing programs. This takes some of
2286 the burden off of browser developers, so each browser does not have to 2050 the burden off of browser developers, so each browser does not have to
2287 support all image formats, or postscript, etc. Instead of having the 2051 support all image formats, or postscript, etc. Instead of having the
2419 @node Key Index, , General Index, Top 2183 @node Key Index, , General Index, Top
2420 @appendix Key Index 2184 @appendix Key Index
2421 @printindex ky 2185 @printindex ky
2422 @contents 2186 @contents
2423 @bye 2187 @bye
2188
2189 @c @ifinfo
2190 @c Here is some more specific information about what languages and
2191 @c protocols Emacs-W3 supports.
2192 @c @menu
2193 @c * Markup Languages Supported:: Markup languages supported by Emacs-W3
2194 @c * Stylesheets:: Stylesheet languages supported by Emacs-W3
2195 @c * Supported Protocols:: Network protocols supported by Emacs-W3
2196 @c @end menu
2197 @c @end ifinfo
2198 @c @node Markup Languages Supported, Stylesheets, Introduction, Introduction
2199 @c @chapter Supported Markup Languages
2200 @c Several different markup languages, and various extensions to those
2201 @c languages, are supported by Emacs-W3.
2202 @c @ifinfo
2203 @c @center ----------
2204 @c @center HTML 2.0
2205 @c @center ----------
2206 @c @end ifinfo
2207 @c @iftex
2208 @c @section HTML 2.0
2209 @c @end iftex
2210 @c @cindex HTML 2.0
2211
2212 @c :: WORK :: Reference to the HTML 2.0 RFC
2213 @c :: WORK :: Basic explanation of HTML, tag structure, etc.
2214
2215 @c @ifinfo
2216 @c @center ----------
2217 @c @center HTML 3.2
2218 @c @center ----------
2219 @c @end ifinfo
2220 @c @iftex
2221 @c @section HTML 3.2
2222 @c @end iftex
2223 @c @cindex HTML 3.2
2224 @c The HTML 3.2 language is an extension of HTML, with a large degree of
2225 @c backward compatibility with HTML 2.0. This basically documents current
2226 @c practice as of January, 1996.
2227
2228 @c @ifinfo
2229 @c @center ----------
2230 @c @center SGML Features
2231 @c @center ----------
2232 @c @end ifinfo
2233 @c @iftex
2234 @c @section SGML Features
2235 @c @end iftex
2236 @c @cindex SGML Features
2237 @c @cindex Entity Definitions
2238 @c @cindex Marked Sections
2239
2240 @c :: WORK :: Document marked sections, SGML features
2241
2242 @c @ifinfo
2243 @c @center ----------
2244 @c @center Extras
2245 @c @center ----------
2246 @c @end ifinfo
2247 @c @iftex
2248 @c @section Extra Markup
2249 @c @end iftex
2250 @c @cindex Easter Eggs
2251 @c @cindex Fluff
2252 @c @cindex Pomp & Circumstance
2253 @c There are several different markup elements that are not officially part
2254 @c of HTML or HTML 3.2 that Emacs-W3 supports. These are either items that
2255 @c were dropped from HTML 3.@var{x} after I had implemented them, things I
2256 @c find just completely hilarious, or experimental parts of HTML that
2257 @c should not be counted as "official" or long lived.
2258 @c @itemize @bullet
2259 @c @item
2260 @c FLAME support. For truly interesting dynamic documents. This is
2261 @c replaced with a random quote from Mr. Angry (see @kbd{M-x flame} for a
2262 @c sample).
2263 @c @item
2264 @c The top ten tags that did not make it into netscape. These tags were
2265 @c posted to the newsgroup comp.infosystems.www.misc by Laura Lemay
2266 @c (@i{lemay@@netcom.com}). Much thanks to her for the humor.
2267 @c @table @b
2268 @c @item <wired>...</wired>
2269 @c Renders the enclosed text in a suitably ugly font/color combination. If
2270 @c no default has been set up by the user, this is the default font, with
2271 @c red text on a yellow background.
2272 @c @item <roach>...</roach>
2273 @c When selected, the enclosed text runs and hides under the nearest
2274 @c window. OR, giggles a lot and demands nachos, depending on the
2275 @c definition of "roach." (the formal definition, of course, to be
2276 @c determined by the Official Honorary Internet Standards Committee For
2277 @c Moving Really Slowly.)
2278 @c @item <pinhead>
2279 @c Inserts "zippyisms" into the enclosed text. Perfect for those professional
2280 @c documents. This is sure to be a favorite of mine!
2281 @c @item <secret>...</secret>
2282 @c Must use secret spy decoder glasses (available direct from Netscape for
2283 @c a reasonable fee) in order to read the enclosed text. Can also be read
2284 @c by holding the computer in front of a full moon during the autumn
2285 @c solstice.
2286
2287 @c In Emacs-W3, this displays the text using rot13 encoding.
2288 @c @item <hype>
2289 @c Causes Marc Andreesen to magically appear and grant an interview (wanted
2290 @c or not). Please use this tag sparingly.
2291 @c @item <peek>....</peek>
2292 @c @item <poke>...</poke>
2293 @c Need more control over screen layout in HTML? Well, here ya go.
2294 @c n
2295 @c Actually, <peek> could almost be considered useful. The VARIABLE
2296 @c attribute can be used to insert the value of an emacs variable into the
2297 @c current document. Things like 'Welcome to my page, <peek
2298 @c variable=user-mail-address>' can be useful in spreading fear,
2299 @c uncertainty, and doubt among users.
2300 @c @item <yogsothoth>
2301 @c @cindex Gates Bill
2302 @c @cindex Yogsothoth
2303 @c Summons the elder gods to suck away your immortal soul. Or Bill Gates,
2304 @c if the elder gods are busy. Unpredictable (but amusing) results occur
2305 @c when the <YOGSOTHOTH> and <HYPE> tags are used in close proximity.
2306
2307 @c @item <blink>...</blink>
2308 @c Causes the enclosed text to .... ooops that one made it in.
2309 @c @end table
2310 @c @end itemize
2311
2312 @c @node Stylesheets, Supported Protocols, Markup Languages Supported,Introduction
2313 @c @chapter Stylesheets
2314 @c @cindex Stylesheets
2315 @c @cindex Cascading Style Sheets
2316 @c @cindex Aural Cascading Style Sheets
2317 @c @cindex CSS
2318 @c @cindex DSSSL
2319 @c :: WORK :: Document CSS support
2320 @c CSS Information at http://www.w3.org/pub/WWW/TR/REC-CSS1
2321 @c Style guide at http://www.htmlhelp.com/reference/css/
2322 @c :: WORK :: Document ACSS support
2323 @c ACSS Information at http://www.w3.org/pub/WWW/Style/CSS/Speech/NOTE-ACSS
2324 @c :: WORK :: Document DSSSL support
2325
2326 @c @node Supported Protocols, , Stylesheets, Introduction
2327 @c @chapter Supported Protocols
2328 @c @cindex Network Protocols
2329 @c @cindex Protocols Supported
2330 @c @cindex Supported Protocols
2331 @c Emacs-W3 supports the following protocols
2332 @c @table @b
2333 @c @item Usenet News
2334 @c Can either display an entire newsgroup or specific articles by
2335 @c Message-ID: header. Instead of rewriting a newsreader, this integrates
2336 @c with the Gnus newsreader. It requires at least Gnus 5.0, but it is
2337 @c always safest to use the latest version. Gnus supports some very
2338 @c advanced features, including virtual newsgroups, mail and news
2339 @c integration, and reading news from multiple servers. @inforef{Gnus,
2340 @c Top,gnus}, for more info.
2341
2342 @c To be more in line with the other @sc{url} schemes, the hostname and port of
2343 @c an @sc{nntp} server can be specified. @sc{url}s of the form
2344 @c news://hostname:port/messageID work, but might not work in some other
2345 @c browsers.
2346
2347 @c @item @sc{http}
2348 @c Supports the @sc{http}/0.9, @sc{http}/1.0, and parts of the @sc{http}/1.1 protocols.
2349 @c @item Gopher
2350 @c Support for all gopher types, including CSO queries.
2351 @c @item Gopher+
2352 @c Support for Gopher+ retrievals. Support for converting ASK blocks into
2353 @c HTML forms and submitting them back to the server.
2354 @c @item @sc{ftp}
2355 @c @sc{ftp} is handled by either ange-ftp or efs.
2356 @c @inforef{Ange-FTP,Top,ange-ftp}, for more information on Ange-FTP, or
2357 @c @inforef{EFS, Top,efs}, for information on EFS.
2358 @c @item Local files
2359 @c Local files are of course handled, and MIME content-types are derived
2360 @c from the file extensions.
2361 @c @item telnet, tn3270, rlogin
2362 @c Telnet, tn3270, and rogin are handled by running the appropriate program
2363 @c in an emacs buffer, or running an external process.
2364 @c @item mailto
2365 @c Causes a mail message to be started to a specific address. Supports the
2366 @c Netscape @i{extensions} to specify arbitrary headers on the message.
2367 @c @item data
2368 @c A quick and easy way to `inline' small pieces of information that you do
2369 @c not necessarily want to download over the net separately. Can speed up
2370 @c display of small icons, stylesheet information, etc. See the internet
2371 @c draft draft-masinter-url-data-02.txt for more information.
2372 @c @item mailserver
2373 @c A more powerful version of mailto, which allows the author to specify
2374 @c the subject and body text of the mail message. This type of link is
2375 @c never fully executed without user confirmation, because it is possible
2376 @c to insert insulting or threatening (and possibly illegal) data into the
2377 @c message. The mail message is displayed, and the user must confirm the
2378 @c message before it is sent.
2379 @c @item x-exec
2380 @c A @sc{url} can cause a local executable to be run, and its output interpreted
2381 @c as if it had come from an @sc{http} server. This is very useful, but is
2382 @c still an experimental protocol, hence the X- prefix. This @sc{url} protocol
2383 @c is deprecated, but might be useful in the future.
2384 @c @item @sc{nfs}
2385 @c Retrieves information over @sc{nfs}. This requires that your operating
2386 @c system support auto-mounting of @sc{nfs} volumes.
2387 @c @item finger
2388 @c Retrieves information about a user via the 'finger' protocol.
2389 @c @item Info
2390 @c Creates a link to an GNU-style info file. @inforef{Info,Top,info}, for more
2391 @c information on the Info format.
2392 @c @item SSL
2393 @c SSL requires a set of patches to the Emacs C code and SSLRef 2.0, or an
2394 @c external program to run in a subprocess (similar to the @file{tcp.el}
2395 @c package that comes with GNUS. @xref{Installing SSL}
2396 @c @end table
2397