0
|
1 \input texinfo
|
70
|
2 @setfilename ../info/w3.info
|
|
3 @settitle Emacs-W3 User's Manual
|
0
|
4 @iftex
|
|
5 @finalout
|
|
6 @end iftex
|
|
7 @c @setchapternewpage odd
|
|
8 @c @smallbook
|
|
9 @tex
|
|
10 \overfullrule=0pt
|
|
11 %\global\baselineskip 30pt % for printing in double space
|
|
12 @end tex
|
|
13 @synindex cp fn
|
|
14 @synindex vr fn
|
|
15 @ifinfo
|
70
|
16 This file documents the Emacs-W3 World Wide Web browser.
|
0
|
17
|
70
|
18 Copyright (C) 1993, 1994, 1995 William M. Perry
|
|
19 Copyright (C) 1996 Free Software Foundation
|
0
|
20
|
|
21 Permission is granted to make and distribute verbatim copies of
|
|
22 this manual provided the copyright notice and this permission notice
|
|
23 are preserved on all copies.
|
|
24
|
|
25 @ignore
|
|
26 Permission is granted to process this file through Tex and print the
|
|
27 results, provided the printed document carries copying permission
|
|
28 notice identical to this one except for the removal of this paragraph
|
|
29 (this paragraph not being relevant to the printed manual).
|
|
30
|
|
31 @end ignore
|
|
32 @end ifinfo
|
|
33 @c
|
|
34 @titlepage
|
|
35 @sp 6
|
70
|
36 @center @titlefont{Emacs-W3}
|
0
|
37 @center @titlefont{User's Manual}
|
|
38 @sp 4
|
70
|
39 @center Third Edition, Emacs-W3 Version 3.0
|
0
|
40 @sp 1
|
70
|
41 @center August 1996
|
0
|
42 @sp 5
|
|
43 @center William M. Perry
|
|
44 @center @i{wmperry@@cs.indiana.edu}
|
|
45 @page
|
|
46 @vskip 0pt plus 1filll
|
|
47 Copyright @copyright{} 1993, 1994, 1995 William M. Perry@*
|
70
|
48 Copyright @copyright{} 1996 Free Software Foundation
|
0
|
49
|
|
50 Permission is granted to make and distribute verbatim copies of@*
|
|
51 this manual provided the copyright notice and this permission notice@*
|
|
52 are preserved on all copies.
|
|
53
|
|
54 @end titlepage
|
|
55 @page
|
|
56 @ifinfo
|
70
|
57 @node Top, Introduction,, (DIR)
|
|
58 This manual documents the Emacs-W3 World Wide Web browser, a Lisp program
|
|
59 which runs as a subsystem under Emacs. The manual is divided into the
|
|
60 following chapters.
|
0
|
61
|
|
62 @menu
|
70
|
63 * Introduction:: Overview of Emacs-W3.
|
|
64 * Starting Up:: What happens when you start Emacs-W3
|
|
65 * Basic Usage:: Basic movement and usage of Emacs-W3.
|
0
|
66 * Compatibility:: Explanation of compatibility with
|
70
|
67 other web browsers.
|
|
68 * Controlling Formatting:: How to control HTML formatting
|
|
69 * MIME Support:: Support for MIME
|
|
70 * Security:: Various forms of security
|
|
71 * Non-Unix Operating Systems:: Special considerations necessary to get
|
0
|
72 up and running correctly under non-unix
|
|
73 OS's.
|
|
74 * Advanced Features:: Some of the more arcane features.
|
|
75 * More Help:: How to get more help---mailing lists,
|
|
76 newsgroups, etc.
|
|
77 * Future Directions:: Plans for future revisions
|
|
78
|
|
79 Appendices:
|
70
|
80 * Reporting Bugs:: How to report a bug in Emacs-W3
|
|
81 * Installing SSL:: Turning on SSL support
|
|
82 * Using PGP/PEM:: Turning on PGP/PEM encryption support
|
|
83 * Mailcap Files:: An explanation of Mailcap files
|
0
|
84
|
|
85 Indices:
|
70
|
86 * General Index:: General Index
|
|
87 * Key Index:: Menus of command keys and their references
|
0
|
88 @end menu
|
|
89 @end ifinfo
|
|
90
|
70
|
91 @node Introduction, Starting Up, Top, Top
|
|
92 @chapter Introduction
|
|
93 @cindex World Wide Web
|
|
94 Emacs-W3 is an Emacs subsystem that allows the user to browse the wonderful
|
|
95 World Wide Web (WWW).
|
|
96
|
|
97 The World Wide Web was begun at the CERN physics institute in
|
|
98 Switzerland in 1991. The project was initiated by Tim Berners-Lee
|
|
99 (@i{timbl@@w3.org}) for distributing data between different research
|
|
100 groups effectively.
|
|
101
|
|
102
|
|
103 The Web has since grown into the most advanced information system
|
|
104 currently on the internet. It is now a global hypertext system with
|
|
105 servers and @dfn{browsers} (programs written to interpret the hypertext
|
|
106 language and display it correctly, and allow the user to follow links)
|
|
107 exist for all major platforms (VMS, Windows, DOS, Unix, VM, NeXTstep,
|
|
108 Amiga, and Macintosh).
|
|
109
|
|
110 The basic concepts used in the Web are @b{hypertext} and @b{hypermedia}.
|
|
111 Hypertext is the same as regular text, with one exception---it can
|
|
112 contain links (cross-references) to other textual documents. Hypermedia
|
|
113 is slightly different---it can contain links to other forms of media
|
|
114 (movies, sounds, interactive programs, etc.).
|
|
115
|
|
116 WWW also allows searches of indices that are located anywhere on the
|
|
117 network; in this respect, it mirrors certain capabilities found in both
|
|
118 WAIS and Gopher.
|
|
119 @iftex
|
|
120 @section Client Side View of WWW
|
|
121 @end iftex
|
|
122 @ifinfo
|
|
123 @center ----------------
|
|
124 @center CLIENT SIDE VIEW
|
|
125 @center ----------------
|
|
126 @end ifinfo
|
|
127 The WWW consists of documents and links. Indexes are special documents
|
|
128 which, rather than being read, may be searched. The result of such a
|
|
129 search is another @i{virtual} document containing links to the documents
|
|
130 found. A simple protocol, Hypertext Transfer Protocol or @i{HTTP}, is
|
|
131 used to allow a browser program to request a keyword search by a remote
|
|
132 information server.
|
|
133
|
|
134
|
|
135 The web contains documents in many formats. Those documents which are
|
|
136 hypertext, (real or virtual) contain links to other documents, or places
|
|
137 within documents. All documents, whether real, virtual or indexes, look
|
|
138 similar to the reader and are contained within the same addressing
|
|
139 scheme.
|
|
140 @iftex
|
|
141 @section Information Provider View of WWW
|
|
142 @end iftex
|
|
143 @ifinfo
|
|
144 @center -------------------------
|
|
145 @center INFORMATION PROVIDER VIEW
|
|
146 @center -------------------------
|
|
147 @end ifinfo
|
|
148 WWW browsers can access many existing data systems via existing
|
|
149 protocols (FTP, NNTP) or via HTTP and a gateway. In this way, the
|
|
150 critical mass of data is quickly exceeded, and the increasing use of the
|
|
151 system by readers and information suppliers encourage each other.
|
|
152
|
|
153 Providing information is as simple as running a WWW server and pointing
|
|
154 it at an existing directory structure. The server automatically
|
|
155 generates a hypertext view of the files to guide the user around.
|
|
156
|
|
157
|
|
158 To personalize it, a few @b{SGML} hypertext files can be written to give
|
|
159 an even more friendly view. Also, any file available by anonymous FTP,
|
|
160 or any internet newsgroup can be immediately linked into the web. The
|
|
161 small start-up effort is designed to allow open contributions. At the
|
|
162 other end of the scale, large information providers may provide an HTTP
|
|
163 server with full text or keyword indexing. This may allow access to a
|
|
164 large existing database without changing the way that database is
|
|
165 managed. Such gateways have already been made into Oracle(tm), WAIS,
|
|
166 and Digital's VMS/Help systems, to name but a few.
|
0
|
167
|
70
|
168
|
|
169 The WWW model gets over the frustrating incompatibilities of data format
|
|
170 between suppliers and reader by allowing negotiation of format between a
|
|
171 smart browser and a smart server. This provides a basis for extension
|
|
172 into multimedia, and allow those who share application standards to make
|
|
173 full use of them across the web.
|
|
174
|
|
175
|
|
176 @ifinfo
|
|
177 Here is some more specific information about what Emacs-W3 does and does
|
|
178 not understand:
|
|
179 @menu
|
|
180 * Markup Languages Supported:: The different markup languages that
|
|
181 Emacs-W3 understands natively.
|
|
182 * Supported Protocols:: The different network protocols that
|
|
183 Emacs-W3 speaks to.
|
|
184 @end menu
|
|
185 @end ifinfo
|
|
186 @node Markup Languages Supported, Supported Protocols, Introduction, Introduction
|
|
187 @chapter Supported Markup Languages
|
|
188 Several different markup languages, and various extensions to those
|
|
189 languages, are supported by Emacs-W3.
|
|
190 @ifinfo
|
|
191 @center ----------
|
|
192 @center HTML 2.0
|
|
193 @center ----------
|
|
194 @end ifinfo
|
|
195 @iftex
|
|
196 @section HTML 2.0
|
|
197 @end iftex
|
|
198 The Hypertext Markup Language, or HTML, is composed of a set of elements
|
|
199 that define a document and guide its display. An HTML element may
|
|
200 include a name, some attributes and some text or hypertext, and appears
|
|
201 in an HTML document as <tag_name>text</tag_name>, <tag_name
|
|
202 attribute_name=argument>text</tag_name>, or just <tag_name>.
|
|
203
|
32
|
204
|
70
|
205 For example: @samp{<title>My Useful Document</title>}, and @samp{<pre
|
|
206 width=60> A lot of text here. </pre>}.
|
|
207
|
|
208 An HTML document is composed of a single element: <html>...</html>, that
|
|
209 is, in turn, composed of head and body elements: <head>...</head>, and
|
|
210 <body>...</body>. To allow older HTML documents to remain readable,
|
|
211 <html>, <head>, and <body> are actually optional within HTML
|
|
212 documents.
|
|
213
|
|
214 All the tags and attributes of HTML are fully supported in Emacs-W3.
|
|
215
|
|
216 The full HTML 2.0 specification is available at any RFC
|
|
217 archive@footnote{ftp://ds.internic.net/}. It is RFC 1866.
|
|
218
|
32
|
219
|
70
|
220 @ifinfo
|
|
221 @center ----------
|
|
222 @center HTML 3.0
|
|
223 @center ----------
|
|
224 @end ifinfo
|
|
225 @iftex
|
|
226 @section HTML 3.2
|
|
227 @end iftex
|
|
228 @cindex HTML 3.2
|
|
229 The HTML 3.2 language is an extension of HTML, with a large degree of
|
|
230 backward compatibility with HTML 2.0. This basically documents current
|
|
231 practice as of January, 1996.
|
|
232
|
|
233 @ifinfo
|
|
234 @center ----------
|
|
235 @center Netscape-HTML
|
|
236 @center ----------
|
|
237 @end ifinfo
|
|
238 @iftex
|
|
239 @section Netscape-HTML
|
|
240 @end iftex
|
|
241 I hate to say it, but I broke down and actually included some of the
|
|
242 Netscape extensions into Emacs-W3. The thing I hate to say even more,
|
|
243 is that most of the uglier things in Netscape-HTML are now in the HTML
|
|
244 3.2 specification. All hail the W3Cs lack of backbone.
|
32
|
245
|
70
|
246 @table @b
|
|
247 @item <center>...</center>
|
|
248 This ugly, ill-thought-out alternative to the HTML 3.0 align attribute on
|
|
249 headers and paragraphs was included for compatibility, and as an example
|
|
250 of how @b{not} to do things.
|
|
251 @item <isindex>
|
|
252 The isindex tag can now take a prompt attribute, to get rid of the
|
|
253 default 'This is a searchable index' label.
|
|
254 @end table
|
|
255 @ifinfo
|
|
256 @center ----------
|
|
257 @center SGML Features
|
|
258 @center ----------
|
|
259 @end ifinfo
|
|
260 @iftex
|
|
261 @section SGML Features
|
|
262 @end iftex
|
|
263 @cindex SGML Features
|
|
264 @cindex Entity Definitions
|
|
265 @cindex Marked Sections
|
|
266 :: WORK :: Document marked sections, SGML features
|
|
267 @ifinfo
|
|
268 @center ----------
|
|
269 @center Extras
|
|
270 @center ----------
|
|
271 @end ifinfo
|
|
272 @iftex
|
|
273 @section Extra Markup
|
|
274 @end iftex
|
|
275 @cindex Easter Eggs
|
|
276 @cindex Fluff
|
|
277 @cindex Pomp & Circumstance
|
|
278 There are several different markup elements that are not officially part
|
|
279 of HTML or HTML 3.0 that Emacs-W3 supports. These are either items that
|
|
280 were dropped from HTML 3.0 after I had implemented them, or experimental
|
|
281 parts of HTML that should not be counted as "official" or long
|
|
282 lived.
|
|
283 @itemize @bullet
|
|
284 @item
|
|
285 More <HR> improvements. Text can be added into a horizontal rule by
|
|
286 using the LABEL and TEXTALIGN attributes.
|
32
|
287
|
70
|
288 @example
|
|
289 <hr label="testing" textalign="right">
|
|
290 yields
|
|
291 ----------------------------------------------------------testing-
|
|
292
|
|
293 <hr label="testing" textalign="center">
|
|
294 yields
|
|
295 -----------------------------testing------------------------------
|
|
296
|
|
297 <hr label="testing" textalign="left">
|
|
298 yields
|
|
299 -Testing----------------------------------------------------------
|
|
300 @end example
|
|
301 @item
|
|
302 FLAME support. For truly interesting dynamic documents. This is
|
|
303 replaced with a random quote from Mr. Angry (see @kbd{M-x flame} for a
|
|
304 sample).
|
|
305 @item
|
|
306 The top ten tags that did not make it into netscape. These tags were
|
|
307 posted to the newsgroup comp.infosystems.www.misc by Laura Lemay
|
|
308 (@i{lemay@@netcom.com}). Much thanks to her for the humor.
|
|
309 @table @b
|
|
310 @item <wired>...</wired>
|
|
311 Renders the enclosed text in a suitably ugly font/color combination. If
|
|
312 no default has been set up by the user, this is the default font, with
|
|
313 red text on a yellow background.
|
|
314 @item <roach>...</roach>
|
|
315 When selected, the enclosed text runs and hides under the nearest
|
|
316 window. OR, giggles a lot and demands nachos, depending on the
|
|
317 definition of "roach." (the formal definition, of course, to be
|
|
318 determined by the Official Honorary Internet Standards Committee For
|
|
319 Moving Really Slowly.)
|
|
320 @item <pinhead>
|
|
321 Inserts "zippyisms" into the enclosed text. Perfect for those professional
|
|
322 documents. This is sure to be a favorite of mine!
|
|
323 @item <secret>...</secret>
|
|
324 Must use secret spy decoder glasses (available direct from Netscape for
|
|
325 a reasonable fee) in order to read the enclosed text. Can also be read
|
|
326 by holding the computer in front of a full moon during the autumn
|
|
327 solstice.
|
32
|
328
|
70
|
329 In Emacs-W3, this displays the text using rot13 encoding.
|
|
330 @item <hype>
|
|
331 Causes Marc Andreesen to magically appear and grant an interview (wanted
|
|
332 or not). Please use this tag sparingly.
|
|
333 @item <peek>....</peek>
|
|
334 @item <poke>...</poke>
|
|
335 Need more control over screen layout in HTML? Well, here ya go.
|
|
336
|
|
337 Actually, <peek> could almost be considered useful. The VARIABLE
|
|
338 attribute can be used to insert the value of an emacs variable into the
|
|
339 current document. Things like 'Welcome to my page, <peek
|
|
340 variable=user-mail-address>' can be useful in freaking people
|
|
341 out.
|
|
342 @item <yogsothoth>
|
|
343 @cindex Gates Bill
|
|
344 @cindex Yogsothoth
|
|
345 Summons the elder gods to suck away your immortal soul. Or Bill Gates,
|
|
346 if the elder gods are busy. Unpredictable (but amusing) results occur
|
|
347 when the <YOGSOTHOTH> and <HYPE> tags are used in close proximity.
|
|
348
|
|
349 @item <blink>...</blink>
|
|
350 Causes the enclosed text to .... ooops that one made it in.
|
|
351 @end table
|
|
352 @end itemize
|
|
353 @node Supported Protocols, , Markup Languages Supported, Introduction
|
|
354 @chapter Supported Protocols
|
|
355 @cindex Network Protocols
|
|
356 @cindex Protocols Supported
|
|
357 @cindex Supported Protocols
|
|
358 Emacs-W3 supports the following protocols
|
|
359 @table @b
|
|
360 @item Usenet News
|
|
361 Can either display an entire newsgroup or specific articles by
|
|
362 Message-ID: header. This supports a unix-style .newsrc file, so the
|
|
363 user does not see articles they have read using another newsreader, but
|
|
364 due to how news URLs work, the .newsrc file cannot be updated
|
|
365 reliably.
|
32
|
366
|
70
|
367 To be more in line with the other URL schemes, the hostname and port of
|
|
368 an NNTP server can be specified. URLs of the form
|
|
369 news://hostname:port/messageID work, but will not work in most other
|
|
370 browsers.
|
32
|
371
|
70
|
372 @item HTTP
|
|
373 Supports the HTTP/0.9, HTTP/1.0, and HTTP/1.1 protocols. Fully
|
|
374 MIME-compliant with regards to HTTP/1.0.
|
|
375 @item Gopher
|
|
376 Support for all gopher types, including CSO queries.
|
|
377 @item Gopher+
|
|
378 Support for Gopher+ retrievals. Support for converting ASK blocks into
|
|
379 HTML 3.0 FORMS and submitting them back to the server.
|
|
380 @item FTP
|
|
381 FTP is handled by either ange-ftp or efs.
|
|
382 @item Local files
|
|
383 Local files are handled, and MIME content-types are derived from the
|
|
384 file extensions.
|
|
385 @item Telnet
|
|
386 Telnet is handled by running the Emacs Lisp function @code{telnet}, or
|
|
387 spawning an xterm running telnet.
|
|
388 @item TN3270
|
|
389 TN3270 is handled by running a tn3270 program in an Emacs buffer, or
|
|
390 spawning an xterm running tn3270.
|
|
391 @item Mailto
|
|
392 Causes a mail message to be started to a specific address.
|
|
393 @item mailserver
|
|
394 A more powerful version of mailto, which allows the author to specify
|
|
395 the subject and body text of the mail message. This type of link is
|
|
396 never fully executed without user confirmation, because it is possible
|
|
397 to insert insulting or threatening (and possibly illegal) data into the
|
|
398 message. The mail message is displayed, and the user must type 'yes' to
|
|
399 send it.
|
|
400 @item X-exec
|
|
401 A URL can cause a local executable to be run, and its output interpreted
|
|
402 as if it had come from an HTTP server. This is very useful, but is
|
|
403 still an experimental protocol, hence the X- prefix.
|
|
404 @item SSL
|
|
405 SSL requires a set of patches to the Emacs C code and SSLRef 2.0, or an
|
|
406 external program to run in a subprocess (similar to the @file{tcp.el}
|
|
407 package that comes with GNUS. @xref{Installing SSL}
|
|
408 @item Secure HTTP
|
|
409 Work is in progress to add support for the Secure HTTP specification
|
|
410 from Enterprise Information Technologies. The specification for SHTTP
|
|
411 can be found on EIT's web server at
|
|
412 http://www.commerce.net/information/standards/drafts/shttp.txt.
|
32
|
413 @end table
|
20
|
414
|
70
|
415 @node Starting Up, Basic Setup, Introduction, Top
|
|
416 @comment node-name, next, previous, up
|
|
417 @chapter Starting Up
|
|
418 @cindex Starting Up Emacs-W3
|
|
419 This section of the manual deals with getting, compiling, and
|
|
420 configuring @i{Emacs-W3}.
|
|
421 @ifinfo
|
20
|
422 @menu
|
70
|
423 * Basic Setup:: Basic setup that everyone needs to do
|
|
424 * Firewalls:: How to set Emacs-W3 up to use a particular
|
|
425 firewall setup.
|
|
426 * Proxy Gateways:: Using a proxy server
|
20
|
427 @end menu
|
70
|
428 @end ifinfo
|
|
429
|
|
430 @node Basic Setup, Firewalls, Starting Up, Starting Up
|
|
431 @comment node-name, next, previous, up
|
|
432 @section Basic Setup
|
|
433 There are a few variables that almost all people need to change.
|
|
434
|
|
435 @table @code
|
|
436 @item w3-default-homepage
|
|
437 @vindex w3-default-homepage
|
|
438 The url to open at startup. This defaults to the environment variable
|
|
439 WWW_HOME if it is not set it in the users @file{.emacs} file. If
|
|
440 WWW_HOME is undefined, then it defaults to the hypertext documentation
|
|
441 for Emacs-W3.
|
0
|
442
|
70
|
443 @item w3-delay-image-loads
|
|
444 @vindex w3-delay-image-loads
|
|
445 Controls the loading of inlined images. If non-@code{nil}, images are
|
|
446 not loaded. If the correct image converters are not installed or the
|
|
447 network connection is very slow, it is best to set this to @code{t}.
|
|
448 Defaults to @code{nil}.
|
|
449 @item url-global-history-file
|
|
450 @vindex url-global-history-file
|
|
451 The global history file used by both Mosaic/X and Emacs-W3. This file
|
|
452 contains a list of all the URLs that have been visited. This file is parsed
|
|
453 at startup and used to provide URL completion. Emacs-W3 can read and
|
|
454 write Mosaic/X or Netscape 1.x style history files, or use its own
|
|
455 internal format (faster). The file type is determined automatically, or
|
|
456 prompted for if the file does not exist.
|
|
457 @item w3-hotlist-file
|
|
458 @vindex w3-hotlist-file
|
|
459 Hotlist filename. This should be the name of a file that is stored in
|
|
460 NCSA's Mosaic/X or Netscape's format. It is used to keep a listing of
|
|
461 commonly accessed URLs.
|
|
462 @item w3-personal-annotation-directory
|
|
463 @vindex w3-personal-annotation-directory
|
|
464 The directory where Emacs-W3 looks for personal annotations. This is a
|
|
465 directory that should hold the personal annotations stored in a
|
|
466 Mosaic/X-compatible format.
|
|
467 @item url-pgp/pem-entity
|
|
468 @findex user-real-login-name
|
|
469 @findex system-name
|
|
470 The name by which the user is known to PGP and/or PEM entities. If this
|
|
471 is not set when Emacs-W3 is loaded, it defaults to
|
|
472 @code{user-mail-address} if it is set, otherwise @code{(user-real-login-name)}@@@code{(system-name)}.
|
|
473 @item url-personal-mail-address
|
|
474 @vindex url-personal-mail-address
|
|
475 @vindex url-pgp/pem-entity
|
|
476 User's full email address. This is what is sent to HTTP/1.0 servers as
|
|
477 the FROM header. If this is not set when Emacs-W3 is loaded, then it
|
|
478 defaults to the value of @code{url-pgp/pem-entity}.
|
26
|
479
|
70
|
480 @item w3-right-border
|
|
481 @vindex w3-right-border
|
|
482 @findex window-width
|
|
483 Amount of space to leave on right margin of WWW buffers. This amount is
|
|
484 subtracted from the width of the window for each new WWW buffer and used
|
|
485 as the new @code{fill-column}.
|
20
|
486
|
70
|
487 @item w3-track-mouse
|
|
488 @vindex w3-track-mouse
|
|
489 Controls whether to track the mouse and message the url under the mouse.
|
|
490 If this is non-@code{nil}, then a description of the hypertext area
|
|
491 under the mouse is shown in the minibuffer. This shows what type of
|
|
492 link (inlined image, form entry area, delayed image, delayed MPEG, or
|
|
493 hypertext reference) is under the cursor, and the destination.
|
|
494 @item w3-echo-link
|
|
495 @vindex w3-echo-link
|
|
496 Controls how a URL is shown when a link is reached with @key{f},
|
|
497 @key{b}, or the mouse moves over it. Possible values are:
|
|
498 @table @b
|
|
499 @item url
|
|
500 Displays the URL (ie: @samp{http://www.cs.indiana.edu/}).
|
|
501 @item text
|
|
502 Displays the text of the link (ie: @samp{A link to Indiana University}).
|
|
503 @item nil
|
|
504 Show nothing.
|
|
505 @end table
|
|
506 @item w3-use-forms-index
|
|
507 @vindex w3-use-forms-index
|
|
508 @cindex ISINDEX handling
|
|
509 @cindex Forms based searching
|
|
510 @cindex Searching with forms
|
|
511 Non-@code{nil} means translate <ISINDEX> tags into a hypertext form. A
|
|
512 single text entry box is shown where the ISINDEX tag appears.
|
|
513 @item url-use-hypertext-gopher
|
|
514 @vindex url-use-hypertext-gopher
|
|
515 @cindex Gopher+
|
|
516 Controls how gopher documents are retrieved. If non-@code{nil}, the
|
|
517 gopher pages are converted into HTML and parsed just like any other
|
|
518 page. If @code{nil}, the requests are passed off to the
|
|
519 @file{gopher.el} package by Scott Snyder. Using the @file{gopher.el}
|
|
520 package loses the gopher+ support, and inlined searching.
|
|
521 @item url-xterm-command
|
|
522 @vindex url-xterm-command
|
|
523 Command used to start a windowed shell, similar to an xterm. This
|
|
524 string is passed through @code{format}, and should expect four strings:
|
|
525 the title of the window, the program name to execute, and the server and
|
|
526 port number. The default is for xterm, which is very UNIX and
|
|
527 XWindows-centric.
|
|
528 @end table
|
|
529 @node Firewalls, Proxy Gateways, Basic Setup, Starting Up
|
|
530 @comment node-name, next, previous, up
|
|
531 @section Firewalls
|
|
532 @cindex Gateways
|
|
533 There are several different reasons why the gateway support might be
|
|
534 required.
|
|
535 @enumerate
|
|
536 @cindex Firewalls
|
|
537 @item
|
|
538 Stuck behind a firewall. This is usually the case at large corporations
|
|
539 with paranoid system-administrators.
|
0
|
540
|
70
|
541 @cindex TERM
|
|
542 @item
|
|
543 Using TERM @footnote{TERM is a user-level protocol for emulating IP over
|
|
544 a serial line. More information is available at
|
|
545 ftp://sunsite.unc.edu/pub/Linux/apps/comm/term} for slip-like access to
|
|
546 the internet.
|
26
|
547
|
70
|
548 NOTE: XEmacs and Emacs 19.22 or later have patches to enable native TERM
|
|
549 networking. To enable it, #define TERM in the appropriate s/*.h file
|
|
550 for the operating system, then change the SYSTEM_LIBS define to include
|
|
551 the @file{termnet} library that comes with the latest versions of TERM.
|
|
552
|
|
553 @item
|
|
554 @cindex Faulty hostname resolvers
|
|
555 @cindex Broken SUN libc
|
|
556 @cindex Can't resolve hostnames
|
|
557 Emacs cannot resolve hostnames. This happens quite often on Sun
|
|
558 workstations and some ULTRIX machines. Some C libraries do not include
|
|
559 the hostname resolver routines in their static libraries. If Emacs was
|
|
560 linked statically, this means it won't be able to get to any machines
|
|
561 off the local network. This is characterized by being able to reach
|
|
562 someplace with a raw ip number, but not its hostname
|
|
563 (http://129.79.254.191/ works, but http://www.cs.indiana.edu/ doesn't).
|
|
564
|
|
565 If for some reason it is not feasible to recompile Emacs with the
|
|
566 @file{-lresolv} library or dynamic linking, it is just like being behind
|
|
567 a firewall. Another alternative is to set the variable
|
|
568 @code{url-broken-resolution} - this will use the support in ange-ftp or
|
|
569 EFS to use @file{nslookup} in a subprocess to do all hostname resolving.
|
|
570 See the variables @code{efs-nslookup-program},
|
|
571 @code{efs-nslookup-on-connect}, and @code{efs-nslookup-threshold} if are
|
|
572 using EFS, or @code{ange-ftp-nslookup-program} if using Ange-FTP.
|
|
573
|
|
574 @end enumerate
|
|
575
|
|
576 @vindex url-gateway-local-host-regexp
|
|
577 Emacs-W3 has support for using the gateway mechanism for certain
|
|
578 domains, and directly connecting to others. To use this, change the
|
|
579 value of @code{url-gateway-local-host-regexp}. This should be a regular
|
|
580 expression @footnote{Please see the full Emacs distribution for a
|
|
581 description of regular expressions} that matches local hosts that do not
|
|
582 require the use of a gateway. If @code{nil}, then all connections are
|
|
583 made through the gateway.
|
|
584
|
20
|
585
|
70
|
586 @vindex url-gateway-method
|
|
587 Emacs-W3 supports several methods of getting around gateways. The variable
|
|
588 @code{url-gateway-method} controls which of these methods is used. This
|
|
589 variable can have several values (use these as symbol names, not
|
|
590 strings):
|
|
591 @table @dfn
|
|
592 @item program
|
|
593 Run a program in a subprocess to connect to remote hosts (examples are
|
|
594 @i{itelnet}@footnote{Itelnet is a standard name for a telnet executable
|
|
595 that is capable of escaping the firewall. Check with system
|
|
596 administrators to see if anything similar is available}, an
|
|
597 @i{expect}@footnote{Expect is a scripting language that allows control
|
|
598 of interactive programs (like telnet) very easily. It is available from
|
|
599 gatekeeper.dec.com:/pub/GNU/expect-3.24.0.tar.gz} script, etc.).
|
|
600
|
|
601 @item host
|
|
602 Log into another local computer that has access to the internet, and run
|
|
603 a telnet-like program from there.
|
|
604 @item tcp
|
|
605 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very nice
|
|
606 replacement for the standard networking in Emacs. This does basically
|
|
607 the same thing that a method of @code{program} does, but is slightly
|
|
608 more transparent to the user.
|
|
609 @item native
|
|
610 This means that Emacs-W3 should use the builtin networking code of Emacs.
|
|
611 This should be used only if there is no firewall, or the Emacs source
|
|
612 has already been hacked to get around the firewall.
|
|
613 @end table
|
|
614 Two of these need a bit more explanation than that:
|
|
615 @vindex url-gateway-telnet-ready-regexp
|
|
616 @vindex url-gateway-telnet-program
|
|
617 When running a program in a subprocess to emulate a network connection,
|
|
618 a few extra variables need to be set. The variable
|
|
619 @code{url-gateway-telnet-program} should point to an executable that
|
|
620 accepts a hostname and port # as its arguments, and passes standard
|
|
621 input to the remote host. This can be either the full path to the
|
|
622 executable or just the basename. The variable
|
|
623 @code{url-gateway-telnet-ready-regexp} controls how long Emacs-W3 should
|
|
624 wait after spawning the subprocess to start sending to its standard
|
|
625 input. This gets around a bug where telnet would miss the beginning of
|
|
626 requests becausse it did not buffer its input before opening a
|
|
627 connection. This should be a regular expression to watch for that
|
|
628 signifies the end of the setup of @code{url-gateway-telnet-program}.
|
|
629 The default should work fine for telnet.
|
|
630
|
|
631 @cindex Host-based gateways
|
|
632 @cindex Hair-pulling gateway-headaches
|
|
633 @vindex url-gateway-host
|
|
634 When using the @code{host}-based gatway method, things get a bit more
|
|
635 complicated. This is basically my attempt to do some of the basic stuff
|
|
636 of @i{expect} within elisp. First off, set the variable
|
|
637 @code{url-gateway-host} to be the name of the gateway machine.
|
|
638
|
|
639
|
|
640 @vindex url-gateway-connect-program
|
|
641 The variable @code{url-gateway-connect-program} controls how the host is
|
|
642 reached. The easiest way is to have a program that does not require a
|
|
643 username and password to login. The most common of these is the
|
|
644 @dfn{rsh} command.
|
|
645
|
|
646 @vindex url-gateway-program-interactive
|
|
647 @vindex url-gateway-handholding-password-regexp
|
|
648 @vindex url-gateway-handholding-login-regexp
|
|
649 @vindex url-gateway-host-username
|
|
650 @vindex url-gateway-host-password
|
|
651 If @i{rsh} is not available, then things get very ugly. First, set the
|
|
652 variable @code{url-gateway-program-interactive} to non-@code{nil}. Then
|
|
653 set the variables @code{url-gateway-host-username} and
|
|
654 @code{url-gateway-host-password} to be the username and password
|
|
655 necessary to log into the gateway machine. The regular expressions in
|
|
656 the variables @code{url-gateway-handholding-login-regexp} and
|
|
657 @code{url-gateway-handholding-password-regexp} should match the login
|
|
658 and password prompts on the gateway system respectively. For example:
|
26
|
659
|
70
|
660 @example
|
|
661 (setq url-gateway-connect-program "telnet"
|
|
662 url-gateway-host-program "telnet"
|
|
663 url-gateway-program-interactive t
|
|
664 url-gateway-host-username "wmperry"
|
|
665 url-gateway-host-password "yeahrightkeepdreaming"
|
|
666 url-gateway-host "moose.cs.indiana.edu"
|
|
667 url-gateway-host-program-ready-regexp "Escape character is .*"
|
|
668 url-gateway-handholding-login-regexp "ogin:"
|
|
669 url-gateway-handholding-password-regexp "ord:")
|
|
670 @end example
|
|
671
|
|
672 @vindex url-gateway-host-prompt-pattern
|
|
673 This should take care of logging in to the remote system. The variable
|
|
674 @code{url-gateway-host-prompt-pattern} should contain a regular
|
|
675 expression that matches the shell prompt on the remote machine. This
|
|
676 should appear @b{no where} in the login banner/setup, or things could
|
|
677 get very confused.
|
|
678
|
|
679 @vindex url-gateway-host-program-ready-regexp
|
|
680 @vindex url-gateway-host-program
|
|
681 The variable @code{url-gateway-host-program-ready-regexp} should contain
|
|
682 a regular expression that matches the end of the setup of
|
|
683 @code{url-gateway-host-program} when it tries to make a connection to an
|
|
684 off-firewall machine. (Basically the same as
|
|
685 @code{url-gateway-telnet-ready-regexp}.
|
|
686
|
|
687 Emacs-W3 should now be able to get outside the local network. If none
|
|
688 of this makes sense, its probably my fault. Please check with the
|
|
689 network administrators to see if they have a program that does most of
|
|
690 this already, since somebody somewhere at the company has probably been
|
|
691 through something similar to this before, and would be much more
|
|
692 helpful/knowledgeable about the local setup than I would be. But feel
|
|
693 free to mail me as a last resort.
|
20
|
694
|
70
|
695 @node Proxy Gateways, Basic Usage, Firewalls, Starting Up
|
|
696 @comment node-name, next, previous, up
|
|
697 @section Proxy Gateways
|
|
698 @vindex url-proxy-services
|
|
699 @cindex Proxy Servers
|
|
700 @cindex Proxies
|
|
701 @cindex Proxies, environment variables
|
|
702 @cindex HTTP Proxy
|
|
703 In late January 1993, Kevin Altis and Lou Montulli proposed and
|
|
704 implemented a new proxy service. This service requires the use of
|
|
705 environment variables to specify a gateway server/port # to send
|
|
706 protocol requests to. Each protocol (HTTP, WAIS, gopher, FTP, etc.@:)
|
|
707 can have a different gateway server. The environment variables are
|
|
708 @var{PROTOCOL}_proxy, where @var{PROTOCOL} is one of the supported
|
|
709 network protocols (gopher, file, HTTP, FTP, etc.)
|
|
710
|
|
711 @cindex No Proxy
|
|
712 @cindex Proxies, exclusion lists
|
|
713 @vindex NO_PROXY
|
|
714 For companies with internal intranets, it will usually be helpful to
|
|
715 define a list of hosts that should be contacted directly, @b{not} sent
|
|
716 through the proxy. The @var{NO_PROXY} environment variable controls
|
|
717 what hosts are able to be contacted directly. This should be a comma
|
|
718 separated list of hostnames, domain names, or a mixture of both.
|
|
719 Asterisks can be used as a wildcard. For example:
|
|
720
|
|
721 @example
|
|
722 NO_PROXY=*.aventail.com,home.com,*.seanet.com
|
|
723 @end example
|
|
724
|
|
725 tells Emacs-W3 to contact all machines in the @b{aventail.com} and
|
|
726 @b{seanet.com} domains directly, as well as the machine named
|
|
727 @b{home.com}.
|
|
728
|
|
729 @vindex url-proxy-services
|
|
730 @cindex Proxies, setting from lisp
|
|
731 For those adventurous souls who enjoy writing regular expressions, all
|
|
732 the proxy settings can be manipulated from Emacs-Lisp. The variable
|
|
733 @code{url-proxy-services} controls this. This is an assoc list, keyed
|
|
734 on the protocol type (http, gopher, etc) in all lowercase. The
|
|
735 @code{cdr} of each entry should be the fully-specified URL of the proxy
|
|
736 server to contact, or, in the case of the special "no_proxy" entry, a
|
|
737 regular expression that matches any hostnames that should be contacted
|
|
738 directly.
|
|
739
|
|
740 @example
|
|
741 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/")
|
|
742 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com")))
|
|
743 @end example
|
|
744
|
|
745 @node Basic Usage, , Proxy Gateways, Top
|
|
746 @comment node-name, next, previous, up
|
0
|
747 @chapter Basic Usage
|
70
|
748 Emacs-W3 is similar to the Info package all Emacs users hold near and dear to
|
|
749 their hearts (@xref{Top,,Info,info, The Info Manual}, for a description
|
|
750 of Info). Basically, @kbd{space} and @kbd{backspace} control scrolling,
|
|
751 and @kbd{return} or @kbd{mouse2} follows a hypertext link. The @kbd{f}
|
|
752 and @kbd{b} keys maneuver around the various links on the page.
|
|
753
|
|
754 @b{NOTE:} To enter data into a form entry area, select it using
|
|
755 @kbd{return} or the middle mouse button, just like a hypertext link.
|
0
|
756
|
|
757
|
70
|
758 On non-graphic terminals (VT100, DOS, etc.), hypertext links are
|
|
759 surrounded by '[[' and ']]' by default. On a graphics terminal, the
|
|
760 links are in bold print. @xref{Controlling Formatting} for information
|
|
761 on how to change this, or for help on getting the highlighting to work
|
|
762 on graphics terminals.
|
0
|
763
|
70
|
764 There are approximately 50 keys bound to special Emacs-W3 functions.
|
|
765 The basic rule of thumb regarding keybindings in Emacs-W3 is that a
|
0
|
766 lowercase key takes an action on the @b{current document}, and an
|
|
767 uppercase key takes an action on the document pointed to by the
|
|
768 hypertext link @b{under the cursor}.
|
|
769
|
|
770 There are several areas that the keybindings fall into: movement,
|
|
771 information, action, and miscellaneous.
|
|
772
|
70
|
773 @ifinfo
|
0
|
774 @menu
|
70
|
775 * Movement:: Moving around in a Emacs-W3 buffer
|
|
776 * Information:: Getting information about the Emacs-W3 document being
|
|
777 viewed, and/or links within that document.
|
|
778 * Action:: Taking actions in a Emacs-W3 buffer (following links,
|
|
779 printing, etc.)
|
|
780 * Miscellaneous:: Miscellaneous keybindings
|
0
|
781 @end menu
|
70
|
782 @end ifinfo
|
0
|
783 @node Movement, Information, Basic Usage, Basic Usage
|
|
784 @section Movement
|
70
|
785 :: WORK :: Document the 'h' and 'a' keymaps
|
0
|
786 @table @kbd
|
70
|
787 @findex scroll-up
|
|
788 @kindex SPC
|
|
789 @item SPC
|
0
|
790 Scroll downward in the buffer. With prefix arg, scroll down that many
|
|
791 screenfuls.
|
70
|
792 @kindex DEL
|
0
|
793 @findex scroll-down
|
70
|
794 @item DEL
|
0
|
795 Scroll upward in the buffer. With prefix arg, scroll up that many
|
|
796 screenfuls.
|
|
797 @kindex <
|
|
798 @findex w3-start-of-document
|
|
799 @item <
|
|
800 Goes to the start of document
|
|
801 @kindex >
|
|
802 @findex w3-end-of-document
|
|
803 @item >
|
|
804 Goes to the end of document
|
|
805 @kindex b
|
70
|
806 @kindex Shift-TAB
|
|
807 @findex w3-back-link
|
|
808 @item Shift-TAB, b
|
0
|
809 Attempts to move backward one link area in the current document.
|
|
810 Signals an error if no previous links are found.
|
70
|
811 @kindex hl
|
|
812 @findex w3-show-hotlist
|
|
813 @item hl
|
|
814 Displays a complete listing of the items in the hotlist.
|
|
815 @kindex hu
|
|
816 @findex w3-use-hotlist
|
|
817 @item hu
|
|
818 Go to a link in the hotlist.
|
0
|
819 @kindex m
|
|
820 @findex w3-complete-link
|
|
821 @item m
|
|
822 Choose a link from the current buffer and follow it. A completing-read
|
|
823 is done on all the links, so @kbd{space} and @kbd{TAB} can be used for
|
|
824 completion.
|
70
|
825 @kindex f
|
|
826 @kindex TAB
|
|
827 @kindex n
|
|
828 @findex w3-forward-link
|
|
829 @item TAB, f, n
|
|
830 Attempts to move forward one link area in the current document. Signals
|
|
831 an error if no more links are found.
|
|
832 @end table
|
|
833 @node Information, Action, Movement, Basic Usage
|
|
834 @section Information
|
|
835 These functions relate information about one or more links on the
|
|
836 current document.
|
|
837 @table @kbd
|
|
838 @kindex v
|
|
839 @findex url-view-url
|
|
840 @item v
|
|
841 This shows the URL of the current document in the minibuffer.
|
|
842 @kindex V
|
|
843 @findex w3-view-this-url
|
|
844 @item V
|
|
845 This shows the URL of the hypertext link under point in the minibuffer.
|
|
846 If there is not a hypertext link under point, then it shows the type of
|
|
847 form entry area under point. If there is no form entry area under
|
|
848 point, then it shows the inlined image's URL that is under point, if
|
|
849 any.
|
|
850 @kindex i
|
|
851 @findex w3-document-information
|
|
852 @item i
|
|
853 Shows miscellaneous information about the currently displayed document.
|
|
854 This includes the URL, the last modified date, MIME headers, the HTTP
|
|
855 response code, and any relationships to other documents. Any security
|
|
856 information is also displayed.
|
|
857 @kindex I
|
|
858 @findex w3-document-information-this-url
|
|
859 @item I
|
|
860 Shows information about the URL at point.
|
|
861 @kindex s
|
|
862 @findex w3-source-document
|
|
863 @item s
|
|
864 This shows the HTML source of the current document in a separate buffer.
|
|
865 The buffer's name is based on the document's URL.
|
|
866 @kindex S
|
|
867 @findex w3-source-document-at-point
|
|
868 @item S
|
|
869 Shows the HTML source of the hypertext link under point in a separate
|
|
870 buffer. The buffer's name is based on the document's URL.
|
|
871 @kindex k
|
|
872 @findex w3-save-url
|
|
873 @item k
|
|
874 This stores the current document's URL in the kill ring, and also in the
|
|
875 current window-system's clipboard, if possible.
|
|
876 @kindex K
|
|
877 @findex w3-save-this-url
|
|
878 @item K
|
|
879 Stores the URL of the document under point in the kill ring, and also in
|
|
880 the current window-system's clipboard, if possible.
|
|
881 @end table
|
|
882 @node Action, Miscellaneous, Information, Basic Usage
|
|
883 @section Action
|
|
884 First, here are the keys and functions that bring up a new hypertext
|
|
885 page, usually creating a new buffer.
|
|
886 @table @kbd
|
0
|
887 @kindex return
|
|
888 @findex w3-follow-link
|
|
889 @item return
|
|
890 Pressing return when over a hyperlink attempts to follow the link
|
|
891 under the cursor. With a prefix argument (@kbd{C-u}), this forces the
|
|
892 file to be saved to disk instead of being passed off to other viewers
|
70
|
893 or being parsed as HTML.
|
0
|
894
|
70
|
895 Pressing return when over a form input field will prompt in the
|
0
|
896 minibuffer for the data to insert into the input field. Type checking
|
|
897 is done, and the data is only entered into the form when data of the
|
|
898 correct type is entered (ie: cannot enter 44 for 'date' field, etc).
|
|
899
|
|
900 @kindex Middle Mouse Button
|
|
901 @findex w3-follow-mouse
|
|
902 @item Middle Mouse Button
|
|
903 Attempt to follow a hypertext link under the mouse cursor. Clicking on
|
|
904 a form input field will prompt in the minibuffer for the data to insert
|
|
905 into the input field. Type checking is done, and the data is only
|
|
906 entered into the form when data of the correct type is entered (ie:
|
|
907 cannot enter 44 for 'date' field, etc).
|
|
908
|
|
909 @kindex Control Middle Mouse Button
|
|
910 @kindex Meta return
|
|
911 @findex w3-follow-inlined-image
|
|
912 @item Control Middle Mouse Button, Meta return
|
|
913 Tries to retrieve the inlined image that is under point. It ignores any
|
|
914 form entry areas or hyperlinks, and blindly follows any inlined image.
|
|
915 Useful for seeing images that are meant to be used as hyperlinks when
|
|
916 not on a terminal capable of displaying graphics.
|
|
917
|
|
918 @kindex p
|
|
919 @findex w3-print-this-url
|
|
920 @item p
|
|
921 Prints out the current buffer in a variety of formats, including
|
70
|
922 PostScript, HTML source, or formatted text.
|
0
|
923 @kindex P
|
|
924 @findex w3-print-url-under-point
|
|
925 @item P
|
70
|
926 Prints out the URL under point in a variety of formats, including
|
|
927 PostScript, HTML source, or formatted text.
|
0
|
928 @kindex m
|
|
929 @findex w3-complete-link
|
|
930 @item m
|
|
931 Selects a destination from a list of all the hyperlinks in the current
|
|
932 buffer. Use @kbd{space} and @kbd{tab} to complete on the links.
|
|
933
|
|
934 @kindex r
|
|
935 @kindex g
|
|
936 @findex w3-reload-document
|
|
937 @item r, g
|
|
938 Reloads the current document. The position within the buffer remains
|
|
939 the same (unless the document has changed since it was last retrieved,
|
|
940 in which case it should be relatively close). This causes an
|
|
941 unconditional reload from the remote server - the locally cached copy is
|
|
942 not consulted.
|
|
943 @kindex C-o
|
|
944 @findex w3-fetch
|
|
945 @item C-o
|
70
|
946 Prompts for a URL in the minibuffer, and attempts to fetch
|
|
947 it. If there are any errors, or Emacs-W3 cannot understand the type of link
|
0
|
948 requested, the errors are displayed in a hypertext buffer.
|
|
949 @kindex o
|
|
950 @findex w3-open-local
|
|
951 @vindex url-use-hypertext-dired
|
|
952 @item o
|
|
953 Opens a local file, interactively. This prompts for a local file name
|
|
954 to open. The file must exist, and may be a directory. If the requested
|
|
955 file is a directory and @code{url-use-hypertext-dired} is @code{nil},
|
70
|
956 then a dired-mode buffer is displayed. If non@code{nil}, then Emacs-W3
|
0
|
957 automatically generates a hypertext listing of the directory. The
|
|
958 hypertext mode is the default, so that all the keys and functions remain
|
|
959 the same.
|
|
960
|
|
961 @kindex M-s
|
70
|
962 @findex w3-search
|
0
|
963 @item M-s
|
70
|
964 Perform a search, if this is a searchable index. Searching requires a
|
|
965 server - Emacs-W3 can not do local file searching, as there are too many
|
|
966 possible types of searches people could want to do. Generally, the only
|
|
967 URL types that allow searching are HTTP, gopher, and X-EXEC.
|
0
|
968 @kindex Hv
|
|
969 @findex w3-show-history-list
|
|
970 @vindex w3-keep-history
|
|
971 @item Hv
|
70
|
972 If @code{url-keep-history} is non-@code{nil}, then Emacs-W3 keeps track
|
|
973 of all the URLs visited in an Emacs session. This function takes all
|
0
|
974 the links that are in that internal list, and formats them as hypertext
|
|
975 links in a list.
|
|
976 @end table
|
|
977
|
|
978 @cindex Buffer movement
|
70
|
979 And here are the commands to move around between Emacs-W3 buffers:
|
0
|
980
|
|
981 @table @kbd
|
|
982 @kindex l
|
|
983 @findex w3-goto-last-buffer
|
|
984 @item l
|
|
985 Goes to the last WWW buffer seen.
|
|
986 @kindex q
|
|
987 @findex w3-quit
|
|
988 @item q
|
|
989 Quits WWW mode. This kills the current buffer and goes to the most
|
|
990 recently visited buffer.
|
|
991 @kindex Q
|
|
992 @findex w3-leave-buffer
|
|
993 @item u
|
|
994 This is similar to w3-quit, but the buffer is not killed, it is moved to
|
|
995 the bottom of the buffer list (so it is the least likely to show up as
|
|
996 the default with switch-to-buffer). This is different from
|
|
997 @code{w3-goto-last-buffer} in that it does not return to the last WWW
|
|
998 page visited - it is the same as using @code{switch-to-buffer} - the
|
|
999 buffer left in the window is fairly random.
|
|
1000 @kindex HB
|
|
1001 @kindex B
|
|
1002 @findex w3-backward-in-history
|
|
1003 @item HB, B
|
|
1004 Takes one step back along the path in the current history. Has no
|
|
1005 effect if at the beginning of the session history.
|
|
1006 @kindex HF
|
|
1007 @kindex F
|
|
1008 @findex w3-forward-in-history
|
|
1009 @item HF, F
|
|
1010 Takes one step forward along the path in the current history. Has no
|
|
1011 effect if at the end of the session history.
|
|
1012 @end table
|
|
1013
|
70
|
1014 @node Miscellaneous, , Action, Basic Usage
|
0
|
1015 @section Miscellaneous
|
|
1016 @table @kbd
|
|
1017 @kindex M-m
|
|
1018 @findex w3-mail-current-document
|
|
1019 @item M-m
|
|
1020 Mails the current document to someone. Choose from several different
|
70
|
1021 formats to mail: formatted text, HTML source, PostScript, or LaTeX source.
|
|
1022 When the HTML source is mailed, then an appropriate <base> tag is inserted
|
0
|
1023 at the beginning of the document so that relative links may be followed
|
|
1024 correctly by whoever receives the mail.
|
|
1025 @kindex M-M
|
|
1026 @findex w3-mail-document-under-point
|
|
1027 @item M-M
|
|
1028 Mails the document pointed to by the hypertext link under point to someone.
|
70
|
1029 Choose from several different formats to mail: formatted text, HTML source,
|
|
1030 PostScript, or LaTeX source. When the HTML source is mailed, then an
|
0
|
1031 appropriate <base> tag is inserted at the beginning of the document so that
|
|
1032 relative links may be followed correctly by whoever receives the
|
|
1033 mail.
|
|
1034 @kindex p
|
|
1035 @findex w3-print-this-url
|
|
1036 @item p
|
|
1037 Prints the current document. Choose from several different formats to
|
70
|
1038 print: formatted text, HTML source, PostScript (with ps-print), or by using
|
0
|
1039 LaTeX and dvips).
|
|
1040
|
|
1041 @findex lpr-buffer
|
|
1042 @vindex lpr-command
|
|
1043 @vindex lpr-switches
|
|
1044 When the formatted text is printed, the normal @code{lpr-buffer} function
|
|
1045 is called, and the variables @code{lpr-command} and @code{lpr-switches}
|
|
1046 control how the document is printed.
|
|
1047
|
70
|
1048 When the HTML source is printed, then an appropriate <base> tag is
|
0
|
1049 inserted at the beginning of the document.
|
70
|
1050 @vindex w3-use-html2latex
|
|
1051 @vindex w3-html2latex-prog
|
|
1052 @vindex w3-html2latex-args
|
0
|
1053 @vindex w3-print-commnad
|
|
1054 @vindex w3-latex-docstyle
|
70
|
1055 When postscript is printed, then the HTML source of the document is
|
|
1056 converted into LaTeX source. If the variable @code{w3-use-html2latex}
|
|
1057 is non-@code{nil}, then the program specified by
|
|
1058 @code{w3-html2latex-prog} is run in a subprocess with the arguments in
|
|
1059 @code{w3-html2latex-args}. The @code{w3-html2latex-prog} must accept
|
|
1060 HTML source on its standard input and send the LaTeX output to standard
|
|
1061 output. If @code{w3-use-html2latex} is @code{nil}, then an Emacs Lisp
|
|
1062 function uses regular expressions to replace the HTML code with LaTeX
|
|
1063 markup. The variable @code{w3-latex-docstyle} controls how the document
|
|
1064 is laid out in this case, and postscript figures are printed as
|
|
1065 well.
|
0
|
1066 @kindex P
|
|
1067 @findex w3-print-url-under-point
|
|
1068 @item P
|
|
1069 Prints the document pointed to by the hypertext link under point.
|
|
1070 Please see the previous item for more information.
|
|
1071 @kindex M-x w3-insert-formatted-url
|
|
1072 @findex w3-insert-formatted-url
|
|
1073 @item M-x w3-insert-formatted-url
|
70
|
1074 Insert a fully formatted HTML link into another buffer. This gets the
|
|
1075 name and URL of either the current buffer, or, with a prefix arg, of the
|
0
|
1076 link under point, and construct the appropriate <a...>...</a> markup and
|
|
1077 insert it into the desired buffer.
|
|
1078 @kindex M-tab
|
|
1079 @findex w3-insert-this-url
|
|
1080 @item M-tab
|
70
|
1081 Inserts the URL of the current document into another buffer. Buffer is
|
|
1082 prompted for in the minibuffer. With prefix arg, uses the URL of the
|
0
|
1083 link under point.
|
|
1084 @kindex U
|
|
1085 @findex w3-use-links
|
|
1086 @item U
|
|
1087 Selects one of the <LINK> tags from this document and fetch it. Links
|
|
1088 are attributes of a specific document, and can tell such things as who
|
|
1089 made the document, where a table of contents is located, etc.
|
|
1090
|
|
1091 Link tags specify relationships between documents in two ways. Normal
|
|
1092 (forward) relationships (where the link has a REL="xxx" attribute), and
|
|
1093 reverse relationships (where the link has a REV="xxx" attribute). This
|
|
1094 first asks what type of link to follow (Normal or Reverse), then does
|
|
1095 a @code{completing-read} on only the links that have that type of
|
|
1096 relationship.
|
|
1097 @end table
|
|
1098
|
70
|
1099 @node Compatibility, , , Top
|
|
1100 @comment node-name, next, previous, up
|
0
|
1101 @chapter Compatibility with other Browsers
|
70
|
1102 Due to the popularity of several other browsers, Emacs-W3 offers an easy
|
0
|
1103 transition to its much better way of life. This ranges from being able
|
|
1104 to share the same preferences files and disk cache to actually emulating
|
|
1105 the keybindings used in other browsers.
|
|
1106
|
70
|
1107 @ifinfo
|
0
|
1108 @menu
|
70
|
1109 * Emulation:: Emacs-W3 can emulate the keybindings and
|
0
|
1110 other behaviours of other browsers.
|
|
1111 * Hotlist Handling:: A hotlist is an easy way to keep track of
|
|
1112 interesting Web pages without having to
|
|
1113 remember the exact path to get there.
|
|
1114 * Session History:: Keeping a history of documents visited
|
|
1115 in one Emacs sessions allows the use of
|
|
1116 'forward' and 'back' buttons easily.
|
70
|
1117 * Global History:: Keeping a history of all the places ever
|
0
|
1118 visited on the web.
|
70
|
1119 * Annotations:: Annotations allow comments on other
|
|
1120 people's Web documents without needing
|
|
1121 to change the document.
|
0
|
1122 @end menu
|
70
|
1123 @end ifinfo
|
0
|
1124 @node Emulation, Hotlist Handling, Compatibility, Compatibility
|
|
1125 @section Emulation
|
70
|
1126 :: WORK :: Document lynx emulation
|
|
1127 :: WORK :: Document netscape emulation
|
0
|
1128 @cindex Browser emulation
|
|
1129 @cindex Emulation of other browsers
|
|
1130 @cindex Netscape emulation
|
|
1131 @cindex Lynx emulation
|
|
1132 @findex turn-on-netscape-emulation
|
|
1133 @findex turn-on-lynx-emulation
|
|
1134 @findex w3-netscape-emulation-minor-mode
|
|
1135 @findex w3-lynx-emulation-minor-mode
|
|
1136 @vindex w3-mode-hook
|
26
|
1137
|
0
|
1138 @node Hotlist Handling, Session History, Emulation, Compatibility
|
|
1139 @section Hotlist Handling
|
|
1140 :: WORK :: Document that it supports different types of hotlist formats
|
|
1141 :: WORK :: Make sure everything hotlist related can be accessed via 'h'
|
|
1142 In order to avoid having to traverse many documents to get to the same
|
70
|
1143 document over and over, Emacs-W3 supports a ``hotlist'' like Mosaic. This is
|
|
1144 a file that contains URLs and aliases. Hotlists allow quick access to any
|
0
|
1145 document in the Web, providing it has been visited and added to the hotlist.
|
|
1146 The variable @code{w3-hotlist-file} determines where this information
|
|
1147 is saved. The structure of the file is compatible with Mosaic's
|
|
1148 hotlist file, so this defaults to @file{~/.mosaic-hotlist-default}.
|
|
1149
|
|
1150 Hotlist commands are:
|
|
1151 @table @kbd
|
|
1152 @kindex hi
|
|
1153 @findex w3-hotlist-add-document
|
|
1154 @vindex w3-hotlist-file
|
|
1155 @item a
|
|
1156 Adds the current document to the hotlist, with the buffer name as its
|
|
1157 identifier. Modifies the file specified by @code{w3-hotlist-file}. If
|
70
|
1158 this is given a @var{prefix-argument} (via @kbd{C-u}), the title is
|
|
1159 prompted for instead of automatically defaulting to the
|
|
1160 document title.
|
0
|
1161
|
|
1162 @findex w3-hotlist-refresh
|
|
1163 @vindex w3-hotlist-file
|
|
1164 @kindex hR
|
|
1165 @item hR
|
|
1166 This rereads the default hostlist file specified by
|
|
1167 @code{w3-hotlist-file}.
|
|
1168 @findex w3-hotlist-delete
|
|
1169 @vindex w3-hotlist-file
|
|
1170 @kindex hd
|
|
1171 @item d
|
|
1172 Prompts for the alias of the entry to kill. Pressing the spacebar or
|
|
1173 tab will list out partial completions. The internal representation of
|
|
1174 the hotlist and the file specified by @code{w3-hotlist-file} are
|
|
1175 updated.
|
|
1176 @item hr
|
|
1177 @kindex hr
|
|
1178 @findex w3-hotlist-rename-entry
|
|
1179 @vindex w3-hotlist-file
|
|
1180 Some hotlist item names can be very unwieldy (`Mosaic for X level 2 fill
|
|
1181 out form support'), or uninformative (`Index of /'). Prompts for the
|
|
1182 item to rename in the minibuffer---use the spacebar or tab key for
|
|
1183 completion. After having chosen an item to rename, prompts for a new
|
|
1184 title until a unique title is entered. Modifies the file specified by
|
|
1185 @code{w3-hotlist-file}.
|
|
1186
|
|
1187 @item hu
|
|
1188 @kindex hu
|
|
1189 @findex w3-use-hotlist
|
|
1190 Prompts for the alias to jump to. Pressing the @key{spacebar} or
|
|
1191 @key{tab} key shows partial completions.
|
|
1192
|
|
1193 @item hv
|
|
1194 @kindex hv
|
|
1195 @findex w3-show-hotlist
|
70
|
1196 Converts the hotlist into HTML and displays it.
|
0
|
1197 @item ha
|
|
1198 @kindex ha
|
|
1199 @findex w3-hotlist-apropos
|
|
1200 Shows the hotlist entries matching a regular expression.
|
|
1201 @item hA
|
|
1202 @kindex hA
|
|
1203 @findex w3-hotlist-append
|
|
1204 Appends another hotlist file to the one currently in memory.
|
|
1205 @end table
|
|
1206 @node Session History, Global History, Hotlist Handling, Compatibility
|
|
1207 @section History
|
|
1208 @cindex History Lists
|
70
|
1209 Almost all web browsers keep track of the URLs followed from a page, so
|
0
|
1210 that it can provide @b{forward} and @b{back} buttons to keep a @i{path}
|
70
|
1211 of URLs that can be traversed easily.
|
0
|
1212 @vindex url-keep-history
|
70
|
1213 If the variable @code{url-keep-history} is @code{t}, then Emacs-W3
|
|
1214 keeps a list of all the URLs visited in a session.
|
0
|
1215 @findex w3-show-history
|
70
|
1216 To view a listing of the history for this session of Emacs-W3, use
|
|
1217 @code{M-x w3-show-history} from any buffer, and Emacs-W3 generates an
|
|
1218 HTML document showing every URL visited since Emacs started (or
|
0
|
1219 cleared the history list), and then format it. Any of the links can
|
|
1220 be chosen and followed to the original document. To clear the history
|
|
1221 list, choose 'Clear History' from the 'Options' menu.
|
|
1222
|
|
1223 @findex w3-forward-in-history
|
|
1224 @findex w3-backward-in-history
|
|
1225 @findex w3-fetch
|
|
1226 Another twist on the history list mechanism is the fact that all
|
70
|
1227 Emacs-W3 buffers remember what URL, buffer, and buffer position of the
|
0
|
1228 last document, and also keeps track of the next location jumped @b{to}
|
|
1229 from that buffer. This means that the user can go forwards and
|
|
1230 backwards very easily along the path taken to reach a particular
|
|
1231 document. To go forward, use the function @code{w3-forward-in-history},
|
|
1232 to go backward, use the function @code{w3-backward-in-history}.
|
|
1233
|
70
|
1234 @node Global History, Annotations, Session History, Compatibility
|
0
|
1235 @section Global History
|
|
1236 :: WORK :: Document that the global history can have diff. formats
|
70
|
1237 Most web browsers also support the idea of a ``history'' of URLs the
|
0
|
1238 user has visited, and it displays them in a different style than normal
|
70
|
1239 URLs.
|
0
|
1240
|
|
1241 @vindex url-keep-history
|
|
1242 @vindex url-global-history-file
|
70
|
1243 If the variable @code{url-keep-history} is @code{t}, then Emacs-W3
|
|
1244 keeps a list of all the URLs visited in a session. The file is
|
0
|
1245 automatically written to disk when exiting emacs. The list is added to
|
|
1246 those already in the file specified by @code{url-global-history-file},
|
|
1247 which defaults to @file{~/.mosaic-global-history}.
|
|
1248
|
70
|
1249 If any URL in the list is found in the file, it is not saved, but new
|
0
|
1250 ones are added at the end of the file.
|
|
1251
|
|
1252 The function that saves the global history list is smart enough to
|
70
|
1253 notice what style of history list is being used (Netscape, Emacs-W3, or
|
0
|
1254 XMosaic), and writes out the new additions appropriately.
|
|
1255
|
|
1256 @cindex Completion of URLs
|
|
1257 @cindex Usefulness of global history
|
70
|
1258 One of the nice things about keeping a global history files is that Emacs-W3
|
0
|
1259 can use it as a completion table. When doing @kbd{M-x w3-fetch}, pressing
|
|
1260 the @kbd{tab} or @kbd{space} key will show all completions for a
|
70
|
1261 partial URL. This is very useful, especially for very long URLs that
|
0
|
1262 are not in a hotlist, or for seeing all the pages from a particular web
|
|
1263 site before choosing which to retrieve.
|
|
1264
|
70
|
1265 @node Annotations, Group Annotations, Global History, Compatibility
|
|
1266 @section Annotations
|
|
1267 @cindex Annotations
|
|
1268 Mosaic can @i{annotate} documents. Annotations are comments about the
|
|
1269 current document, and these annotations appear as a link to the comments
|
|
1270 at the end of the document. The original file is not changed.
|
|
1271
|
|
1272 @ifinfo
|
|
1273 @menu
|
|
1274 * Group Annotations:: Annotations accessible by everyone
|
|
1275 * Personal Annotations:: Private annotations only accessible
|
|
1276 to the user who created them
|
|
1277 @end menu
|
|
1278 @end ifinfo
|
|
1279 @node Group Annotations, Personal Annotations, Annotations, Annotations
|
|
1280 @subsection Group Annotations
|
|
1281 @cindex Group Annotations
|
|
1282 @b{@i{NOTE}}: The group annotation experiment has been terminated. It
|
|
1283 will be replaced with support on the server side for adding <LINK> tags
|
|
1284 to documents.
|
0
|
1285
|
70
|
1286 @node Personal Annotations, , Group Annotations, Annotations
|
|
1287 @subsection Personal Annotations
|
|
1288 @cindex Personal Annotations
|
|
1289 @vindex w3-personal-annotation-directory
|
|
1290 Emacs-W3 looks in the directory specified by
|
|
1291 @code{w3-personal-annotation-directory} (defaults to
|
|
1292 @file{~/.mosaic-personal-annotations}). Any personal annotations for a
|
|
1293 document are automatically appended when it is retrieved.
|
22
|
1294
|
70
|
1295 :: WORK :: Document the new 'a' prefix keymap
|
|
1296 :: WORK :: Tell where the annotations are stored
|
|
1297
|
|
1298 @findex w3-add-personal-annotation
|
|
1299 @vindex w3-annotation-mode
|
|
1300 To add a new personal annotation, type @kbd{M-x
|
|
1301 w3-add-personal-annotation}. This creates a new buffer, in the mode
|
|
1302 specified by @code{w3-annotation-mode}. This defaults to
|
|
1303 @code{html-mode}. If this variable is @code{nil}, or it points to an
|
|
1304 undefined function, then @code{default-major-mode} is consulted.
|
|
1305
|
|
1306 A minor mode redefines @kbd{C-c C-c} to complete the annotation and
|
|
1307 store it on the local disk.
|
0
|
1308
|
70
|
1309 @findex w3-delete-personal-annotation
|
|
1310 To delete a personal annotation, it must be the current page. Once
|
|
1311 reading the annotation, @kbd{M-x w3-delete-personal-annotation} will
|
|
1312 remove it. This deletes the file containing the annotation, and any
|
|
1313 references to it in the annotation log file.
|
|
1314
|
|
1315 Editing personal annotations is not yet supported.
|
22
|
1316
|
70
|
1317 @node Controlling Formatting, General Formatting, Top, Top
|
|
1318 @comment node-name, next, previous, up
|
|
1319 @chapter Controlling Formatting
|
|
1320 @cindex Customizing formatting
|
|
1321 @cindex Specifying Fonts
|
|
1322 @cindex Fonts
|
|
1323 @cindex Colors
|
|
1324 How Emacs-W3 formats a document is very customizable. How a document is
|
|
1325 displayed depends on whether the user is on a terminal
|
|
1326 capable of graphics and a few variables.
|
0
|
1327
|
70
|
1328 The following sections describe in more detail how to change the
|
|
1329 formatting of a document.
|
0
|
1330
|
70
|
1331 @ifinfo
|
|
1332 @menu
|
|
1333 * General Formatting:: Changing general things about a
|
|
1334 document.
|
|
1335 * Character based terminals:: Changing how a document is
|
|
1336 displayed on a non-graphics
|
|
1337 terminal (vt100, etc.@:) or if
|
|
1338 @code{w3-delimit-emphasis} is @code{t}.
|
|
1339 * Graphics workstations:: Changing how a document is
|
|
1340 displayed on a graphics terminal
|
|
1341 (Xwindows, Windows, NeXTstep,
|
|
1342 OS/2, etc.)
|
|
1343 * Inlined images:: How to specify how Emacs-W3
|
|
1344 handles inlined images/mpegs.
|
|
1345 @end menu
|
|
1346 @end ifinfo
|
|
1347 @node General Formatting, Character based terminals, Controlling Formatting, Controlling Formatting
|
|
1348 @section General formatting conventions
|
|
1349 @iftex
|
|
1350 @heading Setting the fill column
|
|
1351 @end iftex
|
|
1352 @ifinfo
|
|
1353 @center --------------------
|
|
1354 @center Setting the fill column
|
|
1355 @center --------------------
|
|
1356 @end ifinfo
|
|
1357 @vindex fill-column
|
|
1358 @vindex w3-right-border
|
|
1359 Each time a document is parsed, the @code{fill-column} is recalculated
|
|
1360 using @code{window-width} and @code{w3-right-border}.
|
|
1361 @code{w3-right-border} is an integer specifying how much room at the
|
|
1362 right edge of the screen to leave blank. The @code{fill-column} is set
|
|
1363 to @code{(- (window-width) @code{w3-right-border})}.
|
|
1364 @iftex
|
|
1365 @heading Formatting of hypertext links
|
|
1366 @end iftex
|
|
1367 @ifinfo
|
|
1368 @center --------------------
|
|
1369 @center Formatting of hypertext links
|
|
1370 @center --------------------
|
|
1371 @end ifinfo
|
|
1372 @vindex w3-delimit-links
|
|
1373 @vindex w3-link-start-delimiter
|
|
1374 @vindex w3-link-end-delimiter
|
|
1375 If the variable @code{w3-delimit-links} is non-@code{nil} (the default
|
|
1376 for text-terminals), then hypertext links are surrounded by text
|
|
1377 specified by the user. The variables @code{w3-link-start-delimiter} and
|
|
1378 @code{w3-link-end-delimiter} control what text is at the start and end
|
|
1379 of a hypertext link. These variables are cons-pairs of two
|
|
1380 strings.
|
26
|
1381
|
70
|
1382 If a link has never been visited before (it is not in the @i{global
|
|
1383 history}), then the @code{car} of these variables is inserted at the
|
|
1384 start and end of the link. If the link has been visited before, then
|
|
1385 the @code{cdr} is inserted. So, links look like:
|
22
|
1386
|
70
|
1387 @example
|
|
1388 [[This is a hypertext link]] that has never been visited.
|
|
1389 @{@{This one, however@}@} has been seen before at some point in time.
|
22
|
1390 @end example
|
|
1391
|
70
|
1392 @iftex
|
|
1393 @heading Formatting of lists
|
|
1394 @end iftex
|
|
1395 @ifinfo
|
|
1396 @center --------------------
|
|
1397 @center Formatting of lists
|
|
1398 @center --------------------
|
|
1399 @end ifinfo
|
|
1400 @cindex Indentation
|
|
1401 @vindex w3-indent-level
|
|
1402 There are several different ways to control the formatting of lists.
|
|
1403 The most obvious is how deeply they are indented relative to the rest of
|
|
1404 the paragraphs in the document. To control this, set the
|
|
1405 variable @code{w3-indent-level}. This is the number of spaces to
|
|
1406 indent lists and other items requiring special margins.
|
22
|
1407
|
70
|
1408 @vindex w3-list-chars-assoc
|
|
1409 Another thing that is easy to change about lists is the bullet character
|
|
1410 put at the front of each list item. This is controlled by the variable
|
|
1411 @code{w3-list-chars-assoc}, which is an assoc list. This is a list of
|
|
1412 lists, each sublist describing what to put at the start of each
|
|
1413 particular list type. The @code{car} of this list should be a symbol
|
|
1414 (@b{not} a string) representing the type of list (e.g., @samp{ul}).
|
|
1415 The rest of the list should consist of strings to insert at certain
|
|
1416 levels of lists. The @code{n}th element of this list is used when the
|
|
1417 list is nested @code{n + 1} levels. If the list is not long enough to
|
|
1418 define a string for a certain nesting level, then it defaults to either
|
|
1419 a '*' or a '.'.
|
|
1420 @iftex
|
|
1421 @heading Formatting of directory listings
|
|
1422 @end iftex
|
|
1423 @ifinfo
|
|
1424 @center --------------------
|
|
1425 @center Formatting of directory listings
|
|
1426 @center --------------------
|
|
1427 @end ifinfo
|
|
1428 @vindex url-use-hypertext-dired
|
|
1429 When Emacs-W3 encounters a link to a directory (whether by local file access
|
|
1430 or via FTP), it can either create an HTML document on the fly, or use
|
|
1431 @code{dired-mode} to peruse the listing. The variable
|
|
1432 @code{url-use-hypertext-dired} controls this behavior.
|
0
|
1433
|
70
|
1434 If the value is @code{t}, Emacs-W3 uses @code{directory-files} to list them
|
|
1435 out and transform the directory into a hypertext document, then pass it
|
|
1436 through the parser like any other document.
|
22
|
1437
|
70
|
1438 If the value is @code{nil}, just pass the directory off to dired using
|
|
1439 @code{find-file}. Using this option loses all the hypertext abilities
|
|
1440 of Emacs-W3, and the users is unable to load documents in the directory
|
|
1441 directly into Emacs-W3 by clicking with the mouse, etc.
|
22
|
1442
|
70
|
1443 @ignore
|
|
1444 @cindex Downloading multiple files
|
|
1445 @cindex FTP'ing multiple files
|
|
1446 @vindex url-forms-based-ftp
|
|
1447 A new option in the 2.2 series is @code{url-forms-based-ftp} - this is
|
|
1448 still in the experimental stages, but can be useful. If
|
|
1449 @code{url-forms-based-ftp} is @code{t}, then all automatically generated
|
|
1450 directory listings will have a form mixed in with the file listing.
|
|
1451 Each file will have a checkbox next to it, and a row of buttons at the
|
|
1452 bottom of the screen. Selecting one of the buttons at the bottom of the
|
|
1453 screen will take the designated action on all the marked files.
|
|
1454 Currently, only deleting and copying marked files is supported.
|
|
1455 @end ignore
|
|
1456 @iftex
|
|
1457 @heading Formatting of gopher directories
|
|
1458 @end iftex
|
|
1459 @ifinfo
|
|
1460 @center --------------------
|
|
1461 @center Formatting of gopher directories
|
|
1462 @center --------------------
|
|
1463 @end ifinfo
|
|
1464 @vindex w3-use-hypertext-gopher
|
|
1465 @cindex Gopher+
|
|
1466 @cindex ASK blocks
|
|
1467 There are two different ways of viewing gopher links. The built-in
|
|
1468 support that converts gopher directories into HTML, or the
|
|
1469 @file{gopher.el} package by Scott Snyder (@i{snyder@@fnald0.fnal.gov}).
|
|
1470 The variable that controls this is @code{w3-use-hypertext-gopher}. If
|
|
1471 set to @code{nil}, then @file{gopher.el} is used. Any other value
|
|
1472 causes Emacs-W3 to use its internal gopher support. If using
|
|
1473 @file{gopher.el}, all the hypertext capabilities of Emacs-W3 are lost.
|
|
1474 All the functionality of @file{gopher.el} is now available in the
|
|
1475 hypertext version, and the hypertext version supports Gopher+ and ASK
|
|
1476 blocks.
|
22
|
1477
|
70
|
1478 @vindex w3-gopher-labels
|
|
1479 The main way to control the display of gopher directories is by the
|
|
1480 variable @code{w3-gopher-labels}. This variable controls the text that
|
|
1481 is inserted at the front of each item. This is an assoc list of gopher
|
|
1482 types (as one character strings), and a string to insert just after the
|
|
1483 list item. All the normal gopher types are defined. Entries should be
|
|
1484 similar to: @samp{("0" . "(TXT)")}. I have tried to keep all the tags
|
|
1485 to three characters plus two parentheses.
|
|
1486 @iftex
|
|
1487 @heading Creating a horizontal rule
|
|
1488 @end iftex
|
|
1489 @ifinfo
|
|
1490 @center --------------------
|
|
1491 @center Creating a horizontal rule
|
|
1492 @center --------------------
|
|
1493 @end ifinfo
|
|
1494 @vindex w3-horizontal-rule-char
|
|
1495 Horizontal rules (@b{<HR>} tags in HTML[+]) are used to separate chunks
|
|
1496 of a document, and is meant to be rendered as a solid line across the
|
|
1497 page. Some terminals display characters differently, so the variable
|
|
1498 @code{w3-horizontal-rule-char} controls which character is used to draw a
|
|
1499 horizontal bar. This variable must be the ASCII value of the character,
|
|
1500 @b{not a string}. The variable is passed through make-string whenever a
|
|
1501 horizontal rule of a certain width is necessary.
|
22
|
1502
|
70
|
1503 @node Character based terminals, Graphics workstations, General Formatting, Controlling Formatting
|
|
1504 @section On character based terminals
|
|
1505 @vindex w3-delimit-emphasis
|
|
1506 On character based terminals, there is no easy way to show that a
|
|
1507 certain range of text is in bold or italics. If the variable
|
|
1508 @code{w3-delimit-emphasis} is non-@code{nil}, then Emacs-W3 can insert
|
|
1509 characters before and after character formatting commands in HTML
|
|
1510 documents. The defaul value of @code{w3-delimit-emphasis} is
|
|
1511 automatically set based on the type of window system and version of
|
|
1512 Emacs being used.
|
0
|
1513
|
70
|
1514 @vindex w3-header-chars-assoc
|
|
1515 :: WORK ::
|
|
1516
|
|
1517 @findex w3-upcase-region
|
|
1518 @code{w3-header-chars-assoc} is an assoc list of header tags and a list
|
|
1519 of formatting instructions. The @code{car} of the list is the level of
|
|
1520 the header (1--6). The rest of the list should contain three items.
|
|
1521 The first item is text to insert before the header. The second item is
|
|
1522 text to insert after the header. Both should have reserved characters
|
|
1523 converted to their HTML[+] entity definitions. The third item is a
|
|
1524 function to call on the area the header is in. This function is called
|
|
1525 with arguments specifying the start and ending character positions of
|
|
1526 the header. The starting point is always first. To convert a region to
|
|
1527 upper case, please use @code{w3-upcase-region} instead of
|
|
1528 @code{upcase-region}, so that entities are converted properly.
|
22
|
1529
|
70
|
1530 @node Graphics workstations, Inlined images, Character based terminals, Controlling Formatting
|
|
1531 @section With graphics workstations
|
|
1532 Starting with the first public release of version 2.3.0, all formatting
|
|
1533 is controlled by the use of stylesheets.
|
|
1534
|
|
1535 :: WORK :: Graphic workstation stuff - redo for stylesheets
|
0
|
1536
|
70
|
1537 @node Inlined images, , Graphics workstations, Controlling Formatting
|
|
1538 @cindex Inlined images
|
|
1539 @cindex Images
|
|
1540 @cindex Movies
|
|
1541 @cindex Inlined MPEGs
|
|
1542 @cindex MPEGs
|
|
1543 When running in Lucid Emacs 19.10 or XEmacs 19.11 and higher, Emacs-W3 can
|
|
1544 display inlined images and MPEG movies. There are several variables that
|
|
1545 control how and when the images are displayed.
|
22
|
1546
|
70
|
1547 @cindex Netpbm
|
|
1548 @cindex Pbmplus
|
|
1549 @vindex w3-graphic-converter-alist
|
|
1550 Since Lucid/XEmacs only natively understands XPixmaps and XBitmaps, GIFs
|
|
1551 and other image types must first be converted to one of these formats.
|
|
1552 To do this, the @b{netpbm utilities}@footnote{Available via anonymous
|
|
1553 ftp from ftp.x.org:/R5contrib/netpbm-1mar1994.tar.gz, and most large ftp
|
|
1554 sites.} programs are normally used. This is a suite of freeware image
|
|
1555 conversion tools. The variable @code{w3-graphic-converter-alist}
|
|
1556 controls how each image type is converted. This is an assoc list, keyed
|
|
1557 on the MIME content-type. The @code{car} is the content-type, and the
|
|
1558 @code{cdr} is a string suitable to pass to @code{format}. A %s in this
|
|
1559 string will be replaced with a converter from the ppm image format to an
|
|
1560 XPixmap (or XBitmap, if being run on a monochrome display). By default,
|
|
1561 the Emacs-W3 browser has converters for:
|
0
|
1562
|
|
1563 @enumerate
|
|
1564 @item
|
70
|
1565 image/x-xbitmap
|
|
1566 @item
|
|
1567 image/xbitmap
|
|
1568 @item
|
|
1569 image/xbm
|
|
1570 @item
|
|
1571 image/gif
|
0
|
1572 @item
|
70
|
1573 image/jpeg
|
|
1574 @item
|
|
1575 image/x-fax
|
|
1576 @item
|
|
1577 image/x-raster
|
|
1578 @item
|
|
1579 image/windowdump
|
0
|
1580 @item
|
70
|
1581 image/x-icon
|
|
1582 @item
|
|
1583 image/portable-graymap
|
|
1584 @item
|
|
1585 image/portable-pixmap
|
|
1586 @item
|
|
1587 image/x-pixmap
|
0
|
1588 @item
|
70
|
1589 image/x-xpixmap
|
|
1590 @item
|
|
1591 image/pict
|
|
1592 @item
|
|
1593 image/x-macpaint
|
|
1594 @item
|
|
1595 image/x-targa
|
|
1596 @item
|
|
1597 image/tiff
|
0
|
1598 @end enumerate
|
|
1599
|
70
|
1600 @vindex w3-color-max-blue
|
|
1601 @vindex w3-color-max-green
|
|
1602 @vindex w3-color-max-red
|
|
1603 @vindex w3-color-use-reducing
|
|
1604 @vindex w3-color-filter
|
|
1605 Since most displays are (sadly) not 24-bit, Emacs-W3 can automatically
|
|
1606 dither an image, so that it does not fill up the application' colormap too
|
|
1607 quickly. If @code{w3-color-use-reducing} is non-@code{nil}, then the
|
|
1608 images will use reduced colors. If @code{w3-color-filter} is @code{eq} to
|
|
1609 @code{'ppmquant}, then the ppmquant program will be used. If @code{eq} to
|
|
1610 @code{'ppmdither}, then the ppmdither program will be used. The ppmdither
|
|
1611 program tends to give better results. The values of
|
|
1612 @code{w3-color-max-red}, @code{w3-color-max-blue}, and
|
|
1613 @code{w3-color-max-green} control how many colors the inlined images can
|
|
1614 use. If using ppmquant, then the product of these three variables is used
|
|
1615 as the maximum number of colors per image. If using ppmdither, then only
|
|
1616 the set number of color cells can be allocated per image. See the man
|
|
1617 pages for ppmdither and ppmquant for more information on how the dithering
|
|
1618 is actually done. @code{w3-color-filter} may also be a string, specifying
|
|
1619 exactly what external filter to use. An example is: @samp{ppmquant -fs
|
|
1620 -map ~/pixmaps/colormap.ppm}.
|
22
|
1621
|
70
|
1622 @cindex MPEGs
|
|
1623 @cindex Inlined animations
|
|
1624 When running in XEmacs 19.11 or XEmacs 19.12, Emacs-W3 can insert an
|
|
1625 MPEG movie in the middle of a buffer.
|
22
|
1626
|
70
|
1627 :: WORK :: Need a pointer to the new EMBED Internet Draft ::
|
26
|
1628
|
70
|
1629 The basic syntax is:
|
24
|
1630 @example
|
70
|
1631 <embed href="somevideo.mpg" type="video/mpeg">
|
24
|
1632 @end example
|
|
1633
|
70
|
1634 @vindex w3-mpeg-args
|
|
1635 @vindex w3-mpeg-program
|
|
1636 This requires a special version of the standard @file{mpeg_play} mpeg
|
|
1637 player. Patches against the 2.0 version are available at
|
|
1638 ftp://ftp.cs.indiana.edu/pub/elisp/w3/mpeg_patch. The variable
|
|
1639 @code{w3-mpeg-program} should point to this executable, and
|
|
1640 @code{w3-mpeg-args} should be a list of any additional arguments to be
|
|
1641 passed to the player. By default, this includes @var{-loop}, so the
|
|
1642 mpeg plays continuously.
|
24
|
1643
|
70
|
1644 @cindex Delaying inlined images
|
|
1645 @cindex Delaying inlined animations
|
|
1646 @vindex w3-delay-image-loads
|
|
1647 @vindex w3-delay-mpeg-loads
|
|
1648 Because images and movies can take up an incredible amount of bandwidth,
|
|
1649 it is useful to be able to control whether they are loaded or not. By
|
|
1650 default, images and movies are loaded automatically, but the variables
|
|
1651 @code{w3-delay-image-loads} and @code{w3-delay-mpeg-loads} control this.
|
|
1652 If set to non-@code{nil}, then the images or movies are not
|
|
1653 loaded until explicitly requested by the user.
|
26
|
1654
|
70
|
1655 @cindex Loading delayed images
|
|
1656 @cindex Loading delayed movies
|
|
1657 @findex w3-load-delayed-images
|
|
1658 @findex w3-load-delayed-mpegs
|
|
1659 To load any delayed images, use the function
|
|
1660 @code{w3-load-delayed-images}. Its counterpart for delayed movies is
|
|
1661 @code{w3-load-delayed-mpegs}
|
22
|
1662
|
70
|
1663 @node MIME Support, Adding MIME types based on file extensions, , Top
|
0
|
1664 @chapter MIME Support
|
70
|
1665 MIME is an emerging standard for multimedia mail. It offers a very
|
0
|
1666 flexible typing mechanism. The type of a file or message is specified
|
|
1667 in two parts, separated by a '/'. The first part is the general
|
|
1668 category of the data (text, application, image, etc.). The second part
|
70
|
1669 is the specific type of data (postscript, gif, jpeg, etc.). So
|
|
1670 @samp{text/html} specifies an HTML document, whereas
|
0
|
1671 @samp{image/x-xwindowdump} specifies an image of an Xwindow taken with
|
|
1672 the @file{xwd} program.
|
|
1673
|
|
1674
|
70
|
1675 This typing allows much more flexibility in naming files. HTTP/1.0
|
0
|
1676 servers can now send back content-type headers in response to a request,
|
70
|
1677 and not have the client second-guess it based on file extensions. HTML
|
|
1678 files can now be named @file{something.gif} (not a great idea, but
|
0
|
1679 possible).
|
|
1680
|
70
|
1681 @ifinfo
|
0
|
1682 @menu
|
|
1683 * Adding MIME types based on file extensions:: How to map file
|
|
1684 extensions onto MIME
|
70
|
1685 types (e.g., @samp{.gif ->
|
|
1686 image/gif)}.
|
|
1687 * Specifying Viewers:: How to specify external and internal viewers
|
|
1688 for files that Emacs-W3 cannot handle natively.
|
0
|
1689 @end menu
|
70
|
1690 @end ifinfo
|
0
|
1691
|
|
1692 @node Adding MIME types based on file extensions, Specifying Viewers, MIME Support, MIME Support
|
|
1693 @section Adding MIME types based on file extensions
|
|
1694 @vindex mm-mime-extensions
|
|
1695 For some protocols however, it is still necessary to guess the content
|
|
1696 of a file based on the file extension. This type of guess-work should
|
70
|
1697 only be needed when accessing files via FTP, local file access, or old
|
|
1698 HTTP/0.9 servers.
|
0
|
1699
|
|
1700 Instead of specifying how to view things twice, once based on
|
|
1701 content-type and once based on the file extension, it is easier to map
|
|
1702 file extensions to MIME content-types. The variable that controls this
|
|
1703 is @code{mm-mime-extensions}.
|
|
1704
|
|
1705 This variable is an assoc list of file extensions and the corresponding
|
|
1706 MIME content-type. A sample entry looks like: @samp{(".movie"
|
|
1707 . "video/x-sgi-movie")} This makes all files that end in @file{.movie}
|
|
1708 (@file{foo.movie} and @file{bar.movie}) be interpreted as SGI animation
|
|
1709 files. If a content-type is defined for the document, then this is
|
|
1710 over-ridden. Regular expressions can @b{NOT} be used.
|
|
1711
|
|
1712 @cindex mime-types file
|
|
1713 @findex mm-parse-mimetypes
|
70
|
1714 Both Mosaic and the NCSA HTTP daemon rely on a separate file for mapping
|
|
1715 file extensions to MIME types. Instead of having the users of Emacs-W3
|
0
|
1716 duplicate this in lisp, this file can be parsed using the
|
|
1717 @code{url-parse-mimetypes} function. This function is called each time
|
|
1718 w3 is loaded. It tries to locate mimetype files in several places. If
|
|
1719 the environment variable @code{MIMETYPES} is nonempty, then this is
|
|
1720 assumed to specify a UNIX-like path of mimetype files (this is a colon
|
|
1721 separated string of pathnames). If the @code{MIMETYPES} environment
|
70
|
1722 variable is empty, then Emacs-W3 looks for these files:
|
0
|
1723
|
|
1724 @enumerate
|
|
1725 @item
|
|
1726 @file{~/.mime-types}
|
|
1727 @item
|
|
1728 @file{/etc/mime-types}
|
|
1729 @item
|
|
1730 @file{/usr/etc/mime-types}
|
|
1731 @item
|
|
1732 @file{/usr/local/etc/mime-types}
|
|
1733 @item
|
|
1734 @file{/usr/local/www/conf/mime-types}
|
|
1735 @end enumerate
|
|
1736
|
70
|
1737 Each line contains information for one http type. These types resemble
|
0
|
1738 MIME types. To add new ones, use subtypes beginning with x-, such as
|
|
1739 application/x-myprogram. Lines beginning with # are comment lines, and
|
|
1740 suitably ignored. Each line consists of:
|
|
1741
|
|
1742 type/subtype ext1 ext2 ... ext@var{n}
|
|
1743
|
|
1744 type/subtype is the MIME-like type of the document. ext* is any number
|
|
1745 of space-separated filename extensions which correspond to the MIME
|
|
1746 type.
|
|
1747
|
70
|
1748 @node Specifying Viewers, ,Adding MIME types based on file extensions, MIME Support
|
0
|
1749 @section Specifying Viewers
|
70
|
1750 Not all files look as they should when parsed as an HTML document
|
0
|
1751 (whitespace is stripped, paragraphs are reformatted, and lots of little
|
|
1752 changes that make the document look unrecognizable). Files may be
|
|
1753 passed to external programs or Emacs Lisp functions to be viewed.
|
|
1754
|
70
|
1755 Not all files can be viewed accurately from within an Emacs session (GIF
|
0
|
1756 files for example, or audio files). For this reason, the user can
|
|
1757 specify file "viewers" based on MIME content-types. This is done with
|
|
1758 a standard mailcap file. @xref{Mailcap Files}
|
|
1759
|
|
1760 @findex mm-add-mailcap-entry
|
|
1761 As an alternative, the function @code{mm-add-mailcap-entry} can also be
|
|
1762 used from an appropriate hook.@xref{Hooks} This functions takes three
|
70
|
1763 arguments, the major type ("@i{image}"), the minor type ("@i{gif}"), and
|
|
1764 an assoc list of information about the viewer. Please see the URL
|
0
|
1765 documentation for more specific information on what this assoc list
|
|
1766 should look like.
|
|
1767
|
70
|
1768 @node Security, Non-Unix Operating Systems, , Top
|
0
|
1769 @chapter Security
|
|
1770 @cindex Security
|
|
1771 @cindex Paranoia
|
|
1772 There are an increasing number of ways to authenticate a user to a web
|
70
|
1773 service. Emacs-W3 tries to support as many as possible. Emacs-W3
|
0
|
1774 currently supports:
|
|
1775
|
|
1776 @table @b
|
|
1777 @item Basic Authentication
|
|
1778 @cindex Security, Basic
|
|
1779 @cindex HTTP/1.0 Authentication
|
|
1780 @cindex Authentication, Basic
|
|
1781 The weakest authentication available, not recommended if serious
|
|
1782 security is necessary. This is simply a string that looks like
|
|
1783 @samp{user:password} that has been Base64 encoded, as defined in RFC
|
|
1784 1421.
|
|
1785 @item Digest Authentication
|
|
1786 @cindex Security, Digest
|
|
1787 @cindex HTTP/1.0 Authentication
|
|
1788 @cindex Authentication, Digest
|
|
1789 Jeffery L. Hostetler, John Franks, Philip Hallam-Baker, Ari Luotonen,
|
|
1790 Eric W. Sink, and Lawrence C. Stewart have an internet draft for a new
|
|
1791 authentication mechanism. For the complete specification, please see
|
|
1792 draft-ietf-http-digest-aa-01.txt in the nearest internet drafts
|
|
1793 archive@footnote{One is ftp://ds.internic.net/internet-drafts}.
|
|
1794 @item SSL Encryption
|
|
1795 @cindex HTTP/1.0 Authentication
|
|
1796 @cindex Secure Sockets Layer
|
|
1797 @cindex SSL
|
|
1798 @cindex Gag Puke Retch
|
|
1799 @cindex Exportability
|
|
1800 @cindex Export Restrictions
|
|
1801 SSL is the @code{Secure Sockets Layer} interface developed by Netscape
|
70
|
1802 Communications @footnote{http://www.netscape.com/}. Emacs-W3 supports
|
|
1803 HTTP transfers over an SSL encrypted channel, if the appropriate files
|
0
|
1804 have been installed.@xref{Installing SSL}
|
70
|
1805 @item PGP/PEM
|
|
1806 @cindex HTTP/1.0 Authentication
|
|
1807 @cindex Public Key Cryptography
|
|
1808 @cindex Authentication, PGP
|
|
1809 @cindex Authentication, PEM
|
|
1810 @cindex RIPEM
|
|
1811 @cindex Public Key Cryptography
|
|
1812 @cindex PGP
|
|
1813 @cindex Pretty Good Privacy
|
|
1814 @cindex Encryption
|
|
1815 @cindex Security
|
|
1816 @cindex ITAR must die
|
|
1817 @cindex Stupid export restrictions
|
|
1818 @cindex Support your local crypto-anarchist
|
|
1819 @cindex NSA freaks
|
|
1820 A few servers still support this method of authentication, but it has
|
|
1821 been superseded by SSL and Secure-HTTP.@xref{Using PGP/PEM}
|
0
|
1822 @end table
|
|
1823
|
70
|
1824 @node Non-Unix Operating Systems, VMS, Security, Top
|
0
|
1825 @chapter Non-Unix Operating Systems
|
|
1826 @cindex Non-Unix Operating Systems
|
70
|
1827 @ifinfo
|
0
|
1828 @menu
|
70
|
1829 * VMS:: The wonderful world of VAX|AXP-VMS!
|
|
1830 * OS/2:: The next-best thing to Unix.
|
|
1831 * MS-DOS:: The wonderful world of MS-DOG!
|
|
1832 * 32-Bit Windows:: Windows NT, Chicago/Windows 95.
|
|
1833 * Amiga:: The Amiga, for those who still love them.
|
0
|
1834 @end menu
|
70
|
1835 @end ifinfo
|
0
|
1836
|
|
1837 @node VMS, OS/2, Non-Unix Operating Systems, Non-Unix Operating Systems
|
|
1838 @section VMS
|
|
1839 @cindex VAX-VMS
|
|
1840 @cindex AXP-VMS
|
|
1841 @cindex Digital VMS
|
|
1842 @cindex VMS
|
|
1843 :: WORK :: VMS Specific instriuctions
|
|
1844
|
|
1845 @node OS/2, MS-DOS, VMS, Non-Unix Operating Systems
|
|
1846 @section OS/2
|
|
1847 @cindex OS/2
|
|
1848 @cindex Warp
|
|
1849 :: WORK :: OS/2 Specific instructions
|
|
1850
|
70
|
1851 @node MS-DOS, 32-Bit Windows, OS/2, Non-Unix Operating Systems
|
0
|
1852 @section MS-DOS
|
|
1853 @cindex MS-DOS
|
|
1854 @cindex Microsloth
|
|
1855 @cindex DOS
|
|
1856 @cindex MS-DOG
|
|
1857 :: WORK :: DOS Specific instructions
|
|
1858
|
70
|
1859 @node 32-Bit Windows, Amiga, MS-DOS, Non-Unix Operating Systems
|
|
1860 @section 32-Bit Windows
|
0
|
1861 @cindex Windows (32-Bit)
|
|
1862 @cindex 32-Bit Windows
|
|
1863 @cindex Microsloth
|
|
1864 @cindex Windows '95
|
|
1865 :: WORK :: 32bit Windows Specific instructions
|
|
1866
|
70
|
1867 @node Amiga, Advanced Features, 32-Bit Windows, Non-Unix Operating Systems
|
|
1868 @section Amiga
|
|
1869 @cindex Amiga
|
|
1870 @cindex Commodore
|
|
1871 :: WORK :: Amiga specific instructions
|
26
|
1872
|
70
|
1873 @node Advanced Features, Style Sheets, Amiga, Top
|
|
1874 @comment node-name, next, previous, up
|
0
|
1875 @chapter Advanced Features
|
|
1876
|
70
|
1877 @ifinfo
|
0
|
1878 @menu
|
70
|
1879 * Style Sheets:: Formatting control, the right way
|
|
1880 * Disk Caching:: Improving performance by using a local disk cache
|
|
1881 * Interfacing to Mail/News:: How to make VM understand hypertext links
|
|
1882 * Debugging HTML:: How to make Emacs-W3 display warnings about invalid
|
|
1883 HTML/HTML+ constructs.
|
|
1884 * Native WAIS Support:: How to make Emacs-W3 understand WAIS links without
|
|
1885 using a gateway.
|
|
1886 * Rating Links:: How to make Emacs-W3 put an 'interestingness' value
|
|
1887 next to each link.
|
|
1888 * Gopher Plus Support:: How Emacs-W3 makes use of the Gopher+ protocol.
|
|
1889 * Hooks:: Various hooks to use throughout Emacs-W3
|
|
1890 * Other Variables:: Miscellaneous variables that control the real
|
|
1891 guts of Emacs-W3.
|
0
|
1892 @end menu
|
70
|
1893 @end ifinfo
|
26
|
1894
|
70
|
1895 @node Style Sheets, Disk Caching, Advanced Features, Advanced Features
|
|
1896 @section Style Sheets
|
|
1897 @cindex Formatting control
|
|
1898 @cindex Style sheets
|
|
1899 @cindex Look and Feel
|
|
1900 @cindex Layout control
|
|
1901 @cindex Experimental style sheet mechanism
|
|
1902 Emacs-W3 currently supports the experimental style sheet mechanism
|
|
1903 proposed by H&kon W. Lie of the W3 Consortium. This allows for the
|
|
1904 author to specify what a document should look like, and yet allow the
|
|
1905 end user to override any of the stylistic changes. This allows for
|
|
1906 people with special needs (most notably the visually impaired) to
|
|
1907 override style bindings that could make a document totally
|
|
1908 unreadable.
|
|
1909
|
|
1910 @example
|
|
1911 <style notation="css">
|
|
1912 /* This is a comment
|
|
1913 ** These will be ignored, up to the terminating */
|
|
1914
|
|
1915 h1 @{ align: center,
|
|
1916 color: yellow,
|
|
1917 background: red,
|
|
1918 font-size: 24pt
|
|
1919 @}
|
|
1920 h2 @{ align: right,
|
|
1921 font-family: palatino,
|
|
1922 font-size: 18pt
|
|
1923 @}
|
|
1924 </style>
|
|
1925 @end example
|
|
1926
|
|
1927 :: WORK :: Much more information on stylesheets
|
|
1928
|
|
1929 @cindex <style>
|
|
1930 To include a stylesheet into a document, simply use the <style> tag.
|
|
1931 Use the @b{notation} attribute to specify what language the stylesheet
|
|
1932 is specified in. The default is @b{css}. The data between the <style>
|
|
1933 and </style> tags is the stylsheet proper - no HTML parsing is done to
|
|
1934 this data - it is treated similar to an <XMP> section of text. To
|
|
1935 reference an external stylesheet, use the <link> tag.
|
|
1936 @example
|
|
1937 <link rel="stylesheet" href="/bill.style">
|
|
1938 @end example
|
|
1939 If these two mechanisms are mixed, then the URL is resolved first, and
|
|
1940 the contents of the <style> tag take precedence if there are any
|
|
1941 conflicting directives.
|
|
1942
|
|
1943 @cindex DSSSL
|
|
1944 @cindex DSSSL-lite
|
|
1945 In the future, DSSSL and DSSSL-lite will be supported as valid
|
|
1946 stylesheet languages, but not in this release. For more information on
|
|
1947 DSSSL-lite see http://www.falch.no/~pepper/DSSSL-Lite/ - for more
|
|
1948 information on full DSSSL, see
|
|
1949 ftp://ftp.jclark.com/pub/dsssl/dsssl.ps.gz
|
|
1950
|
|
1951 @node Disk Caching, Interfacing to Mail/News, Style Sheets, Advanced Features
|
0
|
1952 @section Disk Caching
|
|
1953 @cindex Caching
|
|
1954 @cindex Persistent Cache
|
|
1955 @cindex Disk Cache
|
|
1956 A cache stores the information on a page on the local machine. When
|
70
|
1957 requesting a page that is in the cache, Emacs-W3 can retrieve the page
|
0
|
1958 from the cache more quickly than retrieving the page again from its
|
|
1959 location out on the network. With a well-populated cache, browsing the
|
|
1960 web is dramatically faster.
|
|
1961
|
70
|
1962 The first time a page is requested, Emacs-W3 retrieves the page from the
|
|
1963 network. When requesting a page that is in the cache, Emacs-W3 checks
|
0
|
1964 to see if the page has changed since it was last retrieved from the
|
|
1965 remote machine. If it has not changed, the local copy is used, saving
|
|
1966 the transmission of the file over the network.
|
|
1967
|
|
1968 @vindex url-automatic-caching
|
|
1969 @cindex Turning on caching
|
|
1970 @cindex Cleaning the cache
|
|
1971 @cindex Clearing the cache
|
|
1972 @cindex Cache cleaning
|
|
1973 @cindex Limiting the size of the cache
|
|
1974 To turn on disk caching, set the variable @code{url-automatic-caching}
|
|
1975 to non-@code{nil}, or choose the 'Caching' menu item (under `Options').
|
|
1976 That is all there is to it. Running the @code{clean-cache} shell script
|
|
1977 fist is recommended, to allow for future cleaning of the cache. This
|
|
1978 shell script will remove all files that have not been accessed since it
|
|
1979 was last run. To keep the cache pared down, it is recommended that this
|
|
1980 script be run from @i{at} or @i{cron} (see the manual pages for
|
|
1981 crontab(5) or at(1) for more information)
|
|
1982
|
|
1983
|
|
1984 @cindex Relying on cache
|
|
1985 @cindex Cache only mode
|
|
1986 @cindex Standalone mode
|
|
1987 @cindex Browsing with no network connection
|
|
1988 @cindex Netless browsing
|
|
1989 @vindex url-standalone-mode
|
|
1990 With a large cache of documents on the local disk, it can be very handy
|
|
1991 when traveling, or any other time the network connection is not active
|
70
|
1992 (a laptop with a dial-on-demand PPP connection, etc). Emacs-W3 can rely
|
0
|
1993 solely on its cache, and avoid checking to see if the page has changed
|
|
1994 on the remote server. In the case of a dial-on-demand PPP connection,
|
|
1995 this will keep the phone line free as long as possible, only bringing up
|
|
1996 the PPP connection when asking for a page that is not located in the
|
|
1997 cache. This is very useful for demonstrations as well. To turn this
|
|
1998 feature on, set the variable @code{url-standalone-mode} to
|
|
1999 non-@code{nil}, or choose the `Use Cache Only' menu item (under
|
|
2000 `Options')
|
|
2001
|
70
|
2002 @cindex Caching options
|
|
2003 @cindex Alternate caching method
|
|
2004 Emacs-W3 caches files under the temporary directory specified by
|
|
2005 @code{url-temporary-directory}, in a user-specific subdirectory
|
|
2006 (determined by the @code{user-real-login-name} function). The cache
|
|
2007 files are stored under their original names, so a URL like:
|
|
2008 http://www.aventail.com/foo/bar/baz.html would be stored in a cache file
|
|
2009 named: /tmp/wmperry/com/aventail/www/foo/bar/baz.html. Sometimes,
|
|
2010 espcially with gopher links, there will be name conflicts, and an error
|
|
2011 will be signalled. This cannot be avoided, and still have reasonable
|
|
2012 performance at startup time (reading in an index file of all the cached
|
|
2013 pages can take a long time on slow machines, or even fast machines with
|
|
2014 large caches). When running XEmacs 19.12 or later, a different naming
|
|
2015 scheme can be used. This avoids name conflicts, but loses the human
|
|
2016 readability of the cache file names. The cache files will look like:
|
|
2017 /tmp/wmperry/acbd18db4cc2f85cedef654fccc4a4d8, which is certainly
|
|
2018 unique, but not very user-friendly. To turn this on, add this to the
|
|
2019 @file{.emacs} file:
|
|
2020
|
|
2021
|
|
2022 @example
|
|
2023 (add-hook 'w3-load-hooks '(lambda ()
|
|
2024 (fset 'url-create-cached-filename
|
|
2025 'url-create-cached-filename-using-md5)))
|
|
2026 @end example
|
|
2027
|
|
2028 If other versions of emacs will not be sharing the cache, I highly
|
|
2029 recommend this method of creating the cache filename.
|
|
2030
|
|
2031
|
0
|
2032 @node Interfacing to Mail/News, Debugging HTML, Disk Caching, Advanced Features
|
|
2033 @section Interfacing to Mail/News
|
|
2034 @cindex Interfacing to Mail/News
|
|
2035 @cindex VM
|
70
|
2036 @cindex Using Emacs-W3 with VM
|
0
|
2037 @cindex GNUS
|
70
|
2038 @cindex Using Emacs-W3 with Gnus
|
0
|
2039 @cindex RMAIL
|
70
|
2040 @cindex Using Emacs-W3 with RMAIL
|
|
2041 More and more people are including URLs in their signatures, and within
|
0
|
2042 the body of mail messages. It can get quite tedious to type these into
|
|
2043 the minibuffer to follow one.
|
|
2044
|
2
|
2045 @vindex browse-url-browser-function
|
|
2046 With the latest versions of VM (the 5.9x series of betas) and Gnus
|
70
|
2047 (5.x), URLs are automatically highlighted, and can be followed with the
|
|
2048 mouse or the return key. How the URLs are viewed is determined by the
|
2
|
2049 variable @code{browse-url-browser-function}, and it should be set to the
|
|
2050 symbol @code{browse-url-w3}.
|
0
|
2051
|
70
|
2052 To access URLs from within RMAIL, the following hook should do the
|
0
|
2053 trick.
|
|
2054 @example
|
|
2055 (add-hook 'rmail-mode-hook
|
|
2056 (function
|
|
2057 (lambda ()
|
|
2058 (define-key rmail-mode-map [mouse-2] 'w3-maybe-follow-link-mouse)
|
|
2059 (define-key rmail-mode-map "\r" 'w3-maybe-follow-link))))
|
|
2060 @end example
|
|
2061
|
70
|
2062 @node Debugging HTML, Native WAIS Support, Interfacing to Mail/News, Advanced Features
|
0
|
2063 @section Debugging HTML
|
|
2064 @cindex Debugging
|
|
2065 @cindex Invalid HTML
|
|
2066 @cindex Bad HTML
|
|
2067 @vindex w3-debug-buffer
|
|
2068 @vindex w3-debug-html
|
|
2069 For those people that are adventurous, or are just as anal as I am about
|
70
|
2070 people writing valid HTML, set the variable @code{w3-debug-html} to
|
0
|
2071 @code{t} and see what happens.
|
|
2072
|
|
2073
|
70
|
2074 If a Emacs-W3 thinks it has encountered invalid HTML, then a debugging
|
0
|
2075 message is displayed.
|
|
2076
|
|
2077 :: WORK :: Need to list the different values w3-debug-html can have, and
|
|
2078 :: WORK :: what they do ::
|
|
2079
|
70
|
2080 @node Native WAIS Support, Rating Links, Debugging HTML, Advanced Features
|
|
2081 @section Native WAIS Support
|
|
2082 This version of Emacs-W3 supports native WAIS querying (earlier
|
|
2083 versions required the use of a gateway program). In order to use the
|
|
2084 native WAIS support, a working @dfn{waisq} binary is required. I
|
|
2085 recommend the distribution from think.com -
|
|
2086 ftp://think.com/wais/wais-8-b6.1.tar.Z is a good place to start.
|
|
2087
|
|
2088 @vindex url-waisq-prog
|
|
2089 @vindex url-wais-gateway-server
|
|
2090 @vindex url-wais-gateway-port
|
|
2091 The variable @code{url-waisq-prog} must point to this executable, and
|
|
2092 one of @code{url-wais-gateway-server} or @code{url-wais-gateway-port}
|
|
2093 should be @code{nil}.
|
|
2094
|
|
2095 When a WAIS URL is encountered, a form will be automatically generated
|
|
2096 and displayed. After typing in the search term, the query will be sent
|
|
2097 to the server by running the @code{url-waisq-prog} in a subprocess. The
|
|
2098 results will be converted into HTML and displayed.
|
|
2099
|
|
2100 @node Rating Links, Gopher Plus Support, Native WAIS Support, Advanced Features
|
|
2101 @section Rating Links
|
|
2102 The @code{w3-link-info-display-function} variable can be used to 'rate' a URL
|
|
2103 when it shows up in an HTML page. If non-@code{nil}, then this should
|
|
2104 be a list specifying (or a symbol specifying the name) of a function.
|
|
2105 This function should expect one argument, a fully specified URL, and
|
|
2106 should return a string. This string is inserted after the link
|
|
2107 text.
|
|
2108
|
|
2109 If a user has decided that all links served from blort.com are too laden
|
|
2110 with images, and wants to be warned that a link points at this host,
|
|
2111 they could do something like this:
|
|
2112
|
|
2113 @example
|
|
2114 (defun check-url (url)
|
|
2115 (if (string-match "://[^/]blort.com" url)
|
|
2116 "[SLOW!]" ""))
|
|
2117
|
|
2118 (setq w3-link-info-display-function 'check-url)
|
|
2119 @end example
|
|
2120
|
|
2121 So that all links pointing to any site at blort.com shows up as "Some
|
|
2122 link[SLOW!]" instead of just "Some link".
|
|
2123
|
|
2124 @node Gopher Plus Support, Hooks, Rating Links, Advanced Features
|
|
2125 @section Gopher+ Support
|
|
2126 @cindex Gopher+
|
|
2127 The gopher+ support in Emacs-W3 is limited to the conversion of ASK
|
|
2128 blocks into HTML 3.0 forms, and the usage of the content-length given by
|
|
2129 the gopher+ server to give a nice status bar on the bottom of the
|
|
2130 screen.
|
|
2131
|
|
2132 This will hopefully be extended to include the Gopher+ method of
|
|
2133 content-type negotiation, but this may be a while.
|
|
2134
|
|
2135 @node Hooks, Other Variables, Gopher Plus Support, Advanced Features
|
0
|
2136 @section Hooks
|
|
2137 @cindex Hooks
|
|
2138 These are the various hooks that can be used to customize some of
|
70
|
2139 Emacs-W3's behavior. They are arranged in the order in which they would
|
|
2140 happen when retrieving a document. All of these are functions (or lists
|
|
2141 of functions) that are called consecutively.
|
0
|
2142
|
|
2143 @table @code
|
70
|
2144 @vindex w3-load-hooks
|
|
2145 @item w3-load-hooks
|
|
2146 These hooks are run by @code{w3-do-setup} the first time a URL is
|
|
2147 fetched. All the w3 variables are initialized before this hook is
|
|
2148 run.
|
|
2149 @item w3-file-done-hooks
|
|
2150 These hooks are run by @code{w3-prepare-buffer} after all parsing on a
|
|
2151 document has been done. All @code{url-current-}@var{*} and
|
|
2152 @code{w3-current-}@var{*} variables are initialized when this hook is run.
|
|
2153 This is run before the buffer is shown, and before any inlined images
|
|
2154 are downloaded and converted.
|
|
2155 @item w3-file-prepare-hooks
|
|
2156 These hooks are run by @code{w3-prepare-buffer} before any parsing is
|
|
2157 done on the HTML file. The HTTP/1.0 headers specified by
|
|
2158 @code{w3-show-headers} have been inserted, the syntax table has been set
|
|
2159 to @code{w3-parse-args-syntax-table}, and any personal annotations have
|
|
2160 been inserted by the time this hook is run.
|
|
2161 @item w3-mode-hooks
|
0
|
2162 These hooks are run after a buffer has been parsed and displayed, but
|
|
2163 before any inlined images are downloaded and converted.
|
70
|
2164 @item w3-source-file-hooks
|
|
2165 These hooks are run after displaying a document's source
|
0
|
2166 @end table
|
|
2167
|
70
|
2168 @node Other Variables, , Hooks, Advanced Features
|
0
|
2169 @section Miscellaneous variables
|
70
|
2170 There are lots of variables that control the real nitty-gritty of Emacs-W3
|
0
|
2171 that the beginning user probably shouldn't mess with. Here they are.
|
|
2172
|
|
2173 @table @code
|
|
2174 @item url-bad-port-list
|
|
2175 @vindex url-bad-port-list
|
|
2176 List of ports to warn the user about connecting to. Defaults to just
|
70
|
2177 the mail and NNTP ports so a malicious HTML author cannot spoof mail or
|
0
|
2178 news to other people.
|
|
2179 @item url-confirmation-func
|
|
2180 @vindex url-confirmation-func
|
|
2181 What function to use for asking yes or no functions. Possible values
|
|
2182 are @code{'yes-or-no-p} or @code{'y-or-n-p}, or any function that takes
|
|
2183 a single argument (the prompt), and returns @code{t} only if a positive
|
|
2184 answer is gotten. Defaults to @code{'yes-or-no-p}.
|
|
2185 @item w3-default-action
|
|
2186 @vindex w3-default-action
|
|
2187 A lisp symbol specifying what action to take for files with extensions
|
|
2188 that are not in the @code{mm-mime-extensions} assoc list. This is
|
70
|
2189 useful in case Emacs-W3 ever run across files with weird extensions
|
0
|
2190 (.foo, .README, .READMEFIRST, etc.). In most circumstances, this should
|
|
2191 not be required anymore.
|
|
2192
|
|
2193 Possible values: any lisp symbol. Should be a function that takes no
|
|
2194 arguments. The return value does not matter, it is ignored. Some examples
|
|
2195 are @code{'w3-prepare-buffer} or @code{'indented-text-mode}.
|
|
2196 @ignore
|
|
2197 @item w3-icon-directory-list
|
|
2198 @vindex w3-icon-directory-list
|
|
2199 A list of directorys to look in for the w3 standard icons... must end
|
|
2200 in a /! If the directory @code{data-directory}/w3 exists, then this is
|
|
2201 automatically added to the default value of
|
|
2202 http://cs.indiana.edu/elisp/w3/icons/.
|
|
2203 @end ignore
|
|
2204 @item w3-keep-old-buffers
|
|
2205 @vindex w3-keep-old-buffers
|
|
2206 Whether to keep old buffers around when following links. To avoid lots
|
|
2207 of buffers in one Emacs session, set this variable to @code{nil}. I
|
|
2208 recommend setting it to @code{t}, so that backtracking from one link to
|
|
2209 another is faster.
|
|
2210
|
|
2211 @item url-passwd-entry-func
|
|
2212 @vindex url-passwd-entry-func
|
|
2213 This is a symbol indicating which function to call to read in a
|
|
2214 password. If this variable is @code{nil} at startup, it is initialized
|
|
2215 depending on whether @dfn{EFS} or @dfn{ange-ftp} is being used. This
|
|
2216 function should accept the prompt string as its first argument, and the
|
|
2217 default value as its second argument.
|
|
2218
|
|
2219 @item w3-reuse-buffers
|
|
2220 @vindex w3-reuse-buffers
|
|
2221 Determines what happens when @code{w3-fetch} is called on a document
|
|
2222 that has already been loaded into another buffer. Possible values are:
|
|
2223 @code{nil}, @code{yes}, and @code{no}. @code{nil} will ask the user if
|
70
|
2224 Emacs-W3 should reuse the buffer (this is the default value). A value of
|
0
|
2225 @code{yes} means assume the user wants to always reuse the buffer. A
|
|
2226 value of @code{no} means assume the user always wants to re-fetch the
|
|
2227 document.
|
|
2228 @item w3-show-headers
|
|
2229 @vindex w3-show-headers
|
70
|
2230 This is a list of HTTP/1.0 headers to show at the end of a buffer. All
|
0
|
2231 the headers should be in lowercase. They are inserted at the end of the
|
|
2232 buffer in a <UL> list. Alternatively, if this is simply @code{t}, then
|
70
|
2233 all the HTTP/1.0 headers are shown. The default value is
|
0
|
2234 @code{nil}.
|
|
2235 @item w3-show-status, url-show-status
|
|
2236 @vindex url-show-status
|
|
2237 @vindex w3-show-status
|
|
2238 Whether to show progress messages in the minibuffer.
|
|
2239 @code{w3-show-status} controls if messages about the parsing are
|
|
2240 displayed, and @code{url-show-status} controls if a running total of the
|
|
2241 number of bytes transferred is displayed. These Can cause a large
|
|
2242 performance hit if using a remote X display over a slow link, or a
|
|
2243 terminal with a slow modem.
|
|
2244 @item mm-content-transfer-encodings
|
|
2245 @vindex mm-content-transfer-encodings
|
|
2246 An assoc list of @var{Content-Transfer-Encodings} or
|
|
2247 @var{Content-Encodings} and the appropriate decoding algorithms for each.
|
|
2248 If the @code{cdr} of a node is a list, then this specifies the decoder is
|
|
2249 an external program, with the program as the first item in the list, and
|
|
2250 the rest of the list specifying arguments to be passed on the command line.
|
|
2251 If using an external decoder, it must accept its input from @code{stdin}
|
|
2252 and send its output to @code{stdout}.
|
|
2253
|
|
2254 If the @code{cdr} of a node is a symbol whose function definition is
|
|
2255 non-@code{nil}, then that encoding can be handled internally. The function
|
|
2256 is called with 2 arguments, buffer positions bounding the region to be
|
|
2257 decoded. The function should completely replace that region with the
|
|
2258 unencoded information.
|
|
2259
|
|
2260 Currently supported transfer encodings are: base64, x-gzip, 7bit, 8bit,
|
|
2261 binary, x-compress, x-hqx, and quoted-printable.
|
|
2262 @item url-uncompressor-alist
|
|
2263 @vindex url-uncompressor-alist
|
|
2264 An assoc list of file extensions and the appropriate uncompression
|
|
2265 programs for each. This is used to build the Accept-encoding header for
|
70
|
2266 HTTP/1.0 requests.
|
|
2267 @item url-waisq-prog
|
|
2268 @vindex url-waisq-prog
|
|
2269 Name of the waisq executable on this system. This should be the
|
|
2270 @file{waisq} program from think.com's wais8-b5.1 distribution.
|
0
|
2271 @end table
|
|
2272
|
70
|
2273 @node More Help, Future Directions, , Top
|
0
|
2274 @chapter More Help
|
|
2275 @cindex Relevant Newsgroups
|
|
2276 @cindex Newsgroups
|
|
2277 @cindex Support
|
70
|
2278 For more help on Emacs-W3, please send me mail
|
0
|
2279 (@i{wmperry@@cs.indiana.edu}). Several discussion lists have also been
|
70
|
2280 created for Emacs-W3. To subscribe, send mail to
|
0
|
2281 @i{majordomo@@indiana.edu}, with the body of the message 'subscribe
|
|
2282 @var{listname} @var{<email addres>}'. All other mail should go to
|
|
2283 @i{<listname>@@indiana.edu}.
|
|
2284
|
|
2285
|
|
2286 @itemize @bullet
|
|
2287 @item
|
70
|
2288 w3-announce -- this list is for anyone interested in Emacs-W3, and
|
0
|
2289 should in general only be used by me. The gnu.emacs.sources newsgroup
|
|
2290 and a few other mailing lists are included on this. Please only use
|
70
|
2291 this list for major package releases related to Emacs-W3.
|
0
|
2292 (@i{www-announce@@w3.org} is included on this list).
|
|
2293 @item
|
70
|
2294 w3-beta -- this list is for beta testers of Emacs-W3. These brave souls test
|
0
|
2295 out not-quite stable code.
|
|
2296 @item
|
|
2297 w3-dev -- a list consisting of myself and a few other people who are
|
70
|
2298 interested in the internals of Emacs-W3, and doing active development work.
|
0
|
2299 Pretty dead right now, but I hope it will grow.
|
|
2300 @end itemize
|
|
2301
|
|
2302 For more help on the World Wide Web in general, please refer to the
|
|
2303 comp.infosystems.www.* newsgroups. There are also several discussion
|
|
2304 lists concerning the Web. Send mail to @i{<listname>-request@@w3.org}
|
|
2305 with a subject line of 'subscribe <listname>'. All mail should go to
|
|
2306 @i{<listname>@@w3.org}. Administrative mail should go to
|
|
2307 @i{www-admin@@w3.org}. The lists are:
|
|
2308
|
|
2309
|
|
2310 @itemize @bullet
|
|
2311 @item
|
|
2312 www-talk -- for general discussion of the World Wide Web, where its
|
|
2313 going, new features, etc. All the major developers are subscribed to
|
|
2314 this list.
|
|
2315 @item
|
|
2316 www-announce -- for announcements concerning the World Wide Web. Server
|
|
2317 changes, new servers, new software, etc.
|
|
2318 @end itemize
|
|
2319
|
|
2320 As a last resort, mail me. I'll try to answer as quickly as I can.
|
|
2321
|
2
|
2322 @node Future Directions, Reporting Bugs, More Help, Top
|
0
|
2323 @chapter Future Directions
|
|
2324 Changes are constantly being made to the Emacs browser (hopefully all
|
|
2325 for the better). This is a list of the things that are being worked on
|
|
2326 right now.
|
|
2327
|
|
2328 :: WORK :: Revamp the todo list
|
|
2329
|
70
|
2330 @node Reporting Bugs, Installing SSL, Future Directions, Top
|
0
|
2331 @appendix Reporting Bugs
|
|
2332 @cindex Reporting Bugs
|
|
2333 @cindex Bugs
|
|
2334 @cindex Contacting the author
|
|
2335
|
70
|
2336 :: WORK :: Reporting bugs needs work.
|
22
|
2337
|
70
|
2338 @node Installing SSL, Using PGP/PEM, Reporting Bugs, Top
|
0
|
2339 @appendix Installing SSL
|
|
2340 @cindex HTTP/1.0 Authentication
|
|
2341 @cindex Secure Sockets Layer
|
|
2342 @cindex SSL
|
|
2343 @cindex Gag Puke Retch
|
|
2344 @cindex Exportability
|
|
2345 @cindex Export Restrictions
|
70
|
2346 In order to use SSL in Emacs-W3, an implementation of SSL is necessary.
|
|
2347 These are the implementations that I am aware of:
|
32
|
2348
|
|
2349 @table @code
|
70
|
2350 @item SSLRef 2.0
|
|
2351 Available from Netscape Communications @footnote{http://www.netscape.com/newsref/std/sslref.html}. This requires the
|
|
2352 RSARef library, which is not exportable. The RSARef library is
|
|
2353 available from ftp://ftp.rsa.com/rsaref/
|
|
2354 @item SSLeay 0.4
|
|
2355 An implementation by Eric Young (eay@@mincom.oz.au) that is free for
|
|
2356 commerial or noncommercial use, and was developed completely outside the
|
|
2357 US by a non-US citizen. More information can be found at
|
|
2358 ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/
|
|
2359 @end table
|
|
2360
|
0
|
2361 @vindex ssl-program-name
|
70
|
2362 Whichever reference implementation is used (I recommend the SSLeay
|
|
2363 distribution, just to thumb a nose at the NSA :), there is a program
|
|
2364 that can be run in a subprocess that takes a hostname and port number on
|
|
2365 the command line, and reads/writes to standard input/output (the
|
|
2366 Netscape implementation comes with one of these by default). Set the
|
|
2367 variable @code{ssl-program-name} to point to this program.
|
|
2368
|
|
2369
|
|
2370 This should be all the configuration necessary. In the future, I will
|
|
2371 be distributing a set of patches to Emacs 19.xx and XEmacs 19.xx to
|
|
2372 SSL-enable them, for the sake of speed.
|
|
2373
|
|
2374 @node Using PGP/PEM, Mailcap Files, Installing SSL, Top
|
|
2375 @appendix Using PGP/PEM
|
|
2376 @cindex HTTP/1.0 Authentication
|
|
2377 @cindex Public Key Cryptography
|
|
2378 @cindex Authentication, PGP
|
|
2379 @cindex Authentication, PEM
|
|
2380 @cindex RIPEM
|
|
2381 @cindex Public Key Cryptography
|
|
2382 @cindex PGP
|
|
2383 @cindex Pretty Good Privacy
|
|
2384 @cindex Encryption
|
|
2385 @cindex Security
|
|
2386 @cindex ITAR must die
|
|
2387 @cindex Stupid export restrictions
|
|
2388 @cindex Support your local crypto-anarchist
|
|
2389 @cindex NSA freaks
|
|
2390 Most of this chapter has been reproduced from the original documentation
|
|
2391 written by Rob McCool (@i{robm@@netscape.com})@footnote{See
|
|
2392 http://hoohoo.ncsa.uiuc.edu/docs/PEMPGP.html for the original}.
|
|
2393
|
|
2394 RIPEM is 'Riordan's Internet Privacy Enhanced Mail', and is currently on
|
|
2395 version 1.2b3. US citizens can ftp it from
|
|
2396 ftp://ripem.msu.edu/pub/crypt/ripem.
|
|
2397
|
|
2398 PGP is 'Pretty Good Privacy', and is currently on version 2.6. The
|
|
2399 legal controversies that plagued earlier versions have been resolved, so
|
|
2400 this is a competely legal program now. There is also a legal version
|
|
2401 for european users, called 2.6ui (the Unofficial International
|
|
2402 version).
|
|
2403
|
|
2404 PGP and PEM are programs that allow two parties to communicate in a way
|
|
2405 which does not allow third parties to read them, and which certify that
|
|
2406 the person who sent the message is really who they claim they are.
|
|
2407
|
|
2408
|
|
2409 PGP and PEM both use RSA encryption. The U.S. government has strict
|
|
2410 export controls over foreign use of this technology, so people outside
|
|
2411 the U.S. may have a difficult time finding programs which perform the
|
|
2412 encryption.
|
|
2413
|
|
2414 A working copy of either Pretty Good Privacy or RIPEM is required. You
|
|
2415 should be familiar with the program and have generated a public/private
|
|
2416 key pair.
|
|
2417
|
|
2418
|
|
2419 Currently, the protocol has been implemented with PEM and PGP using
|
|
2420 local key files on the server side, and on the client side with PEM
|
|
2421 using finger to retrieve the server's public key.
|
|
2422
|
|
2423 Parties who wish to use Emacs-W3 with PEM or PGP encryption will need to
|
|
2424 communicate beforehand and find a tamper-proof way to exchange their
|
|
2425 public keys.
|
|
2426
|
|
2427 Pioneers get shot full of arrows. This work is currently in the
|
|
2428 experimental stages and thus may have some problems that I have
|
|
2429 overlooked. The only known problem that I know about is that the
|
|
2430 messages are currently not timestamped. This means that a malicious
|
|
2431 user could record the encrypted message with a packet sniffer and repeat
|
|
2432 it back to the server ad nauseum. Although they would not be able to
|
|
2433 read the reply, if the request was for something being charged for, this
|
|
2434 could be very inconvenient.
|
|
2435
|
|
2436 This protocol is almost word-for-word a copy of Tony Sander's RIPEM
|
|
2437 based scheme, generalized a little. Below, wherever PEM is used,
|
|
2438 replace it with PGP, and the behaviour should remain the same.
|
32
|
2439
|
|
2440 @example
|
70
|
2441 *Client:*
|
|
2442
|
|
2443 GET /docs/protected.html HTTP/1.0
|
|
2444 UserAgent: Emacs-W3/2.1.x
|
|
2445
|
|
2446 *Server:*
|
|
2447
|
|
2448 HTTP/1.0 401 Unauthorized
|
|
2449 WWW-Authenticate: PEM entity="webmaster@@hoohoo.ncsa.uiuc.edu"
|
|
2450 Server: NCSA/1.1
|
|
2451
|
|
2452 *Client:*
|
|
2453
|
|
2454 GET / HTTP/1.0
|
|
2455 Authorization: PEM entity="robm@@ncsa.uiuc.edu"
|
|
2456 Content-type: application/x-www-pem-request
|
|
2457
|
|
2458 --- BEGIN PRIVACY-ENHANCED MESSAGE ---
|
|
2459 this is the real request, encrypted
|
|
2460 --- END PRIVACY-ENHANCED MESSAGE ---
|
|
2461
|
|
2462 *Server:*
|
|
2463
|
|
2464 HTTP/1.0 200 OK
|
|
2465 Content-type: application/x-www-pem-reply
|
|
2466
|
|
2467 --- BEGIN PRIVACY-ENHANCED MESSAGE ---
|
|
2468 this is the real reply, encrypted
|
|
2469 --- END PRIVACY-ENHANCED MESSAGE ---
|
|
2470 That's it.
|
32
|
2471 @end example
|
|
2472
|
70
|
2473 @cindex Mailcrypt
|
|
2474 Emacs-W3 uses the excellent @i{mailcrypt}@footnote{Available from
|
|
2475 http://www.cs.indiana.edu/LCD/cover.html?mailcrypt} package written by
|
|
2476 Jin S Choi (@i{jsc@@mit.edu}). This package takes care of calling ripem
|
|
2477 and/or pgp with the correct arguments. Please see the documentation at
|
|
2478 the top of mailcrypt.el for instructions on using mailcrypt. All bug
|
|
2479 reports about mailcrypt should go to Jin S Choi, but bugs about how I
|
|
2480 use it in Emacs-W3 should of course be directed to me.
|
32
|
2481
|
70
|
2482 @node Mailcap Files, General Index, Using PGP/PEM, Top
|
0
|
2483 @appendix Mailcap Files
|
|
2484 NCSA Mosaic and almost all other WWW browsers rely on a separate file
|
|
2485 for mapping MIME types to external viewing programs. This takes some of
|
|
2486 the burden off of browser developers, so each browser does not have to
|
|
2487 support all image formats, or postscript, etc. Instead of having the
|
70
|
2488 users of Emacs-W3 duplicate this in lisp, this file can be parsed using
|
0
|
2489 the @code{mm-parse-mailcaps} function. This function is called each
|
70
|
2490 time Emacs-W3 is loaded. It tries to locate mimetype files in several
|
0
|
2491 places. If the environment variable @code{MAILCAPS} is nonempty, then
|
|
2492 this is assumed to specify a UNIX-like path of mimetype files (this is a
|
|
2493 colon separated string of pathnames). If the @code{MAILCAPS}
|
70
|
2494 environment variable is empty, then Emacs-W3 looks for these
|
0
|
2495 files:
|
|
2496
|
|
2497 @enumerate
|
|
2498 @item
|
|
2499 @file{~/.mailcap}
|
|
2500 @item
|
|
2501 @file{/etc/mailcap}
|
|
2502 @item
|
|
2503 @file{/usr/etc/mailcap}
|
|
2504 @item
|
|
2505 @file{/usr/local/etc/mailcap}
|
|
2506 @end enumerate
|
|
2507
|
|
2508 This format of this file is specified in RFC 1343, but a brief synopsis
|
|
2509 follows (this is taken verbatim from sections of RFC 1343).
|
|
2510
|
|
2511 Each mailcap file consists of a set of entries that describe the proper
|
|
2512 handling of one media type at the local site. For example, one line
|
|
2513 might tell how to display a message in Group III fax format. A mailcap
|
|
2514 file consists of a sequence of such individual entries, separated by
|
|
2515 newlines (according to the operating system's newline
|
|
2516 conventions). Blank lines and lines that start with the "#" character
|
|
2517 (ASCII 35) are considered comments, and are ignored. Long entries may
|
|
2518 be continued on multiple lines if each non-terminal line ends with a
|
|
2519 backslash character ('\', ASCII 92), in which case the multiple lines
|
|
2520 are to be treated as a single mailcap entry. Note that for such
|
|
2521 "continued" lines, the backslash must be the last character on the line
|
|
2522 to be continued.
|
|
2523
|
|
2524 Each mailcap entry consists of a number of fields, separated by
|
|
2525 semi-colons. The first two fields are required, and must occur in the
|
|
2526 specified order. The remaining fields are optional, and may appear in
|
|
2527 any order.
|
|
2528
|
|
2529 The first field is the content-type, which indicates the type of data
|
|
2530 this mailcap entry describes how to handle. It is to be matched against
|
|
2531 the type/subtype specification in the "Content-Type" header field of an
|
|
2532 Internet mail message. If the subtype is specified as "*", it is
|
|
2533 intended to match all subtypes of the named content-type.
|
|
2534
|
|
2535 The second field, view-command, is a specification of how the message or
|
|
2536 body part can be viewed at the local site. Although the syntax of this
|
|
2537 field is fully specified, the semantics of program execution are
|
|
2538 necessarily somewhat operating system dependent.
|
|
2539
|
|
2540 The optional fields, which may be given in any order, are as follows:
|
|
2541 @itemize @bullet
|
|
2542 @item
|
|
2543 The "compose" field may be used to specify a program that can be used to
|
|
2544 compose a new body or body part in the given format. Its intended use
|
|
2545 is to support mail composing agents that support the composition of
|
|
2546 multiple types of mail using external composing agents. As with the
|
|
2547 view- command, the semantics of program execution are operating system
|
|
2548 dependent. The result of the composing program may be data that is not
|
|
2549 yet suitable for mail transport---that is, a Content-Transfer-Encoding
|
|
2550 may need to be applied to the data.
|
|
2551 @item
|
|
2552 The "composetyped" field is similar to the "compose" field, but is to be
|
|
2553 used when the composing program needs to specify the Content-type header
|
|
2554 field to be applied to the composed data. The "compose" field is
|
|
2555 simpler, and is preferred for use with existing (non-mail-oriented)
|
|
2556 programs for composing data in a given format. The "composetyped" field
|
|
2557 is necessary when the Content-type information must include auxilliary
|
|
2558 parameters, and the composition program must then know enough about mail
|
|
2559 formats to produce output that includes the mail type
|
|
2560 information.
|
|
2561 @item
|
|
2562 The "edit" field may be used to specify a program that can be used to
|
|
2563 edit a body or body part in the given format. In many cases, it may be
|
|
2564 identical in content to the "compose" field, and shares the
|
|
2565 operating-system dependent semantics for program execution.
|
|
2566 @item
|
|
2567 The "print" field may be used to specify a program that can be used to
|
|
2568 print a message or body part in the given format. As with the
|
|
2569 view-command, the semantics of program execution are operating system
|
|
2570 dependent.
|
|
2571 @item
|
|
2572 The "test" field may be used to test some external condition (e.g. the
|
|
2573 machine architecture, or the window system in use) to determine whether
|
|
2574 or not the mailcap line applies. It specifies a program to be run to
|
|
2575 test some condition. The semantics of execution and of the value
|
|
2576 returned by the test program are operating system dependent. If the
|
|
2577 test fails, a subsequent mailcap entry should be sought. Multiple test
|
|
2578 fields are not permitted---since a test can call a program, it can
|
|
2579 already be arbitrarily complex.
|
|
2580 @item
|
|
2581 The "needsterminal" field indicates that the view-command must be run on
|
|
2582 an interactive terminal. This is needed to inform window-oriented user
|
|
2583 agents that an interactive terminal is needed. (The decision is not
|
|
2584 left exclusively to the view-command because in some circumstances it
|
|
2585 may not be possible for such programs to tell whether or not they are on
|
|
2586 interactive terminals.) The needsterminal command should be assumed to
|
|
2587 apply to the compose and edit commands, too, if they exist. Note that
|
|
2588 this is NOT a test---it is a requirement for the environment in which
|
|
2589 the program will be executed, and should typically cause the creation of
|
|
2590 a terminal window when not executed on either a real terminal or a
|
|
2591 terminal window.
|
|
2592 @item
|
|
2593 The "copiousoutput" field indicates that the output from the
|
|
2594 view-command will be an extended stream of output, and is to be
|
|
2595 interpreted as advice to the UA (User Agent mail- reading program) that
|
|
2596 the output should be either paged or made scrollable. Note that it is
|
|
2597 probably a mistake if needsterminal and copiousoutput are both
|
|
2598 specified.
|
|
2599 @item
|
|
2600 The "description" field simply provides a textual description,
|
|
2601 optionally quoted, that describes the type of data, to be used
|
|
2602 optionally by mail readers that wish to describe the data before
|
|
2603 offering to display it.
|
|
2604 @item
|
|
2605 The "x11-bitmap" field names a file, in X11 bitmap (xbm) format, which
|
|
2606 points to an appropriate icon to be used to visually denote the presence
|
|
2607 of this kind of data.
|
|
2608 @item
|
|
2609 Any other fields beginning with "x-" may be included for local or
|
|
2610 mailer-specific extensions of this format. Implementations should
|
|
2611 simply ignore all such unrecognized fields to permit such extensions,
|
|
2612 some of which might be standardized in a future version of this
|
|
2613 document.
|
|
2614 @end itemize
|
|
2615
|
70
|
2616 @node General Index, Key Index, Mailcap Files, Top
|
0
|
2617 @appendix General Index
|
|
2618 @printindex fn
|
70
|
2619 @node Key Index, , General Index, Top
|
0
|
2620 @appendix Key Index
|
|
2621 @printindex ky
|
|
2622 @contents
|
|
2623 @bye
|