Mercurial > hg > xemacs-beta
comparison man/w3.texi @ 70:131b0175ea99 r20-0b30
Import from CVS: tag r20-0b30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:02:59 +0200 |
parents | 6a22abad6937 |
children | 1ce6082ce73f |
comparison
equal
deleted
inserted
replaced
69:804d1389bcd6 | 70:131b0175ea99 |
---|---|
1 \input texinfo | 1 \input texinfo |
2 @c | 2 @setfilename ../info/w3.info |
3 @c Please note that this file uses some constructs not supported by earlier | 3 @settitle Emacs-W3 User's Manual |
4 @c versions of TeX-info. You must be running one of the newer TeX-info | |
5 @c releases (I currently use version 3.9 from ftp://prep.ai.mit.edu/pub/gnu/) | |
6 @c | |
7 @c Please do not send in bug reports about not being able to format the | |
8 @c document with 'makeinfo' or 'tex', just upgrade your installation. | |
9 @c | |
10 @c Info formatted files are provided in the distribution, and you can | |
11 @c retrieve dvi, postscript, and PDF versions from the web site or FTP | |
12 @c site: http://www.cs.indiana.edu/elisp/w3/docs.html | |
13 @c | |
14 @setfilename w3.info | |
15 @settitle Emacs/W3 User's Manual | |
16 @iftex | 4 @iftex |
17 @finalout | 5 @finalout |
18 @end iftex | 6 @end iftex |
19 @c @setchapternewpage odd | 7 @c @setchapternewpage odd |
20 @c @smallbook | 8 @c @smallbook |
22 \overfullrule=0pt | 10 \overfullrule=0pt |
23 %\global\baselineskip 30pt % for printing in double space | 11 %\global\baselineskip 30pt % for printing in double space |
24 @end tex | 12 @end tex |
25 @synindex cp fn | 13 @synindex cp fn |
26 @synindex vr fn | 14 @synindex vr fn |
27 @dircategory World Wide Web | |
28 @dircategory GNU Emacs Lisp | |
29 @direntry | |
30 * W3: (w3). Emacs/W3 World Wide Web browser. | |
31 @end direntry | |
32 @ifinfo | 15 @ifinfo |
33 This file documents the Emacs/W3 World Wide Web browser. | 16 This file documents the Emacs-W3 World Wide Web browser. |
34 | 17 |
35 Copyright (C) 1993, 1994, 1995, 1996 William M. Perry | 18 Copyright (C) 1993, 1994, 1995 William M. Perry |
36 Copyright (C) 1996, 1997 Free Software Foundation | 19 Copyright (C) 1996 Free Software Foundation |
37 | 20 |
38 Permission is granted to make and distribute verbatim copies of | 21 Permission is granted to make and distribute verbatim copies of |
39 this manual provided the copyright notice and this permission notice | 22 this manual provided the copyright notice and this permission notice |
40 are preserved on all copies. | 23 are preserved on all copies. |
41 | 24 |
48 @end ignore | 31 @end ignore |
49 @end ifinfo | 32 @end ifinfo |
50 @c | 33 @c |
51 @titlepage | 34 @titlepage |
52 @sp 6 | 35 @sp 6 |
53 @center @titlefont{Emacs/W3} | 36 @center @titlefont{Emacs-W3} |
54 @center @titlefont{User's Manual} | 37 @center @titlefont{User's Manual} |
55 @sp 4 | 38 @sp 4 |
56 @center Third Edition, Emacs/W3 Version 3.0 | 39 @center Third Edition, Emacs-W3 Version 3.0 |
57 @sp 1 | 40 @sp 1 |
58 @center February 1997 | 41 @center August 1996 |
59 @sp 5 | 42 @sp 5 |
60 @center William M. Perry | 43 @center William M. Perry |
61 @center @i{wmperry@@cs.indiana.edu} | 44 @center @i{wmperry@@cs.indiana.edu} |
62 @page | 45 @page |
63 @vskip 0pt plus 1filll | 46 @vskip 0pt plus 1filll |
64 Copyright @copyright{} 1993, 1994, 1995 William M. Perry@* | 47 Copyright @copyright{} 1993, 1994, 1995 William M. Perry@* |
65 Copyright @copyright{} 1996, 1997 Free Software Foundation | 48 Copyright @copyright{} 1996 Free Software Foundation |
66 | 49 |
67 Permission is granted to make and distribute verbatim copies of@* | 50 Permission is granted to make and distribute verbatim copies of@* |
68 this manual provided the copyright notice and this permission notice@* | 51 this manual provided the copyright notice and this permission notice@* |
69 are preserved on all copies. | 52 are preserved on all copies. |
70 | 53 |
71 @end titlepage | 54 @end titlepage |
72 @page | 55 @page |
73 @ifinfo | 56 @ifinfo |
74 @node Top, Getting Started, (dir), (dir) | 57 @node Top, Introduction,, (DIR) |
75 @top W3 | 58 This manual documents the Emacs-W3 World Wide Web browser, a Lisp program |
76 | 59 which runs as a subsystem under Emacs. The manual is divided into the |
77 Users can browse the World Wide Web from within Emacs by using Emacs/W3. | 60 following chapters. |
78 All of the widely used (and even some not very widely used) @sc{url} | |
79 schemes are supported, and it is very easy to add new methods as the | |
80 need arises. | |
81 | |
82 Emacs/W3 provides some core functionality that can be readily re-used | |
83 from any program in Emacs. Users and other package writers are | |
84 encouraged to @i{Web-enable} their applications and daily work routines | |
85 with the library. | |
86 | |
87 Emacs/W3 is completely customizable, both from Emacs-Lisp and from | |
88 stylesheets @xref{Stylesheets} If there is any aspect of Emacs/W3 that | |
89 cannot be modified to your satisfaction, please send mail to the | |
90 @t{w3-beta@@indiana.edu} mailing list with any suggestions. | |
91 @xref{Reporting Bugs} | |
92 | 61 |
93 @menu | 62 @menu |
94 * Getting Started:: Getting up and running with Emacs/W3 | 63 * Introduction:: Overview of Emacs-W3. |
95 * Basic Usage:: Basic movement and usage of Emacs/W3. | 64 * Starting Up:: What happens when you start Emacs-W3 |
65 * Basic Usage:: Basic movement and usage of Emacs-W3. | |
96 * Compatibility:: Explanation of compatibility with | 66 * Compatibility:: Explanation of compatibility with |
97 other browsers. | 67 other web browsers. |
98 * Stylesheets:: How to control the look of web pages | 68 * Controlling Formatting:: How to control HTML formatting |
99 * Supported URLs:: What @sc{URL} schemes are supported. | 69 * MIME Support:: Support for MIME |
100 * MIME Support:: Support for @sc{mime} | 70 * Security:: Various forms of security |
101 * Security:: Various security methods supported | 71 * Non-Unix Operating Systems:: Special considerations necessary to get |
102 * Non-Unix Operating Systems:: Special considerations necessary to get | |
103 up and running correctly under non-unix | 72 up and running correctly under non-unix |
104 OS's. | 73 OS's. |
105 * Speech Integration:: Outputting to a speech synthesizer. | |
106 * Advanced Features:: Some of the more arcane features. | 74 * Advanced Features:: Some of the more arcane features. |
107 * More Help:: How to get more help---mailing lists, | 75 * More Help:: How to get more help---mailing lists, |
108 newsgroups, etc. | 76 newsgroups, etc. |
109 * Future Directions:: Plans for future revisions | 77 * Future Directions:: Plans for future revisions |
110 | 78 |
111 Appendices: | 79 Appendices: |
112 * Reporting Bugs:: How to report a bug in Emacs/W3. | 80 * Reporting Bugs:: How to report a bug in Emacs-W3 |
113 * Dealing with Firewalls:: How to get around your firewall. | 81 * Installing SSL:: Turning on SSL support |
114 * Proxy Gateways:: Using a proxy gateway with Emacs/W3. | 82 * Using PGP/PEM:: Turning on PGP/PEM encryption support |
115 * Installing SSL:: Turning on @sc{ssl} support. | 83 * Mailcap Files:: An explanation of Mailcap files |
116 * Mailcap Files:: An explanation of Mailcap files. | |
117 * Down with DoubleClick:: Annoyed by advertisements? Read this! | |
118 | 84 |
119 Indices: | 85 Indices: |
120 * General Index:: General Index. | 86 * General Index:: General Index |
121 * Key Index:: Menus of command keys and their references. | 87 * Key Index:: Menus of command keys and their references |
122 @end menu | 88 @end menu |
123 @end ifinfo | 89 @end ifinfo |
124 | 90 |
125 @node Getting Started, Basic Usage, Top, Top | 91 @node Introduction, Starting Up, Top, Top |
126 @chapter Getting Started | 92 @chapter Introduction |
127 @cindex Clueless in Seattle | 93 @cindex World Wide Web |
128 @cindex Getting Started | 94 Emacs-W3 is an Emacs subsystem that allows the user to browse the wonderful |
129 @kindex M-x w3 | 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. | |
167 | |
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 | |
204 | |
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 | |
219 | |
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. | |
245 | |
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. | |
287 | |
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. | |
328 | |
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. | |
366 | |
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. | |
371 | |
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. | |
413 @end table | |
414 | |
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 | |
422 @menu | |
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 | |
427 @end menu | |
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 | |
130 @vindex w3-default-homepage | 437 @vindex w3-default-homepage |
131 @findex w3 | 438 The url to open at startup. This defaults to the environment variable |
132 If installed correctly, starting Emacs/W3 is quite painless. Just type | 439 WWW_HOME if it is not set it in the users @file{.emacs} file. If |
133 @kbd{M-x w3} in a running Emacs session. This will retrieve the default | 440 WWW_HOME is undefined, then it defaults to the hypertext documentation |
134 page that has been configured (@pxref{Preferences Panel}) - by default the | 441 for Emacs-W3. |
135 documentation for Emacs/W3 at Indiana University. | 442 |
136 | 443 @item w3-delay-image-loads |
137 If the default page is not retrieved correctly at startup, you will have | 444 @vindex w3-delay-image-loads |
138 to do some customization (@pxref{Preferences Panel}). | 445 Controls the loading of inlined images. If non-@code{nil}, images are |
139 | 446 not loaded. If the correct image converters are not installed or the |
140 Once started, you can use the mouse and the menu or use the following | 447 network connection is very slow, it is best to set this to @code{t}. |
141 key commands (for more commands and more detail, @pxref{Basic Usage, , | 448 Defaults to @code{nil}. |
142 Basic Usage}). | 449 @item url-global-history-file |
143 | 450 @vindex url-global-history-file |
144 @table @asis | 451 The global history file used by both Mosaic/X and Emacs-W3. This file |
145 @item move forward | 452 contains a list of all the URLs that have been visited. This file is parsed |
146 press the space bar, | 453 at startup and used to provide URL completion. Emacs-W3 can read and |
147 | 454 write Mosaic/X or Netscape 1.x style history files, or use its own |
148 @item move backwards | 455 internal format (faster). The file type is determined automatically, or |
149 press the backspace key, | 456 prompted for if the file does not exist. |
150 | 457 @item w3-hotlist-file |
151 @item move to the next HTML reference on the page | 458 @vindex w3-hotlist-file |
152 press the @kbd{TAB} key, | 459 Hotlist filename. This should be the name of a file that is stored in |
153 | 460 NCSA's Mosaic/X or Netscape's format. It is used to keep a listing of |
154 @item move to the previous HTML reference on the page | 461 commonly accessed URLs. |
155 press the @kbd{SHIFT} and @kbd{TAB} keys at the same time. If this does | 462 @item w3-personal-annotation-directory |
156 not work (some text terminals cannot distinguish between @kbd{TAB} and | 463 @vindex w3-personal-annotation-directory |
157 @kbd{SHIFT-TAB}, pressing the @kbd{ALT} and @kbd{TAB} keys should also | 464 The directory where Emacs-W3 looks for personal annotations. This is a |
158 work. | 465 directory that should hold the personal annotations stored in a |
159 | 466 Mosaic/X-compatible format. |
160 @item follow a link | 467 @item url-pgp/pem-entity |
161 put the cursor over it | 468 @findex user-real-login-name |
162 and press the @kbd{RETURN} key, or @* | 469 @findex system-name |
163 click the left mouse button on it, | 470 The name by which the user is known to PGP and/or PEM entities. If this |
164 | 471 is not set when Emacs-W3 is loaded, it defaults to |
165 @item fetch a @sc{url} | 472 @code{user-mail-address} if it is set, otherwise @code{(user-real-login-name)}@@@code{(system-name)}. |
166 press the @kbd{Control} and @kbd{o} keys at the same time,@* | 473 @item url-personal-mail-address |
167 type the @sc{url}, and then press the @kbd{RETURN} key, | 474 @vindex url-personal-mail-address |
168 | 475 @vindex url-pgp/pem-entity |
169 @item return to the last URL you were at | 476 User's full email address. This is what is sent to HTTP/1.0 servers as |
170 press the @kbd{l} key, | 477 the FROM header. If this is not set when Emacs-W3 is loaded, then it |
171 | 478 defaults to the value of @code{url-pgp/pem-entity}. |
172 @item quit W3 mode | 479 |
173 press the @kbd{q} key. | 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}. | |
486 | |
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. | |
174 @end table | 505 @end table |
175 | 506 @item w3-use-forms-index |
176 @menu | 507 @vindex w3-use-forms-index |
177 * Downloading:: Where to download Emacs/W3. | 508 @cindex ISINDEX handling |
178 * Building and Installing:: Compiling and installing from source. | 509 @cindex Forms based searching |
179 * Startup Files:: What is where, and why. | 510 @cindex Searching with forms |
180 * Preferences Panel:: Quick configuration of common options. | 511 Non-@code{nil} means translate <ISINDEX> tags into a hypertext form. A |
181 @end menu | 512 single text entry box is shown where the ISINDEX tag appears. |
182 | 513 @item url-use-hypertext-gopher |
183 @node Downloading, Building and Installing, Getting Started, Getting Started | 514 @vindex url-use-hypertext-gopher |
184 @section Downloading | 515 @cindex Gopher+ |
185 | 516 Controls how gopher documents are retrieved. If non-@code{nil}, the |
186 :: WORK :: What you need, and why | 517 gopher pages are converted into HTML and parsed just like any other |
187 :: WORK :: Where to download Emacs, XEmacs, various platforms | 518 page. If @code{nil}, the requests are passed off to the |
188 :: WORK :: Where to download Emacs/W3 | 519 @file{gopher.el} package by Scott Snyder. Using the @file{gopher.el} |
189 :: WORK :: Where to download related utilities (netpbm, xv, gimp, etc.) | 520 package loses the gopher+ support, and inlined searching. |
190 | 521 @item url-xterm-command |
191 @node Building and Installing, Startup Files, Downloading, Getting Started | 522 @vindex url-xterm-command |
192 @section Building and Installing | 523 Command used to start a windowed shell, similar to an xterm. This |
193 | 524 string is passed through @code{format}, and should expect four strings: |
194 :: WORK :: Document makefile variables | 525 the title of the window, the program name to execute, and the server and |
195 :: WORK :: Document what gets installed where, why | 526 port number. The default is for xterm, which is very UNIX and |
196 | 527 XWindows-centric. |
197 @node Startup Files, Preferences Panel, Building and Installing, Getting Started | 528 @end table |
198 @section Startup Files | 529 @node Firewalls, Proxy Gateways, Basic Setup, Starting Up |
199 @cindex Startup files | 530 @comment node-name, next, previous, up |
200 @cindex Default stylesheet | 531 @section Firewalls |
201 | 532 @cindex Gateways |
202 :: WORK :: startup files | 533 There are several different reasons why the gateway support might be |
203 This section should document where Emacs/W3 looks for its startup files, | 534 required. |
204 and what each one does. 'profile' 'stylesheet' 'hotlist' 'history' etc. | 535 @enumerate |
205 | 536 @cindex Firewalls |
206 @node Preferences Panel, , Startup Files, Getting Started | 537 @item |
207 @section Preferences Panel | 538 Stuck behind a firewall. This is usually the case at large corporations |
208 @cindex Preferences | 539 with paranoid system-administrators. |
209 @kindex M-x w3-preferences-edit | 540 |
210 | 541 @cindex TERM |
211 :: WORK :: pref panel | 542 @item |
212 This should document the quick preferences panel. M-x w3-preferences-edit | 543 Using TERM @footnote{TERM is a user-level protocol for emulating IP over |
213 | 544 a serial line. More information is available at |
214 @node Basic Usage, Compatibility, Getting Started, Top | 545 ftp://sunsite.unc.edu/pub/Linux/apps/comm/term} for slip-like access to |
546 the internet. | |
547 | |
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 | |
585 | |
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: | |
659 | |
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. | |
694 | |
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 | |
215 @chapter Basic Usage | 747 @chapter Basic Usage |
216 @cindex Basic Usage | 748 Emacs-W3 is similar to the Info package all Emacs users hold near and dear to |
217 @kindex space | 749 their hearts (@xref{Top,,Info,info, The Info Manual}, for a description |
218 @kindex backspace | 750 of Info). Basically, @kbd{space} and @kbd{backspace} control scrolling, |
219 @kindex return | 751 and @kbd{return} or @kbd{mouse2} follows a hypertext link. The @kbd{f} |
220 @kindex tab | 752 and @kbd{b} keys maneuver around the various links on the page. |
221 @kindex M-tab | 753 |
222 Emacs/W3 is similar to the Info package all Emacs users hold near and | 754 @b{NOTE:} To enter data into a form entry area, select it using |
223 dear to their hearts (@xref{Top,,Info,info, The Info Manual}, for a | 755 @kbd{return} or the middle mouse button, just like a hypertext link. |
224 description of Info). Basically, @kbd{space} and @kbd{backspace} | 756 |
225 control scrolling, and @kbd{return} or the middle mouse button follows a | 757 |
226 hypertext link. The @kbd{tab} and @kbd{Meta-tab} keys maneuver around the | 758 On non-graphic terminals (VT100, DOS, etc.), hypertext links are |
227 various links on the page. | 759 surrounded by '[[' and ']]' by default. On a graphics terminal, the |
228 | 760 links are in bold print. @xref{Controlling Formatting} for information |
229 @b{NOTE:} Starting with Emacs/W3 3.0, form entry areas in a page can be | 761 on how to change this, or for help on getting the highlighting to work |
230 typed directly into. This is one of the main differences in navigation | 762 on graphics terminals. |
231 from version 2.0. If you are used to using the @kbd{f} and @kbd{b} keys | 763 |
232 to navigate around a buffer, I suggest training yourself to always use | 764 There are approximately 50 keys bound to special Emacs-W3 functions. |
233 @kbd{tab} and @kbd{M-tab} - it will save time and frustration on pages | 765 The basic rule of thumb regarding keybindings in Emacs-W3 is that a |
234 with lots of form fields. | |
235 | |
236 By default, hypertext links are surrounded by '[[' and ']]' on | |
237 non-graphic terminals (VT100, DOS window, etc.). On a graphics | |
238 terminal, the links are in shown in different colors. | |
239 @xref{Stylesheets} for information on how to change this. | |
240 | |
241 There are approximately 50 keys bound to special Emacs/W3 functions. | |
242 The basic rule of thumb regarding keybindings in Emacs/W3 is that a | |
243 lowercase key takes an action on the @b{current document}, and an | 766 lowercase key takes an action on the @b{current document}, and an |
244 uppercase key takes an action on the document pointed to by the | 767 uppercase key takes an action on the document pointed to by the |
245 hypertext link @b{under the cursor}. | 768 hypertext link @b{under the cursor}. |
246 | 769 |
247 There are several areas that the keybindings fall into: movement, | 770 There are several areas that the keybindings fall into: movement, |
248 information, action, and miscellaneous. | 771 information, action, and miscellaneous. |
249 | 772 |
773 @ifinfo | |
250 @menu | 774 @menu |
251 * Movement:: Moving around in the buffer. | 775 * Movement:: Moving around in a Emacs-W3 buffer |
252 * Information:: Getting information about a document. | 776 * Information:: Getting information about the Emacs-W3 document being |
253 * Action:: Following links, printing, etc. | 777 viewed, and/or links within that document. |
254 * Miscellaneous:: Everything else. | 778 * Action:: Taking actions in a Emacs-W3 buffer (following links, |
779 printing, etc.) | |
780 * Miscellaneous:: Miscellaneous keybindings | |
255 @end menu | 781 @end menu |
256 | 782 @end ifinfo |
257 @node Movement, Information, Basic Usage, Basic Usage | 783 @node Movement, Information, Basic Usage, Basic Usage |
258 @section Movement | 784 @section Movement |
259 | 785 :: WORK :: Document the 'h' and 'a' keymaps |
260 All the standard Emacs bindings for movement are still in effect, with a | |
261 few additions for convenience. | |
262 | |
263 @table @kbd | 786 @table @kbd |
264 @findex w3-scroll-up | 787 @findex scroll-up |
265 @kindex space | 788 @kindex SPC |
266 @item space | 789 @item SPC |
267 Scroll downward in the buffer. With prefix arg, scroll down that many | 790 Scroll downward in the buffer. With prefix arg, scroll down that many |
268 screenfuls. | 791 screenfuls. |
269 @kindex backspace | 792 @kindex DEL |
270 @findex scroll-down | 793 @findex scroll-down |
271 @item backspace | 794 @item DEL |
272 Scroll upward in the buffer. With prefix arg, scroll up that many | 795 Scroll upward in the buffer. With prefix arg, scroll up that many |
273 screenfuls. | 796 screenfuls. |
274 @kindex < | 797 @kindex < |
275 @findex w3-start-of-document | 798 @findex w3-start-of-document |
276 @item < | 799 @item < |
278 @kindex > | 801 @kindex > |
279 @findex w3-end-of-document | 802 @findex w3-end-of-document |
280 @item > | 803 @item > |
281 Goes to the end of document | 804 Goes to the end of document |
282 @kindex b | 805 @kindex b |
283 @kindex Meta-tab | 806 @kindex Shift-TAB |
284 @findex w3-widget-backward | 807 @findex w3-back-link |
285 @item Meta-tab, Shift-tab, b | 808 @item Shift-TAB, b |
286 Attempts to move backward one link area in the current document. | 809 Attempts to move backward one link area in the current document. |
287 Signals an error if no previous links are found. | 810 Signals an error if no previous links are found. |
288 @kindex f | 811 @kindex hl |
289 @kindex tab | 812 @findex w3-show-hotlist |
290 @kindex n | 813 @item hl |
291 @findex w3-widget-forward | 814 Displays a complete listing of the items in the hotlist. |
292 @item tab, f, n | 815 @kindex hu |
293 Attempts to move forward one link area in the current document. Signals | 816 @findex w3-use-hotlist |
294 an error if no more links are found. | 817 @item hu |
295 @kindex B | 818 Go to a link in the hotlist. |
296 @findex w3-backward-in-history | |
297 @item B | |
298 Move backwards in the history stack. | |
299 @kindex F | |
300 @findex w3-forward-in-history | |
301 @item F | |
302 Move forwards in the history stack. | |
303 @kindex l | |
304 @findex w3-goto-last-buffer | |
305 @item l | |
306 Return to the last buffer shown before this buffer. | |
307 @kindex q | |
308 @findex w3-quit | |
309 @item q | |
310 Kill this buffer. | |
311 @kindex Q, u | |
312 @findex w3-leave-buffer | |
313 @item Q, u | |
314 Bury this buffer, but don't kill it | |
315 @end table | |
316 | |
317 @node Information, Action, Movement, Basic Usage | |
318 @section Information | |
319 | |
320 These functions relate information about one or more links on the | |
321 current document. | |
322 | |
323 @table @kbd | |
324 @kindex v | |
325 @findex url-view-url | |
326 @item v | |
327 This shows the @sc{url} of the current document in the minibuffer. | |
328 @kindex V | |
329 @findex w3-view-this-url | |
330 @item V | |
331 This shows the @sc{url} of the hypertext link under point in the | |
332 minibuffer. | |
333 @kindex i | |
334 @findex w3-document-information | |
335 @item i | |
336 Shows miscellaneous information about the currently displayed document. | |
337 This includes the @sc{url}, the last modified date, @sc{mime} headers, | |
338 the @sc{http} response code, and any relationships to other documents. | |
339 Any security information is also displayed. | |
340 @kindex I | |
341 @findex w3-document-information-this-url | |
342 @item I | |
343 Shows information about the @sc{url} at point. | |
344 @kindex s | |
345 @findex w3-source-document | |
346 @item s | |
347 This shows the @sc{html} source of the current document in a separate buffer. | |
348 The buffer's name is based on the document's @sc{url}. | |
349 @kindex S | |
350 @findex w3-source-document-at-point | |
351 @item S | |
352 Shows the @sc{html} source of the hypertext link under point in a separate | |
353 buffer. The buffer's name is based on the document's @sc{url}. | |
354 @kindex k | |
355 @findex w3-save-url | |
356 @item k | |
357 This stores the current document's @sc{url} in the kill ring, and also in the | |
358 current window-system's clipboard, if possible. | |
359 @kindex K | |
360 @findex w3-save-this-url | |
361 @item K | |
362 Stores the @sc{url} of the document under point in the kill ring, and also in | |
363 the current window-system's clipboard, if possible. | |
364 @end table | |
365 | |
366 @node Action, Miscellaneous, Information, Basic Usage | |
367 @section Action | |
368 | |
369 First, here are the keys and functions that bring up a new hypertext | |
370 page, usually creating a new buffer. | |
371 @table @kbd | |
372 @kindex m | 819 @kindex m |
373 @findex w3-complete-link | 820 @findex w3-complete-link |
374 @item m | 821 @item m |
375 Choose a link from the current buffer and follow it. A completing-read | 822 Choose a link from the current buffer and follow it. A completing-read |
376 is done on all the links, so @kbd{space} and @kbd{TAB} can be used for | 823 is done on all the links, so @kbd{space} and @kbd{TAB} can be used for |
377 completion. | 824 completion. |
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 | |
378 @kindex return | 887 @kindex return |
379 @findex w3-follow-link | 888 @findex w3-follow-link |
380 @item return | 889 @item return |
381 Pressing return when over a hyperlink attempts to follow the link | 890 Pressing return when over a hyperlink attempts to follow the link |
382 under the cursor. With a prefix argument (@kbd{C-u}), this forces the | 891 under the cursor. With a prefix argument (@kbd{C-u}), this forces the |
383 file to be saved to disk instead of being passed off to other viewers | 892 file to be saved to disk instead of being passed off to other viewers |
384 or being parsed as @sc{html}. | 893 or being parsed as HTML. |
385 | 894 |
386 Pressing return when over a form input field can cause auto-submission | 895 Pressing return when over a form input field will prompt in the |
387 of the form. This is for Mosaic and Netscape compatibility. If there | |
388 is only one item in the form other than submit or reset buttons, then | |
389 | |
390 minibuffer for the data to insert into the input field. Type checking | 896 minibuffer for the data to insert into the input field. Type checking |
391 is done, and the data is only entered into the form when data of the | 897 is done, and the data is only entered into the form when data of the |
392 correct type is entered (ie: cannot enter 44 for 'date' field, etc). | 898 correct type is entered (ie: cannot enter 44 for 'date' field, etc). |
393 | 899 |
394 @kindex Middle Mouse Button | 900 @kindex Middle Mouse Button |
411 | 917 |
412 @kindex p | 918 @kindex p |
413 @findex w3-print-this-url | 919 @findex w3-print-this-url |
414 @item p | 920 @item p |
415 Prints out the current buffer in a variety of formats, including | 921 Prints out the current buffer in a variety of formats, including |
416 PostScript, @sc{html} source, or formatted text. | 922 PostScript, HTML source, or formatted text. |
417 @kindex P | 923 @kindex P |
418 @findex w3-print-url-under-point | 924 @findex w3-print-url-under-point |
419 @item P | 925 @item P |
420 Prints out the @sc{url} under point in a variety of formats, including | 926 Prints out the URL under point in a variety of formats, including |
421 PostScript, @sc{html} source, or formatted text. | 927 PostScript, HTML source, or formatted text. |
422 @kindex m | 928 @kindex m |
423 @findex w3-complete-link | 929 @findex w3-complete-link |
424 @item m | 930 @item m |
425 Selects a destination from a list of all the hyperlinks in the current | 931 Selects a destination from a list of all the hyperlinks in the current |
426 buffer. Use @kbd{space} and @kbd{tab} to complete on the links. | 932 buffer. Use @kbd{space} and @kbd{tab} to complete on the links. |
435 unconditional reload from the remote server - the locally cached copy is | 941 unconditional reload from the remote server - the locally cached copy is |
436 not consulted. | 942 not consulted. |
437 @kindex C-o | 943 @kindex C-o |
438 @findex w3-fetch | 944 @findex w3-fetch |
439 @item C-o | 945 @item C-o |
440 Prompts for a @sc{url} in the minibuffer, and attempts to fetch | 946 Prompts for a URL in the minibuffer, and attempts to fetch |
441 it. If there are any errors, or Emacs/W3 cannot understand the type of link | 947 it. If there are any errors, or Emacs-W3 cannot understand the type of link |
442 requested, the errors are displayed in a hypertext buffer. | 948 requested, the errors are displayed in a hypertext buffer. |
443 @kindex o | 949 @kindex o |
444 @findex w3-open-local | 950 @findex w3-open-local |
445 @vindex url-use-hypertext-dired | 951 @vindex url-use-hypertext-dired |
446 @item o | 952 @item o |
447 Opens a local file, interactively. This prompts for a local file name | 953 Opens a local file, interactively. This prompts for a local file name |
448 to open. The file must exist, and may be a directory. If the requested | 954 to open. The file must exist, and may be a directory. If the requested |
449 file is a directory and @code{url-use-hypertext-dired} is @code{nil}, | 955 file is a directory and @code{url-use-hypertext-dired} is @code{nil}, |
450 then a dired-mode buffer is displayed. If non@code{nil}, then Emacs/W3 | 956 then a dired-mode buffer is displayed. If non@code{nil}, then Emacs-W3 |
451 automatically generates a hypertext listing of the directory. The | 957 automatically generates a hypertext listing of the directory. The |
452 hypertext mode is the default, so that all the keys and functions remain | 958 hypertext mode is the default, so that all the keys and functions remain |
453 the same. | 959 the same. |
454 | 960 |
455 @kindex M-s | 961 @kindex M-s |
456 @findex w3-save-as | 962 @findex w3-search |
457 @item M-s | 963 @item M-s |
458 Save a document to the local disk as HTML Source, Formatted Text, LaTeX | 964 Perform a search, if this is a searchable index. Searching requires a |
459 Source, or Binary. | 965 server - Emacs-W3 can not do local file searching, as there are too many |
460 | 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. | |
461 @kindex Hv | 968 @kindex Hv |
462 @findex w3-show-history-list | 969 @findex w3-show-history-list |
463 @vindex w3-keep-history | 970 @vindex w3-keep-history |
464 @item Hv | 971 @item Hv |
465 If @code{url-keep-history} is non-@code{nil}, then Emacs/W3 keeps track | 972 If @code{url-keep-history} is non-@code{nil}, then Emacs-W3 keeps track |
466 of all the @sc{url}s visited in an Emacs session. This function takes all | 973 of all the URLs visited in an Emacs session. This function takes all |
467 the links that are in that internal list, and formats them as hypertext | 974 the links that are in that internal list, and formats them as hypertext |
468 links in a list. | 975 links in a list. |
469 @end table | 976 @end table |
470 | 977 |
471 @cindex Buffer movement | 978 @cindex Buffer movement |
472 And here are the commands to move around between Emacs/W3 buffers: | 979 And here are the commands to move around between Emacs-W3 buffers: |
473 | 980 |
474 @table @kbd | 981 @table @kbd |
475 @kindex l | 982 @kindex l |
476 @findex w3-goto-last-buffer | 983 @findex w3-goto-last-buffer |
477 @item l | 984 @item l |
502 @item HF, F | 1009 @item HF, F |
503 Takes one step forward along the path in the current history. Has no | 1010 Takes one step forward along the path in the current history. Has no |
504 effect if at the end of the session history. | 1011 effect if at the end of the session history. |
505 @end table | 1012 @end table |
506 | 1013 |
507 @node Miscellaneous, , Action, Basic Usage | 1014 @node Miscellaneous, , Action, Basic Usage |
508 @section Miscellaneous | 1015 @section Miscellaneous |
509 | |
510 @table @kbd | 1016 @table @kbd |
511 @kindex M-m | 1017 @kindex M-m |
512 @findex w3-mail-current-document | 1018 @findex w3-mail-current-document |
513 @item M-m | 1019 @item M-m |
514 Mails the current document to someone. Choose from several different | 1020 Mails the current document to someone. Choose from several different |
515 formats to mail: formatted text, @sc{html} source, PostScript, or LaTeX source. | 1021 formats to mail: formatted text, HTML source, PostScript, or LaTeX source. |
516 When the @sc{html} source is mailed, then an appropriate <base> tag is inserted | 1022 When the HTML source is mailed, then an appropriate <base> tag is inserted |
517 at the beginning of the document so that relative links may be followed | 1023 at the beginning of the document so that relative links may be followed |
518 correctly by whoever receives the mail. | 1024 correctly by whoever receives the mail. |
519 @kindex M-M | 1025 @kindex M-M |
520 @findex w3-mail-document-under-point | 1026 @findex w3-mail-document-under-point |
521 @item M-M | 1027 @item M-M |
522 Mails the document pointed to by the hypertext link under point to someone. | 1028 Mails the document pointed to by the hypertext link under point to someone. |
523 Choose from several different formats to mail: formatted text, @sc{html} source, | 1029 Choose from several different formats to mail: formatted text, HTML source, |
524 PostScript, or LaTeX source. When the @sc{html} source is mailed, then an | 1030 PostScript, or LaTeX source. When the HTML source is mailed, then an |
525 appropriate <base> tag is inserted at the beginning of the document so that | 1031 appropriate <base> tag is inserted at the beginning of the document so that |
526 relative links may be followed correctly by whoever receives the | 1032 relative links may be followed correctly by whoever receives the |
527 mail. | 1033 mail. |
528 @kindex p | 1034 @kindex p |
529 @findex w3-print-this-url | 1035 @findex w3-print-this-url |
530 @item p | 1036 @item p |
531 Prints the current document. Choose from several different formats to | 1037 Prints the current document. Choose from several different formats to |
532 print: formatted text, @sc{html} source, PostScript (with ps-print), or by using | 1038 print: formatted text, HTML source, PostScript (with ps-print), or by using |
533 LaTeX and dvips). | 1039 LaTeX and dvips). |
534 | 1040 |
535 @findex lpr-buffer | 1041 @findex lpr-buffer |
536 @vindex lpr-command | 1042 @vindex lpr-command |
537 @vindex lpr-switches | 1043 @vindex lpr-switches |
538 When the formatted text is printed, the normal @code{lpr-buffer} function | 1044 When the formatted text is printed, the normal @code{lpr-buffer} function |
539 is called, and the variables @code{lpr-command} and @code{lpr-switches} | 1045 is called, and the variables @code{lpr-command} and @code{lpr-switches} |
540 control how the document is printed. | 1046 control how the document is printed. |
541 | 1047 |
542 When the @sc{html} source is printed, then an appropriate <base> tag is | 1048 When the HTML source is printed, then an appropriate <base> tag is |
543 inserted at the beginning of the document. | 1049 inserted at the beginning of the document. |
1050 @vindex w3-use-html2latex | |
1051 @vindex w3-html2latex-prog | |
1052 @vindex w3-html2latex-args | |
544 @vindex w3-print-commnad | 1053 @vindex w3-print-commnad |
545 @vindex w3-latex-docstyle | 1054 @vindex w3-latex-docstyle |
546 When postscript is printed, then the @sc{html} source of the document is | 1055 When postscript is printed, then the HTML source of the document is |
547 converted into LaTeX source. There are several variables controlling | 1056 converted into LaTeX source. If the variable @code{w3-use-html2latex} |
548 what the final LaTeX document looks like. | 1057 is non-@code{nil}, then the program specified by |
549 | 1058 @code{w3-html2latex-prog} is run in a subprocess with the arguments in |
550 :: WORK :: Document the new LaTeX backend | 1059 @code{w3-html2latex-args}. The @code{w3-html2latex-prog} must accept |
551 | 1060 HTML source on its standard input and send the LaTeX output to standard |
552 @table @code | 1061 output. If @code{w3-use-html2latex} is @code{nil}, then an Emacs Lisp |
553 @item w3-latex-use-latex2e | 1062 function uses regular expressions to replace the HTML code with LaTeX |
554 @vindex w3-latex-use-latex2e | 1063 markup. The variable @code{w3-latex-docstyle} controls how the document |
555 If non-@code{nil}, configures the LaTeX engine to use the LaTeX2e | 1064 is laid out in this case, and postscript figures are printed as |
556 syntax. A @code{nil} value indicates that LaTeX 2.0.9 compabibility | 1065 well. |
557 will be used instead. | |
558 @item w3-latex-docstyle | |
559 @vindex w3-latex-docstyle | |
560 The document style to use when printing or mailing converted @sc{html} files | |
561 in LaTeX. Good defaults are: @{article@}, [psfig,twocolumn]@{article@}, | |
562 etc. | |
563 @item w3-latex-packages | |
564 @vindex w3-latex-packages | |
565 List of LaTeX packages to include. Currently this is only used if | |
566 @code{w3-latex-use-latex2e} is non-@code{nil}. | |
567 @item w3-latex-use-maketitle | |
568 @vindex w3-latex-use-maketitle | |
569 If non-@code{nil}, the LaTeX engine will use real LaTeX title pages for | |
570 document titles. | |
571 @item w3-latex-print-links | |
572 @vindex w3-latex-print-links | |
573 If non-@code{nil}, prints the @sc{url}s of hypertext links as endnotes at the | |
574 end of the document. If set to @code{footnote}, prints the @sc{url}'s as | |
575 footnotes on each page. | |
576 @end table | |
577 | |
578 @kindex P | 1066 @kindex P |
579 @findex w3-print-url-under-point | 1067 @findex w3-print-url-under-point |
580 @item P | 1068 @item P |
581 Prints the document pointed to by the hypertext link under point. | 1069 Prints the document pointed to by the hypertext link under point. |
582 Please see the previous item for more information. | 1070 Please see the previous item for more information. |
583 @kindex M-x w3-insert-formatted-url | 1071 @kindex M-x w3-insert-formatted-url |
584 @findex w3-insert-formatted-url | 1072 @findex w3-insert-formatted-url |
585 @item M-x w3-insert-formatted-url | 1073 @item M-x w3-insert-formatted-url |
586 Insert a fully formatted @sc{html} link into another buffer. This gets the | 1074 Insert a fully formatted HTML link into another buffer. This gets the |
587 name and @sc{url} of either the current buffer, or, with a prefix arg, of the | 1075 name and URL of either the current buffer, or, with a prefix arg, of the |
588 link under point, and construct the appropriate <a...>...</a> markup and | 1076 link under point, and construct the appropriate <a...>...</a> markup and |
589 insert it into the desired buffer. | 1077 insert it into the desired buffer. |
590 @kindex M-tab | 1078 @kindex M-tab |
591 @findex w3-insert-this-url | 1079 @findex w3-insert-this-url |
592 @item M-tab | 1080 @item M-tab |
593 Inserts the @sc{url} of the current document into another buffer. Buffer is | 1081 Inserts the URL of the current document into another buffer. Buffer is |
594 prompted for in the minibuffer. With prefix arg, uses the @sc{url} of the | 1082 prompted for in the minibuffer. With prefix arg, uses the URL of the |
595 link under point. | 1083 link under point. |
596 @kindex U | 1084 @kindex U |
597 @findex w3-use-links | 1085 @findex w3-use-links |
598 @item U | 1086 @item U |
599 Selects one of the <LINK> tags from this document and fetch it. Links | 1087 Selects one of the <LINK> tags from this document and fetch it. Links |
606 first asks what type of link to follow (Normal or Reverse), then does | 1094 first asks what type of link to follow (Normal or Reverse), then does |
607 a @code{completing-read} on only the links that have that type of | 1095 a @code{completing-read} on only the links that have that type of |
608 relationship. | 1096 relationship. |
609 @end table | 1097 @end table |
610 | 1098 |
611 @node Compatibility, Stylesheets, Basic Usage, Top | 1099 @node Compatibility, , , Top |
1100 @comment node-name, next, previous, up | |
612 @chapter Compatibility with other Browsers | 1101 @chapter Compatibility with other Browsers |
613 Due to the popularity of several other browsers, Emacs/W3 offers an easy | 1102 Due to the popularity of several other browsers, Emacs-W3 offers an easy |
614 transition to its much better way of life. This ranges from being able | 1103 transition to its much better way of life. This ranges from being able |
615 to share the same preferences files and disk cache to actually emulating | 1104 to share the same preferences files and disk cache to actually emulating |
616 the keybindings used in other browsers. | 1105 the keybindings used in other browsers. |
617 | 1106 |
1107 @ifinfo | |
618 @menu | 1108 @menu |
619 * Emulation:: Emacs/W3 can emulate the keybindings and | 1109 * Emulation:: Emacs-W3 can emulate the keybindings and |
620 other behaviours of other browsers. | 1110 other behaviours of other browsers. |
621 * Hotlist Handling:: A hotlist is an easy way to keep track of | 1111 * Hotlist Handling:: A hotlist is an easy way to keep track of |
622 interesting Web pages without having to | 1112 interesting Web pages without having to |
623 remember the exact path to get there. | 1113 remember the exact path to get there. |
624 * Session History:: Keeping a history of documents visited | 1114 * Session History:: Keeping a history of documents visited |
625 in one Emacs sessions allows the use of | 1115 in one Emacs sessions allows the use of |
626 'forward' and 'back' buttons easily. | 1116 'forward' and 'back' buttons easily. |
627 * Global History:: Keeping a history of all the places ever | 1117 * Global History:: Keeping a history of all the places ever |
628 visited on the web. | 1118 visited on the web. |
1119 * Annotations:: Annotations allow comments on other | |
1120 people's Web documents without needing | |
1121 to change the document. | |
629 @end menu | 1122 @end menu |
630 | 1123 @end ifinfo |
631 @node Emulation, Hotlist Handling, Compatibility, Compatibility | 1124 @node Emulation, Hotlist Handling, Compatibility, Compatibility |
632 @section Emulation | 1125 @section Emulation |
1126 :: WORK :: Document lynx emulation | |
1127 :: WORK :: Document netscape emulation | |
633 @cindex Browser emulation | 1128 @cindex Browser emulation |
634 @cindex Emulation of other browsers | 1129 @cindex Emulation of other browsers |
635 @cindex Netscape emulation | 1130 @cindex Netscape emulation |
636 @cindex Lynx emulation | 1131 @cindex Lynx emulation |
637 @findex turn-on-netscape-emulation | 1132 @findex turn-on-netscape-emulation |
638 @findex turn-on-lynx-emulation | 1133 @findex turn-on-lynx-emulation |
639 @findex w3-netscape-emulation-minor-mode | 1134 @findex w3-netscape-emulation-minor-mode |
640 @findex w3-lynx-emulation-minor-mode | 1135 @findex w3-lynx-emulation-minor-mode |
641 @vindex w3-mode-hook | 1136 @vindex w3-mode-hook |
642 | 1137 |
643 :: WORK :: Document lynx emulation | |
644 @table @kbd | |
645 @item Down arrow | |
646 Highlight next topic | |
647 @item Up arrow | |
648 Highlight previous topic | |
649 @item Right arrow, Return, Enter | |
650 Jump to highlighted topic | |
651 @item Left arrow | |
652 Return to previous topic | |
653 @item + | |
654 Scroll down to next page (Page-Down) | |
655 @item - | |
656 Scroll up to previous page (Page-Up) | |
657 @item SPACE | |
658 Scroll down to next page (Page-Down) | |
659 @item b | |
660 Scroll up to previous page (Page-Up) | |
661 @item C-A | |
662 Go to first page of the current document (Home) | |
663 @item C-E | |
664 Go to last page of the current document (End) | |
665 @item C-B | |
666 Scroll up to previous page (Page-Up) | |
667 @item C-F | |
668 Scroll down to next page (Page-Down) | |
669 @item C-N | |
670 Go forward two lines in the current document | |
671 @item C-P | |
672 Go back two lines in the current document | |
673 @item ) | |
674 Go forward half a page in the current document | |
675 @item ( | |
676 Go back half a page in the current document | |
677 @item # | |
678 Go to Toolbar or Banner in the current document | |
679 @item ?, h | |
680 Help (this screen) | |
681 @item a | |
682 Add the current link to a bookmark file | |
683 @item c | |
684 Send a comment to the document owner | |
685 @item d | |
686 Download the current link | |
687 @item e | |
688 Edit the current file | |
689 @item g | |
690 Goto a user specified @sc{url} or file | |
691 @item i | |
692 Show an index of documents | |
693 @item j | |
694 Execute a jump operation | |
695 @item k | |
696 Show a list of key mappings | |
697 @item l | |
698 List references (links) in current document | |
699 @item m | |
700 Return to main screen | |
701 @item o | |
702 Set your options | |
703 @item p | |
704 Print the current document | |
705 @item q | |
706 Quit | |
707 @item / | |
708 Search for a string within the current document | |
709 @item s | |
710 Enter a search string for an external search | |
711 @item n | |
712 Go to the next search string | |
713 @item v | |
714 View a bookmark file | |
715 @item V | |
716 Go to the Visited Links Page | |
717 @item x | |
718 Force submission of form or link with no-cache | |
719 @item z | |
720 Cancel transfer in progress | |
721 @item [backspace] | |
722 Go to the history Page | |
723 @item = | |
724 Show file and link info | |
725 @item \ | |
726 Toggle document source/rendered view | |
727 @item ! | |
728 Spawn your default shell | |
729 @item * | |
730 Toggle image_links mode on and off | |
731 @item [ | |
732 Toggle pseudo_inlines mode on and off | |
733 @item ] | |
734 Send an @sc{http} @sc{head} request for the current doc or link | |
735 @item C-R | |
736 Reload current file and refresh the screen | |
737 @item C-W | |
738 Refresh the screen | |
739 @item C-U | |
740 Erase input line | |
741 @item C-G | |
742 Cancel input or transfer | |
743 @item C-T | |
744 Toggle trace mode on and off | |
745 @item C-K | |
746 Invoke the Cookie Jar Page | |
747 @end table | |
748 | |
749 :: WORK :: Document netscape emulation | |
750 Uh, turn this into pretty tables about what keys are emulated. | |
751 | |
752 @example | |
753 (define-key w3-netscape-emulation-minor-mode-map "\M-s" 'w3-save-as) | |
754 (define-key w3-netscape-emulation-minor-mode-map "\M-m" 'w3-mailto) | |
755 (define-key w3-netscape-emulation-minor-mode-map "\M-n" 'make-frame) | |
756 (define-key w3-netscape-emulation-minor-mode-map "\M-l" 'w3-fetch) | |
757 (define-key w3-netscape-emulation-minor-mode-map "\M-o" 'w3-open-local) | |
758 (define-key w3-netscape-emulation-minor-mode-map "\M-p" 'w3-print-this-url) | |
759 (define-key w3-netscape-emulation-minor-mode-map "\M-q" 'w3-quit) | |
760 (define-key w3-netscape-emulation-minor-mode-map "\M-f" 'w3-search-forward) | |
761 (define-key w3-netscape-emulation-minor-mode-map "\M-g" 'w3-search-again) | |
762 (define-key w3-netscape-emulation-minor-mode-map "\M-r" 'w3-reload-document) | |
763 (define-key w3-netscape-emulation-minor-mode-map "\M-i" 'w3-load-delayed-images) | |
764 (define-key w3-netscape-emulation-minor-mode-map "\M-a" 'w3-hotlist-add-document) | |
765 (define-key w3-netscape-emulation-minor-mode-map "\M-b" 'w3-show-hotlist) | |
766 (define-key w3-netscape-emulation-minor-mode-map "\M-h" 'w3-show-history-list) | |
767 | |
768 @end example | |
769 | |
770 @node Hotlist Handling, Session History, Emulation, Compatibility | 1138 @node Hotlist Handling, Session History, Emulation, Compatibility |
771 @section Hotlist Handling | 1139 @section Hotlist Handling |
772 | |
773 :: WORK :: Document that it supports different types of hotlist formats | 1140 :: WORK :: Document that it supports different types of hotlist formats |
774 :: WORK :: Make sure everything hotlist related can be accessed via 'h' | 1141 :: WORK :: Make sure everything hotlist related can be accessed via 'h' |
775 In order to avoid having to traverse many documents to get to the same | 1142 In order to avoid having to traverse many documents to get to the same |
776 document over and over, Emacs/W3 supports a ``hotlist'' like Mosaic. This is | 1143 document over and over, Emacs-W3 supports a ``hotlist'' like Mosaic. This is |
777 a file that contains @sc{url}s and aliases. Hotlists allow quick access to any | 1144 a file that contains URLs and aliases. Hotlists allow quick access to any |
778 document in the Web, providing it has been visited and added to the hotlist. | 1145 document in the Web, providing it has been visited and added to the hotlist. |
779 The variable @code{w3-hotlist-file} determines where this information | 1146 The variable @code{w3-hotlist-file} determines where this information |
780 is saved. The structure of the file is compatible with Mosaic's | 1147 is saved. The structure of the file is compatible with Mosaic's |
781 hotlist file, so this defaults to @file{~/.mosaic-hotlist-default}. | 1148 hotlist file, so this defaults to @file{~/.mosaic-hotlist-default}. |
782 | 1149 |
786 @findex w3-hotlist-add-document | 1153 @findex w3-hotlist-add-document |
787 @vindex w3-hotlist-file | 1154 @vindex w3-hotlist-file |
788 @item a | 1155 @item a |
789 Adds the current document to the hotlist, with the buffer name as its | 1156 Adds the current document to the hotlist, with the buffer name as its |
790 identifier. Modifies the file specified by @code{w3-hotlist-file}. If | 1157 identifier. Modifies the file specified by @code{w3-hotlist-file}. If |
791 this is given a prefix-argument (via @kbd{C-u}), the title is prompted | 1158 this is given a @var{prefix-argument} (via @kbd{C-u}), the title is |
792 for instead of automatically defaulting to the document title. | 1159 prompted for instead of automatically defaulting to the |
1160 document title. | |
793 | 1161 |
794 @findex w3-hotlist-refresh | 1162 @findex w3-hotlist-refresh |
795 @vindex w3-hotlist-file | 1163 @vindex w3-hotlist-file |
796 @kindex hR | 1164 @kindex hR |
797 @item hR | 1165 @item hR |
823 @key{tab} key shows partial completions. | 1191 @key{tab} key shows partial completions. |
824 | 1192 |
825 @item hv | 1193 @item hv |
826 @kindex hv | 1194 @kindex hv |
827 @findex w3-show-hotlist | 1195 @findex w3-show-hotlist |
828 Converts the hotlist into @sc{html} and displays it. | 1196 Converts the hotlist into HTML and displays it. |
829 @item ha | 1197 @item ha |
830 @kindex ha | 1198 @kindex ha |
831 @findex w3-hotlist-apropos | 1199 @findex w3-hotlist-apropos |
832 Shows the hotlist entries matching a regular expression. | 1200 Shows the hotlist entries matching a regular expression. |
833 @item hA | 1201 @item hA |
836 Appends another hotlist file to the one currently in memory. | 1204 Appends another hotlist file to the one currently in memory. |
837 @end table | 1205 @end table |
838 @node Session History, Global History, Hotlist Handling, Compatibility | 1206 @node Session History, Global History, Hotlist Handling, Compatibility |
839 @section History | 1207 @section History |
840 @cindex History Lists | 1208 @cindex History Lists |
841 | 1209 Almost all web browsers keep track of the URLs followed from a page, so |
842 Almost all web browsers keep track of the @sc{url}s followed from a page, so | |
843 that it can provide @b{forward} and @b{back} buttons to keep a @i{path} | 1210 that it can provide @b{forward} and @b{back} buttons to keep a @i{path} |
844 of @sc{url}s that can be traversed easily. | 1211 of URLs that can be traversed easily. |
845 | |
846 @vindex url-keep-history | 1212 @vindex url-keep-history |
847 If the variable @code{url-keep-history} is @code{t}, then Emacs/W3 | 1213 If the variable @code{url-keep-history} is @code{t}, then Emacs-W3 |
848 keeps a list of all the @sc{url}s visited in a session. | 1214 keeps a list of all the URLs visited in a session. |
849 | |
850 @findex w3-show-history | 1215 @findex w3-show-history |
851 To view a listing of the history for this session of Emacs/W3, use | 1216 To view a listing of the history for this session of Emacs-W3, use |
852 @code{M-x w3-show-history} from any buffer, and Emacs/W3 generates an | 1217 @code{M-x w3-show-history} from any buffer, and Emacs-W3 generates an |
853 @sc{html} document showing every @sc{url} visited since Emacs started (or | 1218 HTML document showing every URL visited since Emacs started (or |
854 cleared the history list), and then format it. Any of the links can | 1219 cleared the history list), and then format it. Any of the links can |
855 be chosen and followed to the original document. To clear the history | 1220 be chosen and followed to the original document. To clear the history |
856 list, choose 'Clear History' from the 'Options' menu. | 1221 list, choose 'Clear History' from the 'Options' menu. |
857 | 1222 |
858 @findex w3-forward-in-history | 1223 @findex w3-forward-in-history |
859 @findex w3-backward-in-history | 1224 @findex w3-backward-in-history |
860 @findex w3-fetch | 1225 @findex w3-fetch |
861 Another twist on the history list mechanism is the fact that all | 1226 Another twist on the history list mechanism is the fact that all |
862 Emacs/W3 buffers remember what @sc{url}, buffer, and buffer position of the | 1227 Emacs-W3 buffers remember what URL, buffer, and buffer position of the |
863 last document, and also keeps track of the next location jumped @b{to} | 1228 last document, and also keeps track of the next location jumped @b{to} |
864 from that buffer. This means that the user can go forwards and | 1229 from that buffer. This means that the user can go forwards and |
865 backwards very easily along the path taken to reach a particular | 1230 backwards very easily along the path taken to reach a particular |
866 document. To go forward, use the function @code{w3-forward-in-history}, | 1231 document. To go forward, use the function @code{w3-forward-in-history}, |
867 to go backward, use the function @code{w3-backward-in-history}. | 1232 to go backward, use the function @code{w3-backward-in-history}. |
868 | 1233 |
869 @node Global History, , Session History, Compatibility | 1234 @node Global History, Annotations, Session History, Compatibility |
870 @section Global History | 1235 @section Global History |
871 | |
872 :: WORK :: Document that the global history can have diff. formats | 1236 :: WORK :: Document that the global history can have diff. formats |
873 Most web browsers also support the idea of a ``history'' of @sc{url}s the | 1237 Most web browsers also support the idea of a ``history'' of URLs the |
874 user has visited, and it displays them in a different style than normal | 1238 user has visited, and it displays them in a different style than normal |
875 @sc{url}s. | 1239 URLs. |
876 | 1240 |
877 @vindex url-keep-history | 1241 @vindex url-keep-history |
878 @vindex url-global-history-file | 1242 @vindex url-global-history-file |
879 If the variable @code{url-keep-history} is @code{t}, then Emacs/W3 | 1243 If the variable @code{url-keep-history} is @code{t}, then Emacs-W3 |
880 keeps a list of all the @sc{url}s visited in a session. The file is | 1244 keeps a list of all the URLs visited in a session. The file is |
881 automatically written to disk when exiting emacs. The list is added to | 1245 automatically written to disk when exiting emacs. The list is added to |
882 those already in the file specified by @code{url-global-history-file}, | 1246 those already in the file specified by @code{url-global-history-file}, |
883 which defaults to @file{~/.mosaic-global-history}. | 1247 which defaults to @file{~/.mosaic-global-history}. |
884 | 1248 |
885 If any @sc{url} in the list is found in the file, it is not saved, but new | 1249 If any URL in the list is found in the file, it is not saved, but new |
886 ones are added at the end of the file. | 1250 ones are added at the end of the file. |
887 | 1251 |
888 The function that saves the global history list is smart enough to | 1252 The function that saves the global history list is smart enough to |
889 notice what style of history list is being used (Netscape, Emacs/W3, or | 1253 notice what style of history list is being used (Netscape, Emacs-W3, or |
890 XMosaic), and writes out the new additions appropriately. | 1254 XMosaic), and writes out the new additions appropriately. |
891 | 1255 |
892 @cindex Completion of URLs | 1256 @cindex Completion of URLs |
893 @cindex Usefulness of global history | 1257 @cindex Usefulness of global history |
894 One of the nice things about keeping a global history files is that Emacs/W3 | 1258 One of the nice things about keeping a global history files is that Emacs-W3 |
895 can use it as a completion table. When doing @kbd{M-x w3-fetch}, pressing | 1259 can use it as a completion table. When doing @kbd{M-x w3-fetch}, pressing |
896 the @kbd{tab} or @kbd{space} key will show all completions for a | 1260 the @kbd{tab} or @kbd{space} key will show all completions for a |
897 partial @sc{url}. This is very useful, especially for very long @sc{url}s that | 1261 partial URL. This is very useful, especially for very long URLs that |
898 are not in a hotlist, or for seeing all the pages from a particular web | 1262 are not in a hotlist, or for seeing all the pages from a particular web |
899 site before choosing which to retrieve. | 1263 site before choosing which to retrieve. |
900 | 1264 |
901 @node Stylesheets, Supported URLs, Compatibility, Top | 1265 @node Annotations, Group Annotations, Global History, Compatibility |
902 @chapter Stylesheets | 1266 @section Annotations |
903 The way in which Emacs/W3 formats a document is very customizable. All | 1267 @cindex Annotations |
904 formatting is now controlled by a default stylesheet set by the user | 1268 Mosaic can @i{annotate} documents. Annotations are comments about the |
905 with the @code{w3-default-stylesheet} variable. Emacs/W3 currently | 1269 current document, and these annotations appear as a link to the comments |
906 supports the @sc{W3C} recommendation for Cascading Style Sheets, Level 1 | 1270 at the end of the document. The original file is not changed. |
907 (commonly known as @sc{CSS1}) with a few experimental items from other | 1271 |
908 W3C proposals. Wherever Emacs/W3 diverges from the specification, it | 1272 @ifinfo |
909 will be clearly documented, and will be changed once a full standard is | |
910 available. | |
911 | |
912 Support for @sc{DSSSL} is progressing, but spare time is at an all-time | |
913 low. If anyone would like to help, please contact the author. | |
914 | |
915 The following sections closely parallel the @sc{CSS1} specification so | |
916 it should be very easy to look up what Emacs/W3 supports when browsing | |
917 through the @sc{CSS1} specification. Please note that a lot of the text | |
918 in the following sections comes directly from the specification as | |
919 well. | |
920 | |
921 @menu | 1273 @menu |
922 * Terminology:: Terms used in the rest of this chapter. | 1274 * Group Annotations:: Annotations accessible by everyone |
923 * Basic Concepts:: Why are stylesheets useful? Getting started. | 1275 * Personal Annotations:: Private annotations only accessible |
924 * Pseudo-Classes/Elements:: Special classes for elements. | 1276 to the user who created them |
925 * The Cascade:: How stylesheets are combined. | |
926 * Properties:: What properties you can set on elements. | |
927 * Units:: What you can set them to. | |
928 @end menu | 1277 @end menu |
929 | 1278 @end ifinfo |
930 @node Terminology, Basic Concepts, Stylesheets, Stylesheets | 1279 @node Group Annotations, Personal Annotations, Annotations, Annotations |
931 @section Terminology | 1280 @subsection Group Annotations |
932 | 1281 @cindex Group Annotations |
933 @table @dfn | 1282 @b{@i{NOTE}}: The group annotation experiment has been terminated. It |
934 @item attribute | 1283 will be replaced with support on the server side for adding <LINK> tags |
935 HTML attribute, ie: @samp{align=center} - align is the attribute. | 1284 to documents. |
936 @item author | 1285 |
937 The author of an HTML document. | 1286 @node Personal Annotations, , Group Annotations, Annotations |
938 @item block-level element | 1287 @subsection Personal Annotations |
939 An element which has a line break before and after (e.g. 'H1' in @sc{HTML}). | 1288 @cindex Personal Annotations |
940 @item canvas | 1289 @vindex w3-personal-annotation-directory |
941 The part of the UA's drawing surface onto which documents are rendered. | 1290 Emacs-W3 looks in the directory specified by |
942 @item child element | 1291 @code{w3-personal-annotation-directory} (defaults to |
943 A subelement in @sc{sgml} terminology. | 1292 @file{~/.mosaic-personal-annotations}). Any personal annotations for a |
944 @item contextual selector | 1293 document are automatically appended when it is retrieved. |
945 A selector that matches elements based on their position in the document | 1294 |
946 structure. A contextual selector consists of several simple | 1295 :: WORK :: Document the new 'a' prefix keymap |
947 selectors. E.g., the contextual selector 'H1.initial B' consists of two | 1296 :: WORK :: Tell where the annotations are stored |
948 simple selectors, 'H1.initial' and 'B'. | 1297 |
949 @item @sc{css} | 1298 @findex w3-add-personal-annotation |
950 Cascading Style Sheets. | 1299 @vindex w3-annotation-mode |
951 @item declaration | 1300 To add a new personal annotation, type @kbd{M-x |
952 A property (e.g. 'font-size') and a corresponding value (e.g. '12pt'). | 1301 w3-add-personal-annotation}. This creates a new buffer, in the mode |
953 @item designer | 1302 specified by @code{w3-annotation-mode}. This defaults to |
954 The designer of a style sheet. | 1303 @code{html-mode}. If this variable is @code{nil}, or it points to an |
955 @item document | 1304 undefined function, then @code{default-major-mode} is consulted. |
956 @sc{html} document. | 1305 |
957 @item element | 1306 A minor mode redefines @kbd{C-c C-c} to complete the annotation and |
958 @sc{html} element. | 1307 store it on the local disk. |
959 @item element type | 1308 |
960 A generic identifier in @sc{sgml} terminology. | 1309 @findex w3-delete-personal-annotation |
961 @item fictional tag sequence | 1310 To delete a personal annotation, it must be the current page. Once |
962 A tool for describing the behavior of pseudo-classes and pseudo-elements. | 1311 reading the annotation, @kbd{M-x w3-delete-personal-annotation} will |
963 @item font size | 1312 remove it. This deletes the file containing the annotation, and any |
964 The size for which a font is designed. Typically, the size of a font is | 1313 references to it in the annotation log file. |
965 approximately equal to the distance from the bottom of the lowest letter | 1314 |
966 with a descender to the top of the tallest letter with an ascender and | 1315 Editing personal annotations is not yet supported. |
967 (optionally) with a diacritical mark. | 1316 |
968 @item @sc{html} extension | 1317 @node Controlling Formatting, General Formatting, Top, Top |
969 Markup introduced by UA vendors, most often to support certain visual | 1318 @comment node-name, next, previous, up |
970 effects. The @sc{font}, @sc{center} and @sc{blink} elements are examples | 1319 @chapter Controlling Formatting |
971 of HTML extensions, as is the @sc{bgcolor} attribute. One of the goals | 1320 @cindex Customizing formatting |
972 of @sc{css} is to provide an alternative to @sc{html} extensions. | 1321 @cindex Specifying Fonts |
973 @item inline element | 1322 @cindex Fonts |
974 An element which does not have a line break before and after | 1323 @cindex Colors |
975 (e.g. '@sc{strong}' in @sc{html}) | 1324 How Emacs-W3 formats a document is very customizable. How a document is |
976 @item intrinsic dimensions | 1325 displayed depends on whether the user is on a terminal |
977 The width and height as defined by the element itself, not imposed by | 1326 capable of graphics and a few variables. |
978 the surroundings. In this specification it is assumed that all replaced | 1327 |
979 elements -- and only replaced elements -- come with intrinsic | 1328 The following sections describe in more detail how to change the |
980 dimensions. | 1329 formatting of a document. |
981 @item parent element | 1330 |
982 The containing element in @sc{sgml} terminology. | 1331 @ifinfo |
983 @item pseudo-element | 1332 @menu |
984 Pseudo-elements are used in @sc{css} selectors to address typographical | 1333 * General Formatting:: Changing general things about a |
985 items (e.g. the first line of an element) rather than structural | 1334 document. |
986 elements. | 1335 * Character based terminals:: Changing how a document is |
987 @item pseudo-class | 1336 displayed on a non-graphics |
988 Pseudo-classes are used in @sc{css} selectors to allow information | 1337 terminal (vt100, etc.@:) or if |
989 external to the @sc{html} source (e.g. the fact that an anchor has been | 1338 @code{w3-delimit-emphasis} is @code{t}. |
990 visited or not) to classify elements. | 1339 * Graphics workstations:: Changing how a document is |
991 @item property | 1340 displayed on a graphics terminal |
992 A stylistic parameter that can be influenced through @sc{css}. | 1341 (Xwindows, Windows, NeXTstep, |
993 @item reader | 1342 OS/2, etc.) |
994 The person for whom the document is rendered. | 1343 * Inlined images:: How to specify how Emacs-W3 |
995 @item replaced element | 1344 handles inlined images/mpegs. |
996 An element that the @sc{css} formatter only knows the intrinsic | 1345 @end menu |
997 dimensions of. In @sc{html}, @sc{img}, @sc{input}, @sc{textarea}, | 1346 @end ifinfo |
998 @sc{select} and @sc{object} elements can be examples of replaced | 1347 @node General Formatting, Character based terminals, Controlling Formatting, Controlling Formatting |
999 elements. E.g., the content of the @sc{img} element is often replaced by | 1348 @section General formatting conventions |
1000 the image that the @sc{src} attribute points to. @sc{css1} does not | 1349 @iftex |
1001 define how the intrinsic dimensions are found. | 1350 @heading Setting the fill column |
1002 @item rule | 1351 @end iftex |
1003 A declaration (e.g. 'font-family: helvetica') and its selector | 1352 @ifinfo |
1004 (e.g. @sc{'H1'}). | 1353 @center -------------------- |
1005 @item selector | 1354 @center Setting the fill column |
1006 A string that identifies what elements the corresponding rule applies | 1355 @center -------------------- |
1007 to. A selector can either be a simple selector (e.g. 'H1') or a | 1356 @end ifinfo |
1008 contextual selector (e.g. @sc{'h1 b'}) which consists of several simple | 1357 @vindex fill-column |
1009 selectors. | 1358 @vindex w3-right-border |
1010 @item @sc{sgml} | 1359 Each time a document is parsed, the @code{fill-column} is recalculated |
1011 Standard Generalized Markup Language, of which @sc{html} is an | 1360 using @code{window-width} and @code{w3-right-border}. |
1012 application. | 1361 @code{w3-right-border} is an integer specifying how much room at the |
1013 @item simple selector | 1362 right edge of the screen to leave blank. The @code{fill-column} is set |
1014 A selector that matches elements based on the element type and/or | 1363 to @code{(- (window-width) @code{w3-right-border})}. |
1015 attributes, and not the element's position in the document | 1364 @iftex |
1016 structure. E.g., 'H1.initial' is a simple selector. | 1365 @heading Formatting of hypertext links |
1017 @item style sheet | 1366 @end iftex |
1018 A collection of rules. | 1367 @ifinfo |
1019 @item @sc{ua} | 1368 @center -------------------- |
1020 User Agent, often a web browser or web client. | 1369 @center Formatting of hypertext links |
1021 @item user | 1370 @center -------------------- |
1022 Synonymous with reader. | 1371 @end ifinfo |
1023 @item weight | 1372 @vindex w3-delimit-links |
1024 The priority of a rule. | 1373 @vindex w3-link-start-delimiter |
1025 @end table | 1374 @vindex w3-link-end-delimiter |
1026 | 1375 If the variable @code{w3-delimit-links} is non-@code{nil} (the default |
1027 @node Basic Concepts, Pseudo-Classes/Elements, Terminology, Stylesheets | 1376 for text-terminals), then hypertext links are surrounded by text |
1028 @section Basic Concepts | 1377 specified by the user. The variables @code{w3-link-start-delimiter} and |
1029 | 1378 @code{w3-link-end-delimiter} control what text is at the start and end |
1030 Designing simple style sheets is easy. One needs only to know a little | 1379 of a hypertext link. These variables are cons-pairs of two |
1031 HTML and some basic desktop publishing terminology. E.g., to set the | 1380 strings. |
1032 text color of 'H1' elements to blue, one can say: | 1381 |
1033 | 1382 If a link has never been visited before (it is not in the @i{global |
1034 @example | 1383 history}), then the @code{car} of these variables is inserted at the |
1035 H1 @{ color: blue @} | 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: | |
1386 | |
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. | |
1036 @end example | 1390 @end example |
1037 | 1391 |
1038 The example above is a simple CSS rule. A rule consists of two main | 1392 @iftex |
1039 parts: selector ('H1') and declaration ('color: blue'). The declaration | 1393 @heading Formatting of lists |
1040 has two parts: property ('color') and value ('blue'). While the example | 1394 @end iftex |
1041 above tries to influence only one of the properties needed for rendering | 1395 @ifinfo |
1042 an HTML document, it qualifies as a style sheet on its own. Combined | 1396 @center -------------------- |
1043 with other style sheets (one fundamental feature of CSS is that style | 1397 @center Formatting of lists |
1044 sheets are combined) it will determine the final presentation of the | 1398 @center -------------------- |
1045 document. | 1399 @end ifinfo |
1046 | 1400 @cindex Indentation |
1047 The selector is the link between the HTML document and the style sheet, and | 1401 @vindex w3-indent-level |
1048 all HTML element types are possible selectors. | 1402 There are several different ways to control the formatting of lists. |
1049 | 1403 The most obvious is how deeply they are indented relative to the rest of |
1050 @node Pseudo-Classes/Elements, The Cascade, Basic Concepts, Stylesheets | 1404 the paragraphs in the document. To control this, set the |
1051 @section Pseudo-Classes/Elements | 1405 variable @code{w3-indent-level}. This is the number of spaces to |
1052 | 1406 indent lists and other items requiring special margins. |
1053 In @sc{css1}, style is normally attached to an element based on its | 1407 |
1054 position in the document structure. This simple model is sufficient for | 1408 @vindex w3-list-chars-assoc |
1055 a wide variety of styles, but doesn't cover some common effects. The | 1409 Another thing that is easy to change about lists is the bullet character |
1056 concept of pseudo-classes and pseudo-elements extend addressing in | 1410 put at the front of each list item. This is controlled by the variable |
1057 @sc{css1} to allow external information to influence the formatting | 1411 @code{w3-list-chars-assoc}, which is an assoc list. This is a list of |
1058 process. | 1412 lists, each sublist describing what to put at the start of each |
1059 | 1413 particular list type. The @code{car} of this list should be a symbol |
1060 Pseudo-classes and pseudo-elements can be used in @sc{css} selectors, | 1414 (@b{not} a string) representing the type of list (e.g., @samp{ul}). |
1061 but do not exist in the @sc{html} source. Rather, they are "inserted" by | 1415 The rest of the list should consist of strings to insert at certain |
1062 the @sc{ua} under certain conditions to be used for addressing in style | 1416 levels of lists. The @code{n}th element of this list is used when the |
1063 sheets. They are referred to as "classes" and "elements" since this is a | 1417 list is nested @code{n + 1} levels. If the list is not long enough to |
1064 convenient way of describing their behavior. More specifically, their | 1418 define a string for a certain nesting level, then it defaults to either |
1065 behavior is defined by a fictional tag sequence. | 1419 a '*' or a '.'. |
1066 | 1420 @iftex |
1067 Pseudo-elements are used to address sub-parts of elements, while | 1421 @heading Formatting of directory listings |
1068 pseudo-classes allow style sheets to differentiate between different | 1422 @end iftex |
1069 element types. | 1423 @ifinfo |
1070 | 1424 @center -------------------- |
1071 The only support pseudo-classes in Emacs/W3 are on the anchor tag | 1425 @center Formatting of directory listings |
1072 (<a>...</a>). | 1426 @center -------------------- |
1073 | 1427 @end ifinfo |
1074 User agents commonly display newly visited anchors differently from | 1428 @vindex url-use-hypertext-dired |
1075 older ones. In @sc{css1}, this is handled through pseudo-classes on the | 1429 When Emacs-W3 encounters a link to a directory (whether by local file access |
1076 'A' element: | 1430 or via FTP), it can either create an HTML document on the fly, or use |
1077 | 1431 @code{dired-mode} to peruse the listing. The variable |
1432 @code{url-use-hypertext-dired} controls this behavior. | |
1433 | |
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. | |
1437 | |
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. | |
1442 | |
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. | |
1477 | |
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. | |
1502 | |
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. | |
1513 | |
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. | |
1529 | |
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 | |
1536 | |
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. | |
1546 | |
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: | |
1562 | |
1563 @enumerate | |
1564 @item | |
1565 image/x-xbitmap | |
1566 @item | |
1567 image/xbitmap | |
1568 @item | |
1569 image/xbm | |
1570 @item | |
1571 image/gif | |
1572 @item | |
1573 image/jpeg | |
1574 @item | |
1575 image/x-fax | |
1576 @item | |
1577 image/x-raster | |
1578 @item | |
1579 image/windowdump | |
1580 @item | |
1581 image/x-icon | |
1582 @item | |
1583 image/portable-graymap | |
1584 @item | |
1585 image/portable-pixmap | |
1586 @item | |
1587 image/x-pixmap | |
1588 @item | |
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 | |
1598 @end enumerate | |
1599 | |
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}. | |
1621 | |
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. | |
1626 | |
1627 :: WORK :: Need a pointer to the new EMBED Internet Draft :: | |
1628 | |
1629 The basic syntax is: | |
1078 @example | 1630 @example |
1079 A:link @{ color: red @} /* unvisited link */ | 1631 <embed href="somevideo.mpg" type="video/mpeg"> |
1080 A:visited @{ color: blue @} /* visited links */ | |
1081 A:active @{ color: lime @} /* active links */ | |
1082 @end example | 1632 @end example |
1083 | 1633 |
1084 All 'A' elements with an 'HREF' attribute will be put into one and only | 1634 @vindex w3-mpeg-args |
1085 one of these groups (i.e. target anchors are not affected). UAs may | 1635 @vindex w3-mpeg-program |
1086 choose to move an element from 'visited' to 'link' after a certain | 1636 This requires a special version of the standard @file{mpeg_play} mpeg |
1087 time. An 'active' link is one that is currently being selected (e.g. by | 1637 player. Patches against the 2.0 version are available at |
1088 a mouse button press) by the reader. | 1638 ftp://ftp.cs.indiana.edu/pub/elisp/w3/mpeg_patch. The variable |
1089 | 1639 @code{w3-mpeg-program} should point to this executable, and |
1090 The formatting of an anchor pseudo-class is as if the class had been | 1640 @code{w3-mpeg-args} should be a list of any additional arguments to be |
1091 inserted manually. A @sc{ua} is not required to reformat a currently | 1641 passed to the player. By default, this includes @var{-loop}, so the |
1092 displayed document due to anchor pseudo-class transitions. E.g., a style | 1642 mpeg plays continuously. |
1093 sheet can legally specify that the 'font-size' of an 'active' link | 1643 |
1094 should be larger that a 'visited' link, but the UA is not required to | 1644 @cindex Delaying inlined images |
1095 dynamically reformat the document when the reader selects the 'visited' | 1645 @cindex Delaying inlined animations |
1096 link. | 1646 @vindex w3-delay-image-loads |
1097 | 1647 @vindex w3-delay-mpeg-loads |
1098 Pseudo-class selectors do not match normal classes, and vice versa. The | 1648 Because images and movies can take up an incredible amount of bandwidth, |
1099 style rule in the example below will therefore not have any influence: | 1649 it is useful to be able to control whether they are loaded or not. By |
1100 | 1650 default, images and movies are loaded automatically, but the variables |
1101 @example | 1651 @code{w3-delay-image-loads} and @code{w3-delay-mpeg-loads} control this. |
1102 A:link @{ color: red @} | 1652 If set to non-@code{nil}, then the images or movies are not |
1103 | 1653 loaded until explicitly requested by the user. |
1104 <A CLASS=link NAME=target5> ... </A> | 1654 |
1105 @end example | 1655 @cindex Loading delayed images |
1106 | 1656 @cindex Loading delayed movies |
1107 In @sc{css1}, anchor pseudo-classes have no effect on elements other | 1657 @findex w3-load-delayed-images |
1108 than 'A'. Therefore, the element type can be omitted from the selector: | 1658 @findex w3-load-delayed-mpegs |
1109 | 1659 To load any delayed images, use the function |
1110 @example | 1660 @code{w3-load-delayed-images}. Its counterpart for delayed movies is |
1111 A:link @{ color: red @} | 1661 @code{w3-load-delayed-mpegs} |
1112 :link @{ color: red @} | 1662 |
1113 @end example | 1663 @node MIME Support, Adding MIME types based on file extensions, , Top |
1114 | |
1115 The two selectors above will select the same elements in CSS1. | |
1116 | |
1117 Pseudo-class names are case-insensitive. | |
1118 | |
1119 Pseudo-classes can be used in contextual selectors: | |
1120 | |
1121 @example | |
1122 A:link IMG @{ border: solid blue @} | |
1123 @end example | |
1124 | |
1125 Also, pseudo-classes can be combined with normal classes: | |
1126 | |
1127 @example | |
1128 A.external:visited @{ color: blue @} | |
1129 | |
1130 <A CLASS=external HREF="http://out.side/">external link</A> | |
1131 @end example | |
1132 | |
1133 If the link in the above example has been visited, it will be rendered | |
1134 in blue. Note that normal class names precede pseudo-classes in the | |
1135 selector. | |
1136 | |
1137 @node The Cascade, Properties, Pseudo-Classes/Elements, Stylesheets | |
1138 @section The Cascade | |
1139 | |
1140 In @sc{css}, more than one style sheet can influence the presentation | |
1141 simultaneously. There are two main reasons for this feature: modularity | |
1142 and author/reader balance. | |
1143 | |
1144 @table @i | |
1145 @item modularity | |
1146 A style sheet designer can combine several (partial) style sheets to | |
1147 reduce redundancy: | |
1148 | |
1149 @example | |
1150 @@import url(http://www.style.org/pastoral); | |
1151 @@import url(http://www.style.org/marine); | |
1152 | |
1153 H1 @{ color: red @} /* override imported sheets */ | |
1154 @end example | |
1155 @item author/reader balance | |
1156 Both readers and authors can influence the presentation through style | |
1157 sheets. To do so, they use the same style sheet language thus reflecting | |
1158 a fundamental feature of the web: everyone can become a publisher. The | |
1159 @sc{ua} is free to choose the mechanism for referencing personal style | |
1160 sheets. | |
1161 @end table | |
1162 | |
1163 Sometimes conflicts will arise between the style sheets that influence | |
1164 the presentation. Conflict resolution is based on each style rule having | |
1165 a weight. By default, the weights of the reader's rules are less than | |
1166 the weights of rules in the author's documents. I.e., if there are | |
1167 conflicts between the style sheets of an incoming document and the | |
1168 reader's personal sheets, the author's rules will be used. Both reader | |
1169 and author rules override the @sc{ua}'s default values. | |
1170 | |
1171 The imported style sheets also cascade with each other, in the order | |
1172 they are imported, according to the cascading rules defined below. Any | |
1173 rules specified in the style sheet itself override rules in imported | |
1174 style sheets. That is, imported style sheets are lower in the cascading | |
1175 order than rules in the style sheet itself. Imported style sheets can | |
1176 themselves import and override other style sheets, recursively. | |
1177 | |
1178 In @sc{css1}, all '@@import' statements must occur at the start of a | |
1179 style sheet, before any declarations. This makes it easy to see that | |
1180 rules in the style sheet itself override rules in the imported style | |
1181 sheets. | |
1182 | |
1183 NOTE: The use of !important in @sc{css} stylesheets is unsupported at | |
1184 this time. | |
1185 | |
1186 Conflicting rules are intrinsic to the CSS mechanism. To find the value | |
1187 for an element/property combination, the following algorithm must be | |
1188 followed: | |
1189 | |
1190 @enumerate | |
1191 @item | |
1192 Find all declarations that apply to the element/property in | |
1193 question. Declarations apply if the selector matches the element in | |
1194 question. If no declarations apply, the inherited value is used. If | |
1195 there is no inherited value (this is the case for the 'HTML' element and | |
1196 for properties that do not inherit), the initial value is used. | |
1197 @item | |
1198 Sort the declarations by explicit weight: declarations marked | |
1199 '!important' carry more weight than unmarked (normal) declarations. | |
1200 @item | |
1201 Sort by origin: the author's style sheets override the reader's style | |
1202 sheet which override the UA's default values. An imported style sheet | |
1203 has the same origin as the style sheet from which it is imported. | |
1204 @item | |
1205 Sort by specificity of selector: more specific selectors will override | |
1206 more general ones. To find the specificity, count the number of ID | |
1207 attributes in the selector (a), the number of CLASS attributes in the | |
1208 selector (b), and the number of tag names in the selector | |
1209 (c). Concatenating the three numbers (in a number system with a large | |
1210 base) gives the specificity. Some examples: | |
1211 @example | |
1212 LI @{...@} /* a=0 b=0 c=1 -> specificity = 1 */ | |
1213 UL LI @{...@} /* a=0 b=0 c=2 -> specificity = 2 */ | |
1214 UL OL LI @{...@} /* a=0 b=0 c=3 -> specificity = 3 */ | |
1215 LI.red @{...@} /* a=0 b=1 c=1 -> specificity = 11 */ | |
1216 UL OL LI.red @{...@} /* a=0 b=1 c=3 -> specificity = 13 */ | |
1217 #x34y @{...@} /* a=1 b=0 c=0 -> specificity = 100 */ | |
1218 @end example | |
1219 Pseudo-elements and pseudo-classes are counted as normal elements and | |
1220 classes, respectively. | |
1221 @item | |
1222 Sort by order specified: if two rules have the same weight, the latter | |
1223 specified wins. Rules in imported style sheets are considered to be | |
1224 before any rules in the style sheet itself. | |
1225 @end enumerate | |
1226 | |
1227 The search for the property value can be terminated whenever one rule | |
1228 has a higher weight than the other rules that apply to the same | |
1229 element/property combination. | |
1230 | |
1231 This strategy gives author's style sheets considerably higher weight | |
1232 than those of the reader. It is therefore important that the reader has | |
1233 the ability to turn off the influence of a certain style sheet, | |
1234 e.g. through a pull-down menu. | |
1235 | |
1236 A declaration in the 'STYLE' attribute of an element has the same weight | |
1237 as a declaration with an ID-based selector that is specified at the end | |
1238 of the style sheet: | |
1239 | |
1240 @example | |
1241 <STYLE TYPE="text/css"> | |
1242 #x97z @{ color: blue @} | |
1243 </STYLE> | |
1244 | |
1245 <P ID=x97z STYLE="color: red"> | |
1246 @end example | |
1247 | |
1248 In the above example, the color of the 'P' element would be | |
1249 red. Although the specificity is the same for both declarations, the | |
1250 declaration in the 'STYLE' attribute will override the one in the | |
1251 'STYLE' element because of cascading rule number 5. | |
1252 | |
1253 The @sc{ua} may choose to honor other stylistic @sc{html} attributes, | |
1254 for example 'ALIGN'. If so, these attributes are translated to the | |
1255 corresponding @sc{css} rules with specificity equal to 1. The rules are | |
1256 assumed to be at the start of the author style sheet and may be | |
1257 overridden by subsequent style sheet rules. In a transition phase, this | |
1258 policy will make it easier for stylistic attributes to coexist with | |
1259 style sheets. | |
1260 | |
1261 @node Properties, Units, The Cascade, Stylesheets | |
1262 @section Properties | |
1263 | |
1264 In the text below, the allowed values for each property are listed | |
1265 with a syntax like the following: | |
1266 | |
1267 @example | |
1268 Value: N | NW | NE | |
1269 Value: [ <length> | thick | thin ]@{1,4@} | |
1270 Value: <uri>? <color> [ / <color> ]? | |
1271 Value: <uri> || <color> | |
1272 @end example | |
1273 | |
1274 The words between < and > give a type of value. The most common types | |
1275 are <length>, <percentage>, <url>, <number>and <color> these are | |
1276 described in the section on [[units]]. The more specialized types | |
1277 (e.g. <font-family>and <border-style>) are described under the property | |
1278 where they appear. | |
1279 | |
1280 Other words are keywords that must appear literally, without quotes. The | |
1281 slash (/) and the comma (,) must also appear literally. | |
1282 | |
1283 Several things juxtaposed mean that all of them must occur, in the given | |
1284 order. A bar (|) separates alternatives: one of them must occur. A | |
1285 double bar (A || B) means that either A or B or both must occur, in any | |
1286 order. Brackets ([]) are for grouping. Juxtaposition is stronger than | |
1287 the double bar, and the double bar is stronger than the bar. Thus "a b | | |
1288 c || d e" is equivalent to "[ a b ] | [ c || [ d e ]]". | |
1289 | |
1290 Every type, keyword, or bracketed group may be followed by one of the | |
1291 following modifiers: | |
1292 | |
1293 @itemize @bullet | |
1294 @item | |
1295 An asterisk (*) indicates that the preceding type, word or group is | |
1296 repeated zero or more times. | |
1297 @item | |
1298 A plus (+) indicates that the preceding type, word or group is repeated | |
1299 one or more times. | |
1300 @item | |
1301 A question mark (?) indicates that the preceding type, word or group is | |
1302 optional. | |
1303 @item | |
1304 A pair of numbers in curly braces (@{A,B@}) indicates that the preceding | |
1305 type, word or group is repeated at least A and at most B times. | |
1306 @end itemize | |
1307 | |
1308 Other than the value the following information is also shown. | |
1309 | |
1310 @multitable @columnfractions .20 .8 | |
1311 @item Supported Values: @tab If this is present, it lists the parts of | |
1312 the specification that Emacs/W3 currently supports. | |
1313 @item Unsupported Values: @tab If this is present, it represents the | |
1314 parts of the specifcation that Emacs/W3 does not support. | |
1315 @item Initial: @tab The default value for the property, unless | |
1316 explicitly set in a stylesheet. | |
1317 @item Applies to: @tab What type of elements this property can be attached to. | |
1318 @item Inherited: @tab Yes or no | |
1319 @item Percentage values: @tab What a percentage value applies to when given. | |
1320 @end multitable | |
1321 | |
1322 @menu | |
1323 * Font Properties:: Selecting fonts, styles, and sizes. | |
1324 * Colors and Backgrounds:: Controlling colors, front and back. | |
1325 * Text Properties:: Alignment, decoration, and more! | |
1326 * Box Properties:: Borders, padding, and margins, oh my! | |
1327 * Classification:: Changing whitespace and display policies. | |
1328 * Media Selection:: Conditionalize stylesheets on media-type. | |
1329 * Speech Properties:: Speech output controlled by stylesheets. | |
1330 @end menu | |
1331 | |
1332 @node Font Properties, Colors and Backgrounds, Properties, Properties | |
1333 @subsection Font Properties | |
1334 | |
1335 Setting font properties will be among the most common uses of style | |
1336 sheets. Unfortunately, there exists no well-defined and universally | |
1337 accepted taxonomy for classifying fonts, and terms that apply to one | |
1338 font family may not be appropriate for others. E.g. 'italic' is commonly | |
1339 used to label slanted text, but slanted text may also be labeled as | |
1340 being @b{Oblique}, @b{Slanted}, @b{Incline}, @b{Cursive} or | |
1341 @b{Kursiv}. Therefore it is not a simple problem to map typical font | |
1342 selection properties to a specific font. | |
1343 | |
1344 The properties defined by CSS1 are described in the following sections. | |
1345 @menu | |
1346 * font-family:: Groups of fonts. | |
1347 * font-style:: Normal, italic, or oblique? | |
1348 * font-variant:: Small-caps, etc. | |
1349 * font-weight:: How bold can you go? | |
1350 * font-size:: How big is yours? | |
1351 * font:: Shorthand for all of the above. | |
1352 @end menu | |
1353 | |
1354 @node font-family, font-style, Font Properties, Font Properties | |
1355 @subsubsection font-family | |
1356 | |
1357 @multitable @columnfractions .20 .8 | |
1358 @item Supported Values: @tab [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>] | |
1359 @item Initial: @tab User specific | |
1360 @item Applies to: @tab all elements | |
1361 @item Inherited: @tab yes | |
1362 @item Percentage values: @tab N/A | |
1363 @end multitable | |
1364 The value is a prioritized list of font family names and/or generic | |
1365 family names. Unlike most other CSS1 properties, values are separated | |
1366 by a comma to indicate that they are alternatives: | |
1367 | |
1368 @example | |
1369 BODY @{ font-family: gill, helvetica, sans-serif @} | |
1370 @end example | |
1371 | |
1372 There are two types of list values: | |
1373 | |
1374 @table @b | |
1375 @item <family-name> | |
1376 The name of a font family of choice. In the last example, "gill" and | |
1377 "helvetica" are font families. | |
1378 @item <generic-family> | |
1379 In the example above, the last value is a generic family name. The | |
1380 following generic families are defined: | |
1381 @itemize @bullet | |
1382 @item | |
1383 'serif' (e.g. Times) | |
1384 @item | |
1385 'sans-serif' (e.g. Helvetica) | |
1386 @item | |
1387 'cursive' (e.g. Zapf-Chancery) | |
1388 @item | |
1389 'fantasy' (e.g. Western) | |
1390 @item | |
1391 'monospace' (e.g. Courier) | |
1392 @end itemize | |
1393 @end table | |
1394 | |
1395 Style sheet designers are encouraged to offer a generic font family as a | |
1396 last alternative. | |
1397 | |
1398 Font names containing whitespace should be quoted: | |
1399 | |
1400 @example | |
1401 BODY @{ font-family: "new century schoolbook", serif @} | |
1402 | |
1403 <BODY STYLE="font-family: 'My own font', fantasy"> | |
1404 @end example | |
1405 | |
1406 If quoting is omitted, any whitespace characters before and after the | |
1407 font name are ignored and any sequence of whitespace characters inside | |
1408 the font name is converted to a single space. | |
1409 | |
1410 @node font-style, font-variant, font-family, Font Properties | |
1411 @subsubsection font-style | |
1412 | |
1413 @multitable @columnfractions .2 .8 | |
1414 @item Supported Values: @tab normal | italic | oblique | |
1415 @item Initial: @tab normal | |
1416 @item Applies to: @tab all elements | |
1417 @item Inherited: @tab yes | |
1418 @item Percentage values: @tab N/A | |
1419 @end multitable | |
1420 | |
1421 The 'font-style' property selects between normal (sometimes referred to | |
1422 as "roman" or "upright"), italic and oblique faces within a font family. | |
1423 | |
1424 A value of 'normal' selects a font that is classified as 'normal' in the | |
1425 UA's font database, while 'oblique' selects a font that is labeled | |
1426 'oblique'. A value of 'italic' selects a font that is labeled 'italic', | |
1427 or, if that is not available, one labeled 'oblique'. | |
1428 | |
1429 The font that is labeled 'oblique' in the UA's font database may | |
1430 actually have been generated by electronically slanting a normal font. | |
1431 | |
1432 Fonts with Oblique, Slanted or Incline in their names will typically be | |
1433 labeled 'oblique' in the UA's font database. Fonts with Italic, Cursive | |
1434 or Kursiv in their names will typically be labeled 'italic'. | |
1435 | |
1436 @example | |
1437 H1, H2, H3 @{ font-style: italic @} | |
1438 H1 EM @{ font-style: normal @} | |
1439 @end example | |
1440 | |
1441 In the example above, emphasized text within 'H1' will appear in a | |
1442 normal face. | |
1443 | |
1444 @node font-variant, font-weight, font-style, Font Properties | |
1445 @subsubsection font-variant | |
1446 | |
1447 @multitable @columnfractions .2 .8 | |
1448 @item Value: @tab normal | small-caps | |
1449 @item Initial: @tab normal | |
1450 @item Applies to: @tab all elements | |
1451 @item Inherited: @tab yes | |
1452 @item Percentage values: @tab N/A | |
1453 @end multitable | |
1454 | |
1455 Another type of variation within a font family is the small-caps. In a | |
1456 small-caps font the lower case letters look similar to the uppercase | |
1457 ones, but in a smaller size and with slightly different proportions. The | |
1458 'font-variant' property selects that font. | |
1459 | |
1460 A value of 'normal' selects a font that is not a small-caps font, | |
1461 'small-caps' selects a small-caps font. It is acceptable (but not | |
1462 required) in CSS1 if the small-caps font is a created by taking a normal | |
1463 font and replacing the lower case letters by scaled uppercase | |
1464 characters. As a last resort, uppercase letters will be used as | |
1465 replacement for a small-caps font. | |
1466 | |
1467 The following example results in an 'H3' element in small-caps, with | |
1468 emphasized words in oblique small-caps: | |
1469 | |
1470 @example | |
1471 H3 @{ font-variant: small-caps @} | |
1472 EM @{ font-style: oblique @} | |
1473 @end example | |
1474 | |
1475 There may be other variants in the font family as well, such as fonts | |
1476 with old-style numerals, small-caps numerals, condensed or expanded | |
1477 letters, etc. CSS1 has no properties that select those. | |
1478 | |
1479 @node font-weight, font-size, font-variant, Font Properties | |
1480 @subsubsection font-weight | |
1481 | |
1482 @multitable @columnfractions .2 .8 | |
1483 @item Supported Values: @tab normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | |
1484 @item Unsupported Values: @tab bolder | lighter | |
1485 @item Initial: @tab normal | |
1486 @item Applies to: @tab all elements | |
1487 @item Inherited: @tab yes | |
1488 @item Percentage values: @tab N/A | |
1489 @end multitable | |
1490 | |
1491 The 'font-weight' property selects the weight of the font. The values | |
1492 '100' to '900' form an ordered sequence, where each number indicates a | |
1493 weight that is at least as dark as its predecessor. The keyword 'normal' | |
1494 is synonymous with '400', and 'bold' is synonymous with '700'. Keywords | |
1495 other than 'normal' and 'bold' have been shown to be often confused with | |
1496 font names and a numerical scale was therefore chosen for the 9-value | |
1497 list. | |
1498 | |
1499 @example | |
1500 P @{ font-weight: normal @} /* 400 */ | |
1501 H1 @{ font-weight: 700 @} /* bold */ | |
1502 @end example | |
1503 | |
1504 The 'bolder' and 'lighter' values select font weights that are relative | |
1505 to the weight inherited from the parent: | |
1506 | |
1507 @example | |
1508 STRONG @{ font-weight: bolder @} | |
1509 @end example | |
1510 | |
1511 There is no guarantee that there will be a darker face for each of the | |
1512 'font-weight' values; for example, some fonts may have only a normal and | |
1513 a bold face, others may have eight different face weights. There is no | |
1514 guarantee on how a UA will map font faces within a family to weight | |
1515 values. The only guarantee is that a face of a given value will be no | |
1516 less dark than the faces of lighter values. | |
1517 | |
1518 @node font-size, font, font-weight, Font Properties | |
1519 @subsubsection font-size | |
1520 | |
1521 @multitable @columnfractions .2 .8 | |
1522 @item Supported Values: @tab <absolute-size> | <length> | |
1523 @item Unsupported Values: @tab <percentage> | <relative-size> | |
1524 @item Initial: @tab medium | |
1525 @item Applies to: @tab all elements | |
1526 @item Inherited: @tab yes | |
1527 @item Percentage values: @tab relative to parent element's font size | |
1528 @end multitable | |
1529 | |
1530 @table @b | |
1531 @item <absolute-size> | |
1532 An <absolute-size> keyword is an index to a table of font sizes computed | |
1533 and kept by the UA. Possible values are: | |
1534 @itemize @bullet | |
1535 @item | |
1536 xx-small | |
1537 @item | |
1538 x-small | |
1539 @item | |
1540 small | |
1541 @item | |
1542 medium | |
1543 @item | |
1544 large | |
1545 @item | |
1546 x-large | |
1547 @item | |
1548 xx-large | |
1549 @end itemize | |
1550 | |
1551 On a computer screen a scaling factor of 1.5 is suggested between | |
1552 adjacent indexes; if the 'medium' font is 10pt, the 'large' font could | |
1553 be 15pt. Different media may need different scaling factors. Also, the | |
1554 UA should take the quality and availability of fonts into account when | |
1555 computing the table. The table may be different from one font family to | |
1556 another. | |
1557 @item <relative-size> | |
1558 A <relative-size> keyword is interpreted relative to the table of font | |
1559 sizes and the font size of the parent element. Possible values are | |
1560 @b{larger} or @b{smaller}. For example, if the parent element has a font | |
1561 size of 'medium', a value of 'larger' will make the font size of the | |
1562 current element be 'large'. If the parent element's size is not close to | |
1563 a table entry, the UA is free to interpolate between table entries or | |
1564 round off to the closest one. The UA may have to extrapolate table | |
1565 values if the numerical value goes beyond the keywords. | |
1566 @end table | |
1567 | |
1568 Length and percentage values should not take the font size table into | |
1569 account when calculating the font size of the element. | |
1570 | |
1571 Negative values are not allowed. | |
1572 | |
1573 On all other properties, 'em' and 'ex' length values refer to the font | |
1574 size of the current element. On the 'font-size' property, these length | |
1575 units refer to the font size of the parent element. | |
1576 | |
1577 Note that an application may reinterpret an explicit size, depending on | |
1578 the context. E.g., inside a VR scene a font may get a different size | |
1579 because of perspective distortion. | |
1580 | |
1581 Examples: | |
1582 | |
1583 @example | |
1584 P @{ font-size: 12pt; @} | |
1585 BLOCKQUOTE @{ font-size: larger @} | |
1586 EM @{ font-size: 150% @} | |
1587 EM @{ font-size: 1.5em @} | |
1588 @end example | |
1589 | |
1590 If the suggested scaling factor of 1.5 is used, the last three | |
1591 declarations are identical. | |
1592 | |
1593 @node font, , font-size, Font Properties | |
1594 @subsubsection font | |
1595 | |
1596 @multitable @columnfractions .2 .8 | |
1597 @item Value: @tab [ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height> ]? <font-family> | |
1598 @item Initial: @tab not defined for shorthand properties | |
1599 @item Applies to: @tab all elements | |
1600 @item Inherited: @tab yes | |
1601 @item Percentage values: @tab allowed on <font-size> and <line-height> | |
1602 @end multitable | |
1603 The 'font' property is a shorthand property for setting 'font-style' | |
1604 'font-variant' 'font-weight' 'font-size', 'line-height' and | |
1605 'font-family' at the same place in the style sheet. The syntax of this | |
1606 property is based on a traditional typographical shorthand notation to | |
1607 set multiple properties related to fonts. | |
1608 | |
1609 For a definition of allowed and initial values, see the previously | |
1610 defined properties. Properties for which no values are given are set to | |
1611 their initial value. | |
1612 | |
1613 @example | |
1614 P @{ font: 12pt/14pt sans-serif @} | |
1615 P @{ font: 80% sans-serif @} | |
1616 P @{ font: x-large/110% "new century schoolbook", serif @} | |
1617 P @{ font: bold italic large Palatino, serif @} | |
1618 P @{ font: normal small-caps 120%/120% fantasy @} | |
1619 @end example | |
1620 | |
1621 In the second rule, the font size percentage value ('80%') refers to the | |
1622 font size of the parent element. In the third rule, the line height | |
1623 percentage refers to the font size of the element itself. | |
1624 | |
1625 In the first three rules above, the 'font-style', 'font-variant' and | |
1626 'font-weight' are not explicitly mentioned, which means they are all | |
1627 three set to their initial value ('normal'). The fourth rule sets the | |
1628 'font-weight' to 'bold', the 'font-style' to 'italic' and implicitly | |
1629 sets 'font-variant' to 'normal'. | |
1630 | |
1631 The fifth rule sets the 'font-variant' ('small-caps'), the 'font-size' | |
1632 (120% of the parent's font), the 'line-height' (120% times the font | |
1633 size) and the 'font-family' ('fantasy'). It follows that the keyword | |
1634 'normal' applies to the two remaining properties: 'font-style' and | |
1635 'font-weight'. | |
1636 | |
1637 @node Colors and Backgrounds, Text Properties, Font Properties, Properties | |
1638 @subsection Colors and Backgrounds | |
1639 | |
1640 These properties describe the color (often called foreground color) and | |
1641 background of an element (i.e. the surface onto which the content is | |
1642 rendered). One can set a background color and/or a background image. The | |
1643 position of the image, if/how it is repeated, and whether it is fixed or | |
1644 scrolled relative to the canvas can also be set. | |
1645 | |
1646 The 'color' property inherits normally. The background properties do not | |
1647 inherit, but the parent element's background will shine through by | |
1648 default because of the initial 'transparent' value on | |
1649 'background-color'. | |
1650 | |
1651 NOTE: Currently, Emacs/W3 can only show background images under XEmacs. | |
1652 Emacs 19 doesn't have the support in its display code yet. | |
1653 | |
1654 @menu | |
1655 * color:: Foreground colors. | |
1656 * background-color:: Background colors. | |
1657 * background-image:: Background images. | |
1658 * background-repeat:: Controlling repeating of background images. | |
1659 * background-attachment:: Where background images are drawn. | |
1660 * background-position:: Where background images are drawn. | |
1661 * background:: Shorthand for all background properties. | |
1662 @end menu | |
1663 | |
1664 @node color, background-color, Colors and Backgrounds, Colors and Backgrounds | |
1665 @subsubsection color | |
1666 | |
1667 @multitable @columnfractions .2 .8 | |
1668 @item Value: @tab <color> | |
1669 @item Initial: @tab User specific | |
1670 @item Applies to: @tab all elements | |
1671 @item Inherited: @tab yes | |
1672 @item Percentage values: @tab N/A | |
1673 @end multitable | |
1674 | |
1675 This property describes the text color of an element (often referred to | |
1676 as the foreground color). There are different ways to specify red: | |
1677 | |
1678 @example | |
1679 EM @{ color: red @} /* natural language */ | |
1680 EM @{ color: rgb(255,0,0) @} /* RGB range 0-255 */ | |
1681 @end example | |
1682 | |
1683 See @ref{Color Units} for a description of possible color values. | |
1684 | |
1685 @node background-color, background-image, color, Colors and Backgrounds | |
1686 @subsubsection background-color | |
1687 | |
1688 @multitable @columnfractions .2 .8 | |
1689 @item Value: @tab <color> | transparent | |
1690 @item Initial: @tab transparent | |
1691 @item Applies to: @tab all elements | |
1692 @item Inherited: @tab no | |
1693 @item Percentage values: @tab N/A | |
1694 @end multitable | |
1695 | |
1696 This property sets the background color of an element. | |
1697 | |
1698 @example | |
1699 H1 @{ background-color: #F00 @} | |
1700 @end example | |
1701 | |
1702 @node background-image, background-repeat, background-color, Colors and Backgrounds | |
1703 @subsubsection background-image | |
1704 | |
1705 @multitable @columnfractions .2 .8 | |
1706 @item Value: @tab <url> | none | |
1707 @item Initial: @tab none | |
1708 @item Applies to: @tab all elements | |
1709 @item Inherited: @tab no | |
1710 @item Percentage values: @tab N/A | |
1711 @end multitable | |
1712 | |
1713 This property sets the background image of an element. When setting a | |
1714 background image, one should also set a background color that will be | |
1715 used when the image is unavailable. When the image is available, it is | |
1716 overlaid on top of the background color. | |
1717 | |
1718 @example | |
1719 BODY @{ background-image: url(marble.png) @} | |
1720 P @{ background-image: none @} | |
1721 @end example | |
1722 | |
1723 @node background-repeat, background-attachment, background-image, Colors and Backgrounds | |
1724 @subsubsection background-repeat | |
1725 | |
1726 This property is not supported at all under Emacs/W3. | |
1727 | |
1728 @node background-attachment, background-position, background-repeat, Colors and Backgrounds | |
1729 @subsubsection background-attachment | |
1730 | |
1731 This property is not supported at all under Emacs/W3. | |
1732 | |
1733 @node background-position, background, background-attachment, Colors and Backgrounds | |
1734 @subsubsection background-position | |
1735 | |
1736 This property is not supported at all under Emacs/W3. | |
1737 | |
1738 @node background, , background-position, Colors and Backgrounds | |
1739 @subsubsection background | |
1740 | |
1741 @multitable @columnfractions .2 .8 | |
1742 @item Value: @tab <background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position> | |
1743 @item Initial: @tab not defined for shorthand properties | |
1744 @item Applies to: @tab all elements | |
1745 @item Inherited: @tab no | |
1746 @item Percentage values: @tab allowed on <background-position> | |
1747 @end multitable | |
1748 | |
1749 The 'background' property is a shorthand property for setting the | |
1750 individual background properties (i.e., 'background-color', | |
1751 'background-image', 'background-repeat', 'background-attachment' and | |
1752 'background-position') at the same place in the style sheet. | |
1753 | |
1754 Possible values on the 'background' properties are the set of all | |
1755 possible values on the individual properties. | |
1756 | |
1757 @example | |
1758 BODY @{ background: red @} | |
1759 P @{ background: url(chess.png) gray 50% repeat fixed @} | |
1760 @end example | |
1761 | |
1762 The 'background' property always sets all the individual background | |
1763 properties. In the first rule of the above example, only a value for | |
1764 'background-color' has been given and the other individual properties | |
1765 are set to their initial value. In the second rule, all individual | |
1766 properties have been specified. | |
1767 | |
1768 @node Text Properties, Box Properties, Colors and Backgrounds, Properties | |
1769 @subsection Text Properties | |
1770 | |
1771 @menu | |
1772 * word-spacing:: | |
1773 * letter-spacing:: | |
1774 * text-decoration:: | |
1775 * vertical-align:: | |
1776 * text-transform:: | |
1777 * text-align:: | |
1778 * text-indent:: | |
1779 * line-height:: | |
1780 @end menu | |
1781 | |
1782 @node word-spacing, letter-spacing, Text Properties, Text Properties | |
1783 @subsubsection word-spacing | |
1784 | |
1785 @multitable @columnfractions .2 .8 | |
1786 @item Supported Values: @tab normal | |
1787 @item Unsupported Values: @tab <length> | |
1788 @item Initial: @tab normal | |
1789 @item Applies to: @tab all elements | |
1790 @item Inherited: @tab yes | |
1791 @item Percentage values: @tab N/A | |
1792 @end multitable | |
1793 | |
1794 The length unit indicates an addition to the default space between | |
1795 words. Values can be negative, but there may be implementation-specific | |
1796 limits. The UA is free to select the exact spacing algorithm. The word | |
1797 spacing may also be influenced by justification (which is a value of the | |
1798 'align' property). | |
1799 | |
1800 @example | |
1801 H1 @{ word-spacing: 0.4em @} | |
1802 @end example | |
1803 | |
1804 Here, the word-spacing between each word in 'H1' elements would be | |
1805 increased by '1em'. | |
1806 | |
1807 NOTE: Emacs/W3 cannot currently support this, due to limitations in | |
1808 Emacs. It may be implemented in the future. | |
1809 | |
1810 @node letter-spacing, text-decoration, word-spacing, Text Properties | |
1811 @subsubsection letter-spacing | |
1812 | |
1813 @multitable @columnfractions .2 .8 | |
1814 @item Supported Values: @tab normal | |
1815 @item Unsupported Values: @tab <length> | |
1816 @item Initial: @tab normal | |
1817 @item Applies to: @tab all elements | |
1818 @item Inherited: @tab yes | |
1819 @item Percentage values: @tab N/A | |
1820 @end multitable | |
1821 | |
1822 The length unit indicates an addition to the default space between | |
1823 characters. Values can be negative, but there may be | |
1824 implementation-specific limits. The UA is free to select the exact | |
1825 spacing algorithm. The letter spacing may also be influenced by | |
1826 justification (which is a value of the 'align' property). | |
1827 | |
1828 @example | |
1829 BLOCKQUOTE @{ letter-spacing: 0.1em @} | |
1830 @end example | |
1831 | |
1832 Here, the letter-spacing between each character in 'BLOCKQUOTE' elements | |
1833 would be increased by '0.1em'. | |
1834 | |
1835 NOTE: Emacs/W3 cannot currently support this, due to limitations in | |
1836 Emacs. It may be implemented in the future. | |
1837 | |
1838 @node text-decoration, vertical-align, letter-spacing, Text Properties | |
1839 @subsubsection text-decoration | |
1840 | |
1841 @multitable @columnfractions .2 .8 | |
1842 @item Supported Values: @tab none | underline | line-through | blink | |
1843 @item Unsupported Values: @tab overline | |
1844 @item Initial: @tab none | |
1845 @item Applies to: @tab all elements | |
1846 @item Inherited: @tab no, but see clarification below | |
1847 @item Percentage values: @tab N/A | |
1848 @end multitable | |
1849 | |
1850 This property describes decorations that are added to the text of an | |
1851 element. If the element has no text (e.g. the 'IMG' element in HTML) or | |
1852 is an empty element (e.g. '<EM></EM>'), this property has no effect. A | |
1853 value of 'blink' causes the text to blink. | |
1854 | |
1855 The color(s) required for the text decoration should be derived from the | |
1856 'color' property value. | |
1857 | |
1858 This property is not inherited, but elements should match their | |
1859 parent. E.g., if an element is underlined, the line should span the | |
1860 child elements. The color of the underlining will remain the same even | |
1861 if descendant elements have different 'color' values. | |
1862 | |
1863 @example | |
1864 A:link, A:visited, A:active @{ text-decoration: underline @} | |
1865 @end example | |
1866 | |
1867 The example above would underline the text of all links (i.e., all 'A' | |
1868 elements with a 'HREF' attribute). | |
1869 | |
1870 NOTE: The 'line-through' property is only supported under XEmacs | |
1871 currently. A patch has been sent to the Emacs maintainers to add | |
1872 support for this, but it has not made it into the main distribution | |
1873 yet. | |
1874 | |
1875 @node vertical-align, text-transform, text-decoration, Text Properties | |
1876 @subsubsection vertical-align | |
1877 | |
1878 This is currently unsupported in Emacs/W3. | |
1879 | |
1880 @node text-transform, text-align, vertical-align, Text Properties | |
1881 @subsubsection text-transform | |
1882 | |
1883 @multitable @columnfractions .2 .8 | |
1884 @item Supported Values: @tab none | |
1885 @item Unsupported Values: @tab capitalize | uppercase | lowercase | |
1886 @item Initial: @tab none | |
1887 @item Applies to: @tab all elements | |
1888 @item Inherited: @tab yes | |
1889 @item Percentage values: @tab N/A | |
1890 @end multitable | |
1891 | |
1892 @table @b | |
1893 @item 'capitalize' | |
1894 Uppercases the first character of each word. | |
1895 @item 'uppercase' | |
1896 Uppercases all letters of the element. | |
1897 @item 'lowercase' | |
1898 Lowercases all letters of the element. | |
1899 @item 'none' | |
1900 Neutralizes inherited value. | |
1901 @end table | |
1902 | |
1903 The actual transformation in each case is human language dependent. | |
1904 | |
1905 @example | |
1906 H1 @{ text-transform: uppercase @} | |
1907 @end example | |
1908 | |
1909 The example above would put 'H1' elements in uppercase text. | |
1910 | |
1911 NOTE: This capability was in the previous version of Emacs/W3, but has | |
1912 not been reimplemented in the new display code yet. Please feel free to | |
1913 send me patches. | |
1914 | |
1915 @node text-align, text-indent, text-transform, Text Properties | |
1916 @subsubsection text-align | |
1917 | |
1918 @multitable @columnfractions .2 .8 | |
1919 @item Value: @tab left | right | center | justify | |
1920 @item Initial: @tab User specific | |
1921 @item Applies to: @tab block-level elements | |
1922 @item Inherited: @tab yes | |
1923 @item Percentage values: @tab N/A | |
1924 @end multitable | |
1925 | |
1926 This property describes how text is aligned within the element. The | |
1927 actual justification algorithm used is UA and human language dependent. | |
1928 | |
1929 Example: | |
1930 @example | |
1931 DIV.center @{ text-align: center @} | |
1932 @end example | |
1933 | |
1934 Since 'text-align' inherits, all block-level elements inside the 'DIV' | |
1935 element with 'CLASS=center' will be centered. Note that alignments are | |
1936 relative to the width of the element, not the canvas. | |
1937 | |
1938 @node text-indent, line-height, text-align, Text Properties | |
1939 @subsubsection text-indent | |
1940 | |
1941 Not currently implemented in Emacs/W3. | |
1942 | |
1943 @node line-height, , text-indent, Text Properties | |
1944 @subsubsection line-height | |
1945 | |
1946 Not currently implemented in Emacs/W3. | |
1947 | |
1948 @node Box Properties, Classification, Text Properties, Properties | |
1949 @subsection Box Properties | |
1950 | |
1951 @multitable @columnfractions .2 .8 | |
1952 @end multitable | |
1953 | |
1954 @node Classification, Media Selection, Box Properties, Properties | |
1955 @subsection Classification | |
1956 | |
1957 These properties classify elements into categories more than they set | |
1958 specific visual parameters. | |
1959 | |
1960 The list-style properties describe how list items (i.e. elements with a | |
1961 'display' value of 'list-item') are formatted. The list-style properties | |
1962 can be set on any element, and it will inherit normally down the | |
1963 tree. However, they will only be have effect on elements with a | |
1964 'display' value of 'list-item'. In HTML this is typically the case for | |
1965 the 'LI' element. | |
1966 | |
1967 @menu | |
1968 * display:: | |
1969 * white-space:: | |
1970 * list-style-type:: | |
1971 * list-style-image:: | |
1972 * list-style-position:: | |
1973 * list-style:: | |
1974 @end menu | |
1975 | |
1976 @node display, white-space, Classification, Classification | |
1977 @subsubsection display | |
1978 | |
1979 @multitable @columnfractions .2 .8 | |
1980 @item Value: @tab block | inline | list-item | none | |
1981 @item Extensions: @tab line | |
1982 @item Initial: @tab inline | |
1983 @item Applies to: @tab all elements | |
1984 @item Inherited: @tab no | |
1985 @item Percentage values: @tab N/A | |
1986 @end multitable | |
1987 | |
1988 This property describes how/if an element is displayed on the canvas | |
1989 (which may be on a printed page, a computer display etc.). | |
1990 | |
1991 An element with a 'display' value of 'block' opens whitespace suitable | |
1992 for a paragraph break. Typically, elements like 'H1' and 'P' are of | |
1993 type 'block'. A value of 'list-item' is similar to 'block' except that a | |
1994 list-item marker is added. In HTML, 'LI' will typically have this value. | |
1995 | |
1996 An element with a 'display' value of 'inline' results in a new inline | |
1997 box on the same line as the previous content. | |
1998 | |
1999 A value of 'none' turns off the display of the element, including | |
2000 children elements and the surrounding box. | |
2001 | |
2002 @example | |
2003 P @{ display: block @} | |
2004 EM @{ display: inline @} | |
2005 LI @{ display: list-item @} | |
2006 IMG @{ display: none @} | |
2007 @end example | |
2008 | |
2009 The last rule turns off the display of images. | |
2010 | |
2011 A value of 'line' results in a single line break. Emacs/W3 needs this | |
2012 extension to be able to fully specify the behaviour of @sc{br} and | |
2013 @sc{hr} elements within a stylesheet. | |
2014 | |
2015 NOTE: Emacs/W3 defaults to using 'inline' for this property, which is a | |
2016 slight deviation from the specification. | |
2017 | |
2018 @node white-space, list-style-type, display, Classification | |
2019 @subsubsection white-space | |
2020 | |
2021 @multitable @columnfractions .2 .8 | |
2022 @item Value: @tab normal | pre | nowrap | |
2023 @item Initial: @tab normal | |
2024 @item Applies to: @tab block-level elements | |
2025 @item Inherited: @tab yes | |
2026 @item Percentage values: @tab N/A | |
2027 @end multitable | |
2028 | |
2029 This property declares how whitespace inside the element is handled: the | |
2030 'normal' way (where whitespace is collapsed), as 'pre' (which behaves | |
2031 like the 'PRE' element in HTML) or as 'nowrap' (where wrapping is done | |
2032 only through BR elements): | |
2033 | |
2034 @example | |
2035 PRE @{ white-space: pre @} | |
2036 P @{ white-space: normal @} | |
2037 @end example | |
2038 | |
2039 @node list-style-type, list-style-image, white-space, Classification | |
2040 @subsubsection list-style-type | |
2041 | |
2042 @multitable @columnfractions .2 .8 | |
2043 @item Value: @tab disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none | |
2044 @item Initial: @tab disc | |
2045 @item Applies to: @tab elements with 'display' value 'list-item' | |
2046 @item Inherited: @tab yes | |
2047 @item Percentage values: @tab N/A | |
2048 @end multitable | |
2049 | |
2050 This property is used to determine the appearance of the list-item | |
2051 marker if 'list-style-image' is 'none' or if the image pointed to by the | |
2052 URL cannot be displayed. | |
2053 | |
2054 Fo example: | |
2055 @example | |
2056 OL @{ list-style-type: decimal @} /* 1 2 3 4 5 etc. */ | |
2057 OL @{ list-style-type: lower-alpha @} /* a b c d e etc. */ | |
2058 OL @{ list-style-type: lower-roman @} /* i ii iii iv v etc. */ | |
2059 @end example | |
2060 | |
2061 @node list-style-image, list-style-position, list-style-type, Classification | |
2062 @subsubsection list-style-image | |
2063 | |
2064 @multitable @columnfractions .2 .8 | |
2065 @item Value: @tab <url> | none | |
2066 @item Initial: @tab none | |
2067 @item Applies to: @tab elements with 'display' value 'list-item' | |
2068 @item Inherited: @tab yes | |
2069 @item Percentage values: @tab N/A | |
2070 @end multitable | |
2071 | |
2072 This property sets the image that will be used as the list-item | |
2073 marker. When the image is available it will replace the marker set with | |
2074 the 'list-style-type' marker. | |
2075 | |
2076 NOTE: This is currently unimplemented in Emacs/W3. | |
2077 | |
2078 @example | |
2079 UL @{ list-style-image: url(http://png.com/ellipse.png) @} | |
2080 @end example | |
2081 | |
2082 @node list-style-position, list-style, list-style-image, Classification | |
2083 @subsubsection list-style-position | |
2084 | |
2085 @multitable @columnfractions .2 .8 | |
2086 @item Supported Values: @tab outside | |
2087 @item Unsupported Values: @tab inside | |
2088 @item Initial: @tab outside | |
2089 @item Applies to: @tab elements with 'display' value 'list-item' | |
2090 @item Inherited: @tab yes | |
2091 @item Percentage values: @tab N/A | |
2092 @end multitable | |
2093 | |
2094 The value of 'list-style-position' determines how the list-item marker | |
2095 is drawn with regard to the content. For a formatting example see | |
2096 section 4.1.3. | |
2097 | |
2098 @node list-style, , list-style-position, Classification | |
2099 @subsubsection list-style | |
2100 | |
2101 @multitable @columnfractions .2 .8 | |
2102 @item Value: @tab <keyword> || <position> || <url> | |
2103 @item Initial: @tab not defined for shorthand properties | |
2104 @item Applies to: @tab elements with 'display' value 'list-item' | |
2105 @item Inherited: @tab yes | |
2106 @item Percentage values: @tab N/A | |
2107 @end multitable | |
2108 | |
2109 The 'list-style' property is a shorthand notation for setting the three | |
2110 properties 'list-style-type', 'list-style-image' and | |
2111 'list-style-position' at the same place in the style sheet. | |
2112 | |
2113 @example | |
2114 UL @{ list-style: upper-roman inside @} | |
2115 UL UL @{ list-style: circle outside @} | |
2116 LI.square @{ list-style: square @} | |
2117 @end example | |
2118 | |
2119 Setting 'list-style' directly on 'LI' elements can have unexpected | |
2120 results. Consider: | |
2121 | |
2122 @example | |
2123 <STYLE TYPE="text/css"> | |
2124 OL.alpha LI @{ list-style: lower-alpha @} | |
2125 UL LI @{ list-style: disc @} | |
2126 </STYLE> | |
2127 <BODY> | |
2128 <OL CLASS=alpha> | |
2129 <LI>level 1 | |
2130 <UL> | |
2131 <LI>level 2 | |
2132 </UL> | |
2133 </OL> | |
2134 </BODY> | |
2135 @end example | |
2136 | |
2137 Since the specificity (as defined in the cascading order) is higher for | |
2138 the first rule in the style sheet in the example above, it will override | |
2139 the second rule on all 'LI' elements and only 'lower-alpha' list styles | |
2140 will be used. It is therefore recommended to set 'list-style' only on | |
2141 the list type elements: | |
2142 | |
2143 @example | |
2144 OL.alpha @{ list-style: lower-alpha @} | |
2145 UL @{ list-style: disc @} | |
2146 @end example | |
2147 | |
2148 In the above example, inheritance will transfer the 'list-style' values | |
2149 from 'OL' and 'UL' elements to 'LI' elements. | |
2150 | |
2151 A URL value can be combined with any other value: | |
2152 | |
2153 @example | |
2154 UL @{ list-style: url(http://png.com/ellipse.png) disc @} | |
2155 @end example | |
2156 | |
2157 In the example above, the 'disc' will be used when the image is | |
2158 unavailable. | |
2159 | |
2160 @node Media Selection, Speech Properties, Classification, Properties | |
2161 @subsection Media Selection | |
2162 | |
2163 To specify that a stylesheet declaration should only apply when using a | |
2164 certain media type (ie: different font families preferred when printing | |
2165 versus on-screen presentation), the declarations should be wrapped in | |
2166 the proposed @b{@@media} directive. | |
2167 | |
2168 The @@media directive takes two arguments, the media type, and a block | |
2169 of style declarations. | |
2170 | |
2171 @example | |
2172 @@media print @{ | |
2173 BODY @{ font-size: 10pt @} | |
2174 H1 @{ font-size: 14pt @} | |
2175 @} | |
2176 @end example | |
2177 The '@@media' construct also allows to put include style sheet rules | |
2178 for various media in the same style sheet: | |
2179 | |
2180 @example | |
2181 @@media print @{ | |
2182 BODY @{ font-size: 10pt @} | |
2183 @} | |
2184 @@media screen @{ | |
2185 BODY @{ font-size: 12pt @} | |
2186 @} | |
2187 @end example | |
2188 | |
2189 Currently, the following media types are defined. | |
2190 @table @b | |
2191 @item Print | |
2192 Output for paged opaque material, and for documents viewed on screen in | |
2193 print preview mode. | |
2194 @item Screen | |
2195 A continuous presentation for computer screens. | |
2196 @item Projector | |
2197 Paged presentation for projected presentations. | |
2198 @item Braille | |
2199 For braille tactile feedback devices. | |
2200 @item Speech | |
2201 Aural presentation. | |
2202 @item Emacs | |
2203 The stylesheet will only be applied if the user is running in Emacs 19. | |
2204 @item XEmacs | |
2205 The stylesheet will only be applied if the user is running in XEmacs 19. | |
2206 @item All | |
2207 The default value, the style sheet applies to all output devices | |
2208 @end table | |
2209 | |
2210 @node Speech Properties, , Media Selection, Properties | |
2211 @subsection Speech Properties | |
2212 | |
2213 Those of us who are sighted are accustomed to visual presentation of | |
2214 @sc{html} documents, frequently on a bitmapped display. This is not the | |
2215 only possible presentation method, however. Aural presentation, using a | |
2216 combination of speech synthesis and 'audio icons', provides an | |
2217 alternative presentation. This form of presentation is in current use by | |
2218 the blind and print-impaired communities. | |
2219 | |
2220 Often such aural presentation occurs by converting the document to plain | |
2221 text and feeding this to a 'screen reader' -- software or hardware that | |
2222 simply reads all the characters on the screen. This results in less | |
2223 effective presentation than would be the case if the document structure | |
2224 were retained. | |
2225 | |
2226 There are other large markets for aural presentation, including in-car | |
2227 and home entertainment use; aurual or mixed aural/visual presentation is | |
2228 thus likely to increase in importance over the next few years. Realizing | |
2229 that that the aural rendering is essentially independent of the visual | |
2230 rendering: | |
2231 | |
2232 @itemize @bullet | |
2233 @item | |
2234 Allows orthogonal aural and visual views. | |
2235 @item | |
2236 Allows browsers to optionally implement both aural and visual views to | |
2237 produce truly multimodal documents. | |
2238 @end itemize | |
2239 | |
2240 @menu | |
2241 * volume:: | |
2242 * pause-before:: | |
2243 * pause-after:: | |
2244 * pause:: | |
2245 * cue-before:: | |
2246 * cue-after:: | |
2247 * cue:: | |
2248 * play-during:: | |
2249 * speed:: | |
2250 * voice-family:: | |
2251 * pitch:: | |
2252 * pitch-range:: | |
2253 * stress:: | |
2254 * richness:: | |
2255 * speak-punctuation:: | |
2256 * speak-date:: | |
2257 * speak-numeral:: | |
2258 * speak-time:: | |
2259 @end menu | |
2260 | |
2261 @node volume, pause-before, Speech Properties, Speech Properties | |
2262 @subsubsection volume | |
2263 | |
2264 @multitable @columnfractions .2 .8 | |
2265 @item Value: @tab <percentage> | mute | x-soft | soft | medium | loud | x-loud | |
2266 @item Initial: @tab medium | |
2267 @item Applies to: @tab all elements | |
2268 @item Inherited: @tab yes | |
2269 @item Percentage values: @tab relative to user-specified mapping | |
2270 @end multitable | |
2271 | |
2272 The legal range of percentage values is 0% to 100%. There is a fixed | |
2273 mapping between keyword values and percentages: | |
2274 | |
2275 @itemize @bullet | |
2276 @item | |
2277 'x-soft' = '0%' | |
2278 @item | |
2279 'soft' = '25%' | |
2280 @item | |
2281 'medium' = '50%' | |
2282 @item | |
2283 'loud' = '75%' | |
2284 @item | |
2285 'x-loud' = '100%' | |
2286 @end itemize | |
2287 | |
2288 Volume refers to the median volume of the waveform. In other words, a | |
2289 highly inflected voice at a volume of 50 might peak well above | |
2290 that. Note that '0%' does not mean the same as "mute". 0% represents the | |
2291 minimum audible volume level and 100% corresponds to the maximum | |
2292 comfortable level. The UA should allow the values corresponding to 0% | |
2293 and 100% to be set by the user. Suitable values depend on the equipment | |
2294 in use (speakers, headphones), the environment (in car, home theater, | |
2295 library) and personal preferences. Some examples: | |
2296 | |
2297 @itemize @bullet | |
2298 @item | |
2299 A browser for in-car use has a setting for when there is lots of | |
2300 background noise . 0% would map to a fairly high level and 100% to a | |
2301 quite high level. The overall values are likely to be human adjustable | |
2302 for comfort, for example with a physical volume control: what this | |
2303 proposal does is adjust the dynamic range. | |
2304 @item | |
2305 Another speech browser is being used in the home, late at night, (don't | |
2306 annoy the neighbors) or in a shared study room. 0% is set to very quiet | |
2307 and 100% to a fairly quiet level, too. As with the first example, there | |
2308 is a low slope; the dynamic range is reduced. The actual volumes are low | |
2309 here, wheras they were high in the first example. | |
2310 @item | |
2311 In a quiet and isolated house, an expensive hifi home theatre setup. 0% | |
2312 is set fairly low and 100% to quite high; there is wide dynamic range. | |
2313 @end itemize | |
2314 | |
2315 The same authors stylesheet could be used in all cases, simply by | |
2316 mapping the 0 and 100 points suitably at the client side. | |
2317 | |
2318 @node pause-before, pause-after, volume, Speech Properties | |
2319 @subsubsection pause-before | |
2320 | |
2321 @multitable @columnfractions .2 .8 | |
2322 @item Value: @tab <time> | <percentage> | |
2323 @item Initial: @tab UA specific | |
2324 @item Applies to: @tab all elements | |
2325 @item Inherited: @tab no | |
2326 @item Percentage values: @tab speed | |
2327 @end multitable | |
2328 | |
2329 This property specifies the pause before elements. It may be given in an | |
2330 absolute units (seconds, milliseconds) or as a relative value in which | |
2331 case it is relative to the reciprocal of the 'speed' property: if speed | |
2332 is 120 words per minute (ie a word takes half a second -- 500 | |
2333 milliseconds) then a pause-before of 100% means a pause of 500 ms and a | |
2334 pause-before of 20% means 100ms. | |
2335 | |
2336 Using relative units gives more robust stylesheets in the face of large | |
2337 changes in speed. | |
2338 | |
2339 @node pause-after, pause, pause-before, Speech Properties | |
2340 @subsubsection pause-after | |
2341 | |
2342 @multitable @columnfractions .2 .8 | |
2343 @item Value: @tab <time> | <percentage> | |
2344 @item Applies to: @tab all elements | |
2345 @item Inherited: @tab no | |
2346 @item Percentage values: @tab speed | |
2347 @end multitable | |
2348 | |
2349 This property specifies the pause after elements. Values are specified | |
2350 the same way as 'pause-before'. | |
2351 | |
2352 @node pause, cue-before, pause-after, Speech Properties | |
2353 @subsubsection pause | |
2354 | |
2355 @multitable @columnfractions .2 .8 | |
2356 @item Value: @tab [<time> | <percentage> ]@{1,2@}; | |
2357 @item Applies to: @tab all elements | |
2358 @item Inherited: @tab no | |
2359 @item Percentage values: @tab speed | |
2360 @end multitable | |
2361 | |
2362 The 'pause' property is a shorthand for setting 'pause-before' and | |
2363 'pause-after'. The first value is pause-before and the second is | |
2364 pause-after. If only one value is given, it applies to both properties. | |
2365 | |
2366 Examples: | |
2367 | |
2368 @example | |
2369 H1 @{ pause: 20ms @} /* pause-before: 20ms; pause-after: 20ms */ | |
2370 H2 @{ pause: 30ms 40ms @} /* pause-before: 30ms; pause-after: 40ms */ | |
2371 H3 @{ pause-after: 10ms @} /* pause-before: ?; pause-after: 10ms */ | |
2372 @end example | |
2373 | |
2374 @node cue-before, cue-after, pause, Speech Properties | |
2375 @subsubsection cue-before | |
2376 | |
2377 @multitable @columnfractions .2 .8 | |
2378 @item Value: @tab <url> | none | |
2379 @item Initial: @tab none | |
2380 @item Applies to: @tab all elements | |
2381 @item Inherited: @tab no | |
2382 @end multitable | |
2383 Auditory icons are another way to distinguish semantic elements. Sounds | |
2384 may be played before, and/or after the element to delimit it. The same | |
2385 sound can be used both before and after, using the cue property. | |
2386 | |
2387 Examples: | |
2388 | |
2389 @example | |
2390 A @{ cue-before: url(bell.aiff); cue-after: url(dong.wav) @} | |
2391 H1 @{ cue-before: url(pop.au); cue-after: url(pop.au) @} | |
2392 H1 @{ cue: url(pop.au) @} /* same as previous */ | |
2393 @end example | |
2394 | |
2395 @node cue-after, cue, cue-before, Speech Properties | |
2396 @subsubsection cue-after | |
2397 | |
2398 @xref{cue-before} | |
2399 | |
2400 @node cue, play-during, cue-after, Speech Properties | |
2401 @subsubsection cue | |
2402 | |
2403 @xref{cue-before} | |
2404 | |
2405 @node play-during, speed, cue, Speech Properties | |
2406 @subsubsection cue-during | |
2407 | |
2408 @multitable @columnfractions .2 .8 | |
2409 @item Value: @tab <url> | mix | none | |
2410 @item Initial: @tab mix | |
2411 @item Applies to: @tab all elements | |
2412 @item Inherited: @tab no | |
2413 @end multitable | |
2414 Similar to the cue-before and cue-after properties, this indicates sound | |
2415 to be played during an element as a background (ie the sound is mixed in | |
2416 with the speech). | |
2417 | |
2418 Examples: | |
2419 | |
2420 @example | |
2421 BLOCKQUOTE.sad @{ cue-during: url(violins.aiff) @} | |
2422 @end example | |
2423 | |
2424 @node speed, voice-family, play-during, Speech Properties | |
2425 @subsubsection speed | |
2426 | |
2427 @multitable @columnfractions .2 .8 | |
2428 @item Value: @tab <words-per-minute> | x-slow | slow | medium | fast | x-fast | faster | slower | |
2429 @item Initial: @tab medium | |
2430 @item Applies to: @tab all elements | |
2431 @item Inherited: @tab yes | |
2432 @end multitable | |
2433 | |
2434 Specifies the speaking rate. Note that both absolute and relative | |
2435 keyword values are allowed (compare with @ref{font-weight}). | |
2436 | |
2437 @node voice-family, pitch, speed, Speech Properties | |
2438 @subsubsection voice-family | |
2439 | |
2440 @multitable @columnfractions .2 .8 | |
2441 @item Value: @tab [[<specific-voice> | <generic-voice>],]* [<specific-voice> | <generic-voice>] | |
2442 @item Initial: @tab device-specific | |
2443 @item Applies to: @tab all elements | |
2444 @item Inherited: @tab yes | |
2445 @end multitable | |
2446 | |
2447 The value is a prioritized list of voice family names. Generic families | |
2448 are male, female, and child. | |
2449 | |
2450 Examples of specific voice families are: comedian, paul, lisa | |
2451 | |
2452 Examples | |
2453 | |
2454 @example | |
2455 H1 @{ voice-family: announcer, male @} | |
2456 P.part.romeo @{ voice-family: romeo, male @} | |
2457 P.part.juliet @{ voice-family: juliet, female @} | |
2458 @end example | |
2459 | |
2460 @node pitch, pitch-range, voice-family, Speech Properties | |
2461 @subsubsection pitch | |
2462 | |
2463 @multitable @columnfractions .2 .8 | |
2464 @end multitable | |
2465 | |
2466 @node pitch-range, stress, pitch, Speech Properties | |
2467 @subsubsection pitch-range | |
2468 | |
2469 @multitable @columnfractions .2 .8 | |
2470 @end multitable | |
2471 | |
2472 @node stress, richness, pitch-range, Speech Properties | |
2473 @subsubsection stress | |
2474 | |
2475 @multitable @columnfractions .2 .8 | |
2476 @item Value: @tab <percentage> | |
2477 @item Initial: @tab medium | |
2478 @item Applies to: @tab all elements | |
2479 @item Inherited: @tab yes | |
2480 @end multitable | |
2481 | |
2482 Specifies the level of stress (assertiveness or emphasis) of the | |
2483 speaking voice. English is a stressed language, and different parts of a | |
2484 sentence are assigned primary, secondary or tertiary stress. The value | |
2485 of property 'stress' controls the amount of inflection that results from | |
2486 these stress markers. | |
2487 | |
2488 Increasing the value of this property results in the speech being more | |
2489 strongly inflected. It is in a sense dual to property 'pitch-range' and | |
2490 is provided to allow developers to exploit higher-end auditory displays. | |
2491 | |
2492 @node richness, speak-punctuation, stress, Speech Properties | |
2493 @subsubsection richness | |
2494 | |
2495 @multitable @columnfractions .2 .8 | |
2496 @item Value: @tab <percentage> | |
2497 @item Initial: @tab medium (50%) | |
2498 @item Applies to: @tab all elements | |
2499 @item Inherited: @tab yes | |
2500 @end multitable | |
2501 | |
2502 Specifies the richness (brightness) of the speaking voice. Different | |
2503 speech devices may require the setting of one or more device-specific | |
2504 parameters to achieve this effect. | |
2505 | |
2506 The effect of increasing richness is to produce a voice that carries -- | |
2507 reducing richness produces a soft, mellifluous voice. | |
2508 | |
2509 @node speak-punctuation, speak-date, richness, Speech Properties | |
2510 @subsubsection speak-punctuation | |
2511 | |
2512 @multitable @columnfractions .2 .8 | |
2513 @item Value: @tab code | none | |
2514 @item Initial: @tab none | |
2515 @item Applies to: @tab all elements | |
2516 @item Inherited: @tab yes | |
2517 @end multitable | |
2518 | |
2519 'code' indicates that punctuation such as semicolons, braces, and so on | |
2520 are to be spoken literally. The default value of 'none' means that | |
2521 punctuation is not spoken but instead is rendered naturally as various | |
2522 pauses. | |
2523 | |
2524 @node speak-date, speak-numeral, speak-punctuation, Speech Properties | |
2525 @subsubsection speak-date | |
2526 | |
2527 @multitable @columnfractions .2 .8 | |
2528 @item Value: @tab myd | dmy | ymd | none | |
2529 @item Initial: @tab none | |
2530 @item Applies to: @tab all elements | |
2531 @item Inherited: @tab no | |
2532 @end multitable | |
2533 | |
2534 This is a hint that the element contains a date and also how that date | |
2535 should be spoken. month-day-year is common in the USA, while | |
2536 day-month-year is common in Europe and year-month-day is also used. | |
2537 | |
2538 This should really be an HTML tag not a stylesheet property, since it | |
2539 gives semantic information about the content. | |
2540 | |
2541 @node speak-numeral, speak-time, speak-date, Speech Properties | |
2542 @subsubsection speak-numeral | |
2543 | |
2544 @multitable @columnfractions .2 .8 | |
2545 @item Value: @tab digits | continous | |
2546 @item Initial: @tab none | |
2547 @item Applies to: @tab all elements | |
2548 @item Inherited: @tab yes | |
2549 @end multitable | |
2550 | |
2551 @node speak-time, , speak-numeral, Speech Properties | |
2552 @subsubsection speak-time | |
2553 | |
2554 @multitable @columnfractions .2 .8 | |
2555 @item Value: @tab 24 | 12 | none | |
2556 @item Initial: @tab none | |
2557 @item Applies to: @tab all elements | |
2558 @item Inherited: @tab yes | |
2559 @end multitable | |
2560 | |
2561 @node Units, , Properties, Stylesheets | |
2562 @section Units | |
2563 | |
2564 @menu | |
2565 * Length Units:: | |
2566 * Percentage Units:: | |
2567 * Color Units:: | |
2568 * URLs:: | |
2569 * Angle Units:: | |
2570 * Time Units:: | |
2571 @end menu | |
2572 | |
2573 @node Length Units, Percentage Units, Units, Units | |
2574 @subsection Length Units | |
2575 | |
2576 @node Percentage Units, Color Units, Length Units, Units | |
2577 @subsection Percentage Units | |
2578 | |
2579 @node Color Units, URLs, Percentage Units, Units | |
2580 @subsection color Units | |
2581 | |
2582 @node URLs, Angle Units, Color Units, Units | |
2583 @subsection URLs | |
2584 | |
2585 @node Angle Units, Time Units, URLs, Units | |
2586 @subsection Angle Units | |
2587 | |
2588 These are the legal angle units: | |
2589 @itemize @bullet | |
2590 @item | |
2591 deg: degrees | |
2592 @item | |
2593 grad | |
2594 @item | |
2595 rad: radians | |
2596 @end itemize | |
2597 | |
2598 @node Time Units, , Angle Units, Units | |
2599 @subsection Time Units | |
2600 | |
2601 These are the legal time units: | |
2602 | |
2603 @itemize @bullet | |
2604 @item | |
2605 ms: milliseconds | |
2606 @item | |
2607 s: seconds | |
2608 @end itemize | |
2609 | |
2610 @node Supported URLs, MIME Support, Stylesheets, Top | |
2611 @chapter Supported URLs | |
2612 | |
2613 ::WORK:: List supported URL types, specific RFCs, etc. | |
2614 | |
2615 @menu | |
2616 * file:: Local file access. | |
2617 * ftp:: Remote file access via ftp. | |
2618 * nfs:: Remote file access via NFS. | |
2619 * info:: Access to the Emacs Info system. | |
2620 * http/https:: @sc{http/1.0} support. | |
2621 * mailto:: Sending simple electronic mail. | |
2622 * news/nntp/snews:: Reading and sending Usenet news. | |
2623 * rlogin/telnet/tn3270:: Legacy host connections. | |
2624 * irc:: Internet Relay Chat. | |
2625 * data:: Embedding the data within the URL itself. | |
2626 * mailserver:: Slightly more complicated electronic mail. | |
2627 * gopher:: Gopher and Gopher+. | |
2628 * finger:: The old favorite. | |
2629 @end menu | |
2630 | |
2631 @node file, ftp, Supported URLs, Supported URLs | |
2632 @section file | |
2633 | |
2634 @node ftp, nfs, file, Supported URLs | |
2635 @section ftp | |
2636 | |
2637 @node nfs, info, ftp, Supported URLs | |
2638 @section nfs | |
2639 | |
2640 @node info, http/https, nfs, Supported URLs | |
2641 @section info | |
2642 | |
2643 @node http/https, mailto, info, Supported URLs | |
2644 @section http/https | |
2645 | |
2646 @node mailto, news/nntp/snews, http/https, Supported URLs | |
2647 @section mailto | |
2648 | |
2649 @node news/nntp/snews, rlogin/telnet/tn3270, mailto, Supported URLs | |
2650 @section news/nntp/snews | |
2651 | |
2652 @node rlogin/telnet/tn3270, irc, news/nntp/snews, Supported URLs | |
2653 @section rlogin/telnet/tn3270 | |
2654 | |
2655 @node irc, data, rlogin/telnet/tn3270, Supported URLs | |
2656 @section irc | |
2657 | |
2658 @node data, mailserver, irc, Supported URLs | |
2659 @section data | |
2660 | |
2661 @node mailserver, gopher, data, Supported URLs | |
2662 @section mailserver | |
2663 | |
2664 @node gopher, finger, mailserver, Supported URLs | |
2665 @section gopher | |
2666 | |
2667 @node finger, , gopher, Supported URLs | |
2668 @section finger | |
2669 | |
2670 @node MIME Support, Security, Supported URLs, Top | |
2671 @chapter MIME Support | 1664 @chapter MIME Support |
2672 @sc{mime} is an emerging standard for multimedia mail. It offers a very | 1665 MIME is an emerging standard for multimedia mail. It offers a very |
2673 flexible typing mechanism. The type of a file or message is specified | 1666 flexible typing mechanism. The type of a file or message is specified |
2674 in two parts, separated by a '/'. The first part is the general | 1667 in two parts, separated by a '/'. The first part is the general |
2675 category of the data (text, application, image, etc.). The second part | 1668 category of the data (text, application, image, etc.). The second part |
2676 is the specific type of data (postscript, png, jpeg, etc.). So | 1669 is the specific type of data (postscript, gif, jpeg, etc.). So |
2677 @samp{text/html} specifies an @sc{html} document, whereas | 1670 @samp{text/html} specifies an HTML document, whereas |
2678 @samp{image/x-xwindowdump} specifies an image of an Xwindow taken with | 1671 @samp{image/x-xwindowdump} specifies an image of an Xwindow taken with |
2679 the @file{xwd} program. | 1672 the @file{xwd} program. |
2680 | 1673 |
2681 | 1674 |
2682 This typing allows much more flexibility in naming files. @sc{http}/1.0 | 1675 This typing allows much more flexibility in naming files. HTTP/1.0 |
2683 servers can now send back content-type headers in response to a request, | 1676 servers can now send back content-type headers in response to a request, |
2684 and not have the client second-guess it based on file extensions. @sc{html} | 1677 and not have the client second-guess it based on file extensions. HTML |
2685 files can now be named @file{something.png} (not a great idea, but | 1678 files can now be named @file{something.gif} (not a great idea, but |
2686 possible). | 1679 possible). |
2687 | 1680 |
1681 @ifinfo | |
2688 @menu | 1682 @menu |
2689 * Adding MIME types based on file extensions:: How to map file | 1683 * Adding MIME types based on file extensions:: How to map file |
2690 extensions onto MIME | 1684 extensions onto MIME |
2691 types (e.g., @samp{.png -> | 1685 types (e.g., @samp{.gif -> |
2692 image/png)}. | 1686 image/gif)}. |
2693 * Specifying Viewers:: How to specify external and internal viewers | 1687 * Specifying Viewers:: How to specify external and internal viewers |
2694 for files that Emacs/W3 cannot handle natively. | 1688 for files that Emacs-W3 cannot handle natively. |
2695 @end menu | 1689 @end menu |
1690 @end ifinfo | |
2696 | 1691 |
2697 @node Adding MIME types based on file extensions, Specifying Viewers, MIME Support, MIME Support | 1692 @node Adding MIME types based on file extensions, Specifying Viewers, MIME Support, MIME Support |
2698 @section Adding MIME types based on file extensions | 1693 @section Adding MIME types based on file extensions |
2699 | |
2700 @vindex mm-mime-extensions | 1694 @vindex mm-mime-extensions |
2701 For some protocols however, it is still necessary to guess the content | 1695 For some protocols however, it is still necessary to guess the content |
2702 of a file based on the file extension. This type of guess-work should | 1696 of a file based on the file extension. This type of guess-work should |
2703 only be needed when accessing files via @sc{ftp}, local file access, or old | 1697 only be needed when accessing files via FTP, local file access, or old |
2704 @sc{http}/0.9 servers. | 1698 HTTP/0.9 servers. |
2705 | 1699 |
2706 Instead of specifying how to view things twice, once based on | 1700 Instead of specifying how to view things twice, once based on |
2707 content-type and once based on the file extension, it is easier to map | 1701 content-type and once based on the file extension, it is easier to map |
2708 file extensions to MIME content-types. The variable that controls this | 1702 file extensions to MIME content-types. The variable that controls this |
2709 is @code{mm-mime-extensions}. | 1703 is @code{mm-mime-extensions}. |
2715 files. If a content-type is defined for the document, then this is | 1709 files. If a content-type is defined for the document, then this is |
2716 over-ridden. Regular expressions can @b{NOT} be used. | 1710 over-ridden. Regular expressions can @b{NOT} be used. |
2717 | 1711 |
2718 @cindex mime-types file | 1712 @cindex mime-types file |
2719 @findex mm-parse-mimetypes | 1713 @findex mm-parse-mimetypes |
2720 Both Mosaic and the NCSA @sc{http} daemon rely on a separate file for mapping | 1714 Both Mosaic and the NCSA HTTP daemon rely on a separate file for mapping |
2721 file extensions to MIME types. Instead of having the users of Emacs/W3 | 1715 file extensions to MIME types. Instead of having the users of Emacs-W3 |
2722 duplicate this in lisp, this file can be parsed using the | 1716 duplicate this in lisp, this file can be parsed using the |
2723 @code{url-parse-mimetypes} function. This function is called each time | 1717 @code{url-parse-mimetypes} function. This function is called each time |
2724 w3 is loaded. It tries to locate mimetype files in several places. If | 1718 w3 is loaded. It tries to locate mimetype files in several places. If |
2725 the environment variable @code{MIMETYPES} is nonempty, then this is | 1719 the environment variable @code{MIMETYPES} is nonempty, then this is |
2726 assumed to specify a UNIX-like path of mimetype files (this is a colon | 1720 assumed to specify a UNIX-like path of mimetype files (this is a colon |
2727 separated string of pathnames). If the @code{MIMETYPES} environment | 1721 separated string of pathnames). If the @code{MIMETYPES} environment |
2728 variable is empty, then Emacs/W3 looks for these files: | 1722 variable is empty, then Emacs-W3 looks for these files: |
2729 | 1723 |
2730 @enumerate | 1724 @enumerate |
2731 @item | 1725 @item |
2732 @file{~/.mime-types} | 1726 @file{~/.mime-types} |
2733 @item | 1727 @item |
2738 @file{/usr/local/etc/mime-types} | 1732 @file{/usr/local/etc/mime-types} |
2739 @item | 1733 @item |
2740 @file{/usr/local/www/conf/mime-types} | 1734 @file{/usr/local/www/conf/mime-types} |
2741 @end enumerate | 1735 @end enumerate |
2742 | 1736 |
2743 Each line contains information for one @sc{http} type. These types resemble | 1737 Each line contains information for one http type. These types resemble |
2744 MIME types. To add new ones, use subtypes beginning with x-, such as | 1738 MIME types. To add new ones, use subtypes beginning with x-, such as |
2745 application/x-myprogram. Lines beginning with # are comment lines, and | 1739 application/x-myprogram. Lines beginning with # are comment lines, and |
2746 suitably ignored. Each line consists of: | 1740 suitably ignored. Each line consists of: |
2747 | 1741 |
2748 type/subtype ext1 ext2 ... ext@var{n} | 1742 type/subtype ext1 ext2 ... ext@var{n} |
2749 | 1743 |
2750 type/subtype is the MIME-like type of the document. ext* is any number | 1744 type/subtype is the MIME-like type of the document. ext* is any number |
2751 of space-separated filename extensions which correspond to the MIME | 1745 of space-separated filename extensions which correspond to the MIME |
2752 type. | 1746 type. |
2753 | 1747 |
2754 @node Specifying Viewers, , Adding MIME types based on file extensions, MIME Support | 1748 @node Specifying Viewers, ,Adding MIME types based on file extensions, MIME Support |
2755 @section Specifying Viewers | 1749 @section Specifying Viewers |
2756 | 1750 Not all files look as they should when parsed as an HTML document |
2757 Not all files look as they should when parsed as an @sc{html} document | |
2758 (whitespace is stripped, paragraphs are reformatted, and lots of little | 1751 (whitespace is stripped, paragraphs are reformatted, and lots of little |
2759 changes that make the document look unrecognizable). Files may be | 1752 changes that make the document look unrecognizable). Files may be |
2760 passed to external programs or Emacs Lisp functions to be viewed. | 1753 passed to external programs or Emacs Lisp functions to be viewed. |
2761 | 1754 |
2762 Not all files can be viewed accurately from within an Emacs session (PNG | 1755 Not all files can be viewed accurately from within an Emacs session (GIF |
2763 files for example, or audio files). For this reason, the user can | 1756 files for example, or audio files). For this reason, the user can |
2764 specify file "viewers" based on MIME content-types. This is done with | 1757 specify file "viewers" based on MIME content-types. This is done with |
2765 a standard mailcap file. @xref{Mailcap Files} | 1758 a standard mailcap file. @xref{Mailcap Files} |
2766 | 1759 |
2767 @findex mm-add-mailcap-entry | 1760 @findex mm-add-mailcap-entry |
2768 As an alternative, the function @code{mm-add-mailcap-entry} can also be | 1761 As an alternative, the function @code{mm-add-mailcap-entry} can also be |
2769 used from an appropriate hook.@xref{Hooks} This functions takes three | 1762 used from an appropriate hook.@xref{Hooks} This functions takes three |
2770 arguments, the major type ("@i{image}"), the minor type ("@i{png}"), and | 1763 arguments, the major type ("@i{image}"), the minor type ("@i{gif}"), and |
2771 an assoc list of information about the viewer. Please see the @sc{url} | 1764 an assoc list of information about the viewer. Please see the URL |
2772 documentation for more specific information on what this assoc list | 1765 documentation for more specific information on what this assoc list |
2773 should look like. | 1766 should look like. |
2774 | 1767 |
2775 @node Security, Non-Unix Operating Systems, MIME Support, Top | 1768 @node Security, Non-Unix Operating Systems, , Top |
2776 @chapter Security | 1769 @chapter Security |
2777 @cindex Security | 1770 @cindex Security |
2778 @cindex Paranoia | 1771 @cindex Paranoia |
2779 There are an increasing number of ways to authenticate a user to a web | 1772 There are an increasing number of ways to authenticate a user to a web |
2780 service. Emacs/W3 tries to support as many as possible. Emacs/W3 | 1773 service. Emacs-W3 tries to support as many as possible. Emacs-W3 |
2781 currently supports: | 1774 currently supports: |
2782 | 1775 |
2783 @table @b | 1776 @table @b |
2784 @item Basic Authentication | 1777 @item Basic Authentication |
2785 @cindex Security, Basic | 1778 @cindex Security, Basic |
2804 @cindex SSL | 1797 @cindex SSL |
2805 @cindex Gag Puke Retch | 1798 @cindex Gag Puke Retch |
2806 @cindex Exportability | 1799 @cindex Exportability |
2807 @cindex Export Restrictions | 1800 @cindex Export Restrictions |
2808 SSL is the @code{Secure Sockets Layer} interface developed by Netscape | 1801 SSL is the @code{Secure Sockets Layer} interface developed by Netscape |
2809 Communications @footnote{http://www.netscape.com/}. Emacs/W3 supports | 1802 Communications @footnote{http://www.netscape.com/}. Emacs-W3 supports |
2810 @sc{http} transfers over an SSL encrypted channel, if the appropriate files | 1803 HTTP transfers over an SSL encrypted channel, if the appropriate files |
2811 have been installed.@xref{Installing SSL} | 1804 have been installed.@xref{Installing SSL} |
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} | |
2812 @end table | 1822 @end table |
2813 | 1823 |
2814 @node Non-Unix Operating Systems, Speech Integration, Security, Top | 1824 @node Non-Unix Operating Systems, VMS, Security, Top |
2815 @chapter Non-Unix Operating Systems | 1825 @chapter Non-Unix Operating Systems |
2816 @cindex Non-Unix Operating Systems | 1826 @cindex Non-Unix Operating Systems |
2817 | 1827 @ifinfo |
2818 @menu | 1828 @menu |
2819 * VMS:: The wonderful world of VAX|AXP-VMS! | 1829 * VMS:: The wonderful world of VAX|AXP-VMS! |
2820 * OS/2:: The next-best thing to Unix. | 1830 * OS/2:: The next-best thing to Unix. |
2821 * MS-DOS:: The wonderful world of MS-DOG! | 1831 * MS-DOS:: The wonderful world of MS-DOG! |
2822 * Windows:: Windows NT, Chicago/Windows 95. | 1832 * 32-Bit Windows:: Windows NT, Chicago/Windows 95. |
1833 * Amiga:: The Amiga, for those who still love them. | |
2823 @end menu | 1834 @end menu |
1835 @end ifinfo | |
2824 | 1836 |
2825 @node VMS, OS/2, Non-Unix Operating Systems, Non-Unix Operating Systems | 1837 @node VMS, OS/2, Non-Unix Operating Systems, Non-Unix Operating Systems |
2826 @section VMS | 1838 @section VMS |
2827 @cindex VAX-VMS | 1839 @cindex VAX-VMS |
2828 @cindex AXP-VMS | 1840 @cindex AXP-VMS |
2829 @cindex Digital VMS | 1841 @cindex Digital VMS |
2830 @cindex VMS | 1842 @cindex VMS |
2831 | |
2832 :: WORK :: VMS Specific instriuctions | 1843 :: WORK :: VMS Specific instriuctions |
2833 | 1844 |
2834 @node OS/2, MS-DOS, VMS, Non-Unix Operating Systems | 1845 @node OS/2, MS-DOS, VMS, Non-Unix Operating Systems |
2835 @section OS/2 | 1846 @section OS/2 |
2836 @cindex OS/2 | 1847 @cindex OS/2 |
2837 @cindex Warp | 1848 @cindex Warp |
2838 | |
2839 :: WORK :: OS/2 Specific instructions | 1849 :: WORK :: OS/2 Specific instructions |
2840 | 1850 |
2841 @node MS-DOS, Windows, OS/2, Non-Unix Operating Systems | 1851 @node MS-DOS, 32-Bit Windows, OS/2, Non-Unix Operating Systems |
2842 @section MS-DOS | 1852 @section MS-DOS |
2843 @cindex MS-DOS | 1853 @cindex MS-DOS |
2844 @cindex Microsloth | 1854 @cindex Microsloth |
2845 @cindex DOS | 1855 @cindex DOS |
2846 @cindex MS-DOG | 1856 @cindex MS-DOG |
2847 | |
2848 :: WORK :: DOS Specific instructions | 1857 :: WORK :: DOS Specific instructions |
2849 | 1858 |
2850 @node Windows, , MS-DOS, Non-Unix Operating Systems | 1859 @node 32-Bit Windows, Amiga, MS-DOS, Non-Unix Operating Systems |
2851 @section Windows | 1860 @section 32-Bit Windows |
2852 @cindex Windows (32-Bit) | 1861 @cindex Windows (32-Bit) |
2853 @cindex 32-Bit Windows | 1862 @cindex 32-Bit Windows |
2854 @cindex Microsloth | 1863 @cindex Microsloth |
2855 @cindex Windows '95 | 1864 @cindex Windows '95 |
2856 | |
2857 :: WORK :: 32bit Windows Specific instructions | 1865 :: WORK :: 32bit Windows Specific instructions |
2858 | 1866 |
2859 @node Speech Integration, Advanced Features, Non-Unix Operating Systems, Top | 1867 @node Amiga, Advanced Features, 32-Bit Windows, Non-Unix Operating Systems |
2860 @chapter Speech Integration | 1868 @section Amiga |
2861 | 1869 @cindex Amiga |
2862 :: WORK :: Emacspeak integration | 1870 @cindex Commodore |
2863 | 1871 :: WORK :: Amiga specific instructions |
2864 @node Advanced Features, More Help, Speech Integration, Top | 1872 |
1873 @node Advanced Features, Style Sheets, Amiga, Top | |
1874 @comment node-name, next, previous, up | |
2865 @chapter Advanced Features | 1875 @chapter Advanced Features |
2866 | 1876 |
1877 @ifinfo | |
2867 @menu | 1878 @menu |
2868 * Disk Caching:: Improving performance by using a local disk cache | 1879 * Style Sheets:: Formatting control, the right way |
2869 * Interfacing to Mail/News:: How to make VM understand hypertext links | 1880 * Disk Caching:: Improving performance by using a local disk cache |
2870 * Debugging HTML:: How to make Emacs/W3 display warnings about invalid | 1881 * Interfacing to Mail/News:: How to make VM understand hypertext links |
2871 @sc{html}/@sc{html}+ constructs. | 1882 * Debugging HTML:: How to make Emacs-W3 display warnings about invalid |
2872 * Hooks:: Various hooks to use throughout Emacs/W3 | 1883 HTML/HTML+ constructs. |
2873 * Other Variables:: Miscellaneous variables that control the real | 1884 * Native WAIS Support:: How to make Emacs-W3 understand WAIS links without |
2874 guts of Emacs/W3. | 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. | |
2875 @end menu | 1892 @end menu |
2876 | 1893 @end ifinfo |
2877 @node Disk Caching, Interfacing to Mail/News, Advanced Features, Advanced Features | 1894 |
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 | |
2878 @section Disk Caching | 1952 @section Disk Caching |
2879 @cindex Caching | 1953 @cindex Caching |
2880 @cindex Persistent Cache | 1954 @cindex Persistent Cache |
2881 @cindex Disk Cache | 1955 @cindex Disk Cache |
2882 | |
2883 A cache stores the information on a page on the local machine. When | 1956 A cache stores the information on a page on the local machine. When |
2884 requesting a page that is in the cache, Emacs/W3 can retrieve the page | 1957 requesting a page that is in the cache, Emacs-W3 can retrieve the page |
2885 from the cache more quickly than retrieving the page again from its | 1958 from the cache more quickly than retrieving the page again from its |
2886 location out on the network. With a well-populated cache, browsing the | 1959 location out on the network. With a well-populated cache, browsing the |
2887 web is dramatically faster. | 1960 web is dramatically faster. |
2888 | 1961 |
2889 The first time a page is requested, Emacs/W3 retrieves the page from the | 1962 The first time a page is requested, Emacs-W3 retrieves the page from the |
2890 network. When requesting a page that is in the cache, Emacs/W3 checks | 1963 network. When requesting a page that is in the cache, Emacs-W3 checks |
2891 to see if the page has changed since it was last retrieved from the | 1964 to see if the page has changed since it was last retrieved from the |
2892 remote machine. If it has not changed, the local copy is used, saving | 1965 remote machine. If it has not changed, the local copy is used, saving |
2893 the transmission of the file over the network. | 1966 the transmission of the file over the network. |
2894 | 1967 |
2895 @vindex url-automatic-caching | 1968 @vindex url-automatic-caching |
2914 @cindex Browsing with no network connection | 1987 @cindex Browsing with no network connection |
2915 @cindex Netless browsing | 1988 @cindex Netless browsing |
2916 @vindex url-standalone-mode | 1989 @vindex url-standalone-mode |
2917 With a large cache of documents on the local disk, it can be very handy | 1990 With a large cache of documents on the local disk, it can be very handy |
2918 when traveling, or any other time the network connection is not active | 1991 when traveling, or any other time the network connection is not active |
2919 (a laptop with a dial-on-demand PPP connection, etc). Emacs/W3 can rely | 1992 (a laptop with a dial-on-demand PPP connection, etc). Emacs-W3 can rely |
2920 solely on its cache, and avoid checking to see if the page has changed | 1993 solely on its cache, and avoid checking to see if the page has changed |
2921 on the remote server. In the case of a dial-on-demand PPP connection, | 1994 on the remote server. In the case of a dial-on-demand PPP connection, |
2922 this will keep the phone line free as long as possible, only bringing up | 1995 this will keep the phone line free as long as possible, only bringing up |
2923 the PPP connection when asking for a page that is not located in the | 1996 the PPP connection when asking for a page that is not located in the |
2924 cache. This is very useful for demonstrations as well. To turn this | 1997 cache. This is very useful for demonstrations as well. To turn this |
2925 feature on, set the variable @code{url-standalone-mode} to | 1998 feature on, set the variable @code{url-standalone-mode} to |
2926 non-@code{nil}, or choose the `Use Cache Only' menu item (under | 1999 non-@code{nil}, or choose the `Use Cache Only' menu item (under |
2927 `Options') | 2000 `Options') |
2928 | 2001 |
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 | |
2929 @node Interfacing to Mail/News, Debugging HTML, Disk Caching, Advanced Features | 2032 @node Interfacing to Mail/News, Debugging HTML, Disk Caching, Advanced Features |
2930 @section Interfacing to Mail/News | 2033 @section Interfacing to Mail/News |
2931 @cindex Interfacing to Mail/News | 2034 @cindex Interfacing to Mail/News |
2932 @cindex VM | 2035 @cindex VM |
2933 @cindex Using Emacs/W3 with VM | 2036 @cindex Using Emacs-W3 with VM |
2934 @cindex GNUS | 2037 @cindex GNUS |
2935 @cindex Using Emacs/W3 with Gnus | 2038 @cindex Using Emacs-W3 with Gnus |
2936 @cindex RMAIL | 2039 @cindex RMAIL |
2937 @cindex Using Emacs/W3 with RMAIL | 2040 @cindex Using Emacs-W3 with RMAIL |
2938 | 2041 More and more people are including URLs in their signatures, and within |
2939 More and more people are including @sc{url}s in their signatures, and within | |
2940 the body of mail messages. It can get quite tedious to type these into | 2042 the body of mail messages. It can get quite tedious to type these into |
2941 the minibuffer to follow one. | 2043 the minibuffer to follow one. |
2942 | 2044 |
2943 @vindex browse-url-browser-function | 2045 @vindex browse-url-browser-function |
2944 With the latest versions of VM (the 5.9x series of betas) and Gnus | 2046 With the latest versions of VM (the 5.9x series of betas) and Gnus |
2945 (5.x), @sc{url}s are automatically highlighted, and can be followed with the | 2047 (5.x), URLs are automatically highlighted, and can be followed with the |
2946 mouse or the return key. How the @sc{url}s are viewed is determined by the | 2048 mouse or the return key. How the URLs are viewed is determined by the |
2947 variable @code{browse-url-browser-function}, and it should be set to the | 2049 variable @code{browse-url-browser-function}, and it should be set to the |
2948 symbol @code{browse-url-w3}. | 2050 symbol @code{browse-url-w3}. |
2949 | 2051 |
2950 To access @sc{url}s from within RMAIL, the following hook should do the | 2052 To access URLs from within RMAIL, the following hook should do the |
2951 trick. | 2053 trick. |
2952 @example | 2054 @example |
2953 (add-hook 'rmail-mode-hook | 2055 (add-hook 'rmail-mode-hook |
2954 (function | 2056 (function |
2955 (lambda () | 2057 (lambda () |
2956 (define-key rmail-mode-map [mouse-2] 'w3-maybe-follow-link-mouse) | 2058 (define-key rmail-mode-map [mouse-2] 'w3-maybe-follow-link-mouse) |
2957 (define-key rmail-mode-map "\r" 'w3-maybe-follow-link)))) | 2059 (define-key rmail-mode-map "\r" 'w3-maybe-follow-link)))) |
2958 @end example | 2060 @end example |
2959 | 2061 |
2960 @node Debugging HTML, Hooks, Interfacing to Mail/News, Advanced Features | 2062 @node Debugging HTML, Native WAIS Support, Interfacing to Mail/News, Advanced Features |
2961 @section Debugging HTML | 2063 @section Debugging HTML |
2962 @cindex Debugging | 2064 @cindex Debugging |
2963 @cindex Invalid HTML | 2065 @cindex Invalid HTML |
2964 @cindex Bad HTML | 2066 @cindex Bad HTML |
2965 @vindex w3-debug-buffer | 2067 @vindex w3-debug-buffer |
2966 @vindex w3-debug-html | 2068 @vindex w3-debug-html |
2967 | |
2968 For those people that are adventurous, or are just as anal as I am about | 2069 For those people that are adventurous, or are just as anal as I am about |
2969 people writing valid @sc{html}, set the variable @code{w3-debug-html} to | 2070 people writing valid HTML, set the variable @code{w3-debug-html} to |
2970 @code{t} and see what happens. | 2071 @code{t} and see what happens. |
2971 | 2072 |
2972 | 2073 |
2973 If a Emacs/W3 thinks it has encountered invalid @sc{html}, then a debugging | 2074 If a Emacs-W3 thinks it has encountered invalid HTML, then a debugging |
2974 message is displayed. | 2075 message is displayed. |
2975 | 2076 |
2976 :: WORK :: Need to list the different values w3-debug-html can have, and | 2077 :: WORK :: Need to list the different values w3-debug-html can have, and |
2977 :: WORK :: what they do :: | 2078 :: WORK :: what they do :: |
2978 | 2079 |
2979 @node Hooks, Other Variables, Debugging HTML, Advanced Features | 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 | |
2980 @section Hooks | 2136 @section Hooks |
2981 @cindex Hooks | 2137 @cindex Hooks |
2982 | |
2983 These are the various hooks that can be used to customize some of | 2138 These are the various hooks that can be used to customize some of |
2984 Emacs/W3's behavior. They are arranged in the order in which they would | 2139 Emacs-W3's behavior. They are arranged in the order in which they would |
2985 happen when retrieving a document. These are all 'normal hooks' in | 2140 happen when retrieving a document. All of these are functions (or lists |
2986 standard Emacs-terminology, meaning they are functions (or lists of | 2141 of functions) that are called consecutively. |
2987 functions) that are called consecutively. | |
2988 | 2142 |
2989 @table @code | 2143 @table @code |
2990 @vindex w3-load-hook | 2144 @vindex w3-load-hooks |
2991 @item w3-load-hook | 2145 @item w3-load-hooks |
2992 These hooks are run the first time a @sc{url} is fetched. All the | 2146 These hooks are run by @code{w3-do-setup} the first time a URL is |
2993 Emacs/W3 variables are initialized before this hook is run. | 2147 fetched. All the w3 variables are initialized before this hook is |
2994 @item w3-mode-hook | 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 | |
2995 These hooks are run after a buffer has been parsed and displayed, but | 2162 These hooks are run after a buffer has been parsed and displayed, but |
2996 before any inlined images are downloaded and converted. | 2163 before any inlined images are downloaded and converted. |
2997 @item w3-source-file-hook | 2164 @item w3-source-file-hooks |
2998 These hooks are run after displaying a document's source. | 2165 These hooks are run after displaying a document's source |
2999 @end table | 2166 @end table |
3000 | 2167 |
3001 @node Other Variables, , Hooks, Advanced Features | 2168 @node Other Variables, , Hooks, Advanced Features |
3002 @section Miscellaneous variables | 2169 @section Miscellaneous variables |
3003 | 2170 There are lots of variables that control the real nitty-gritty of Emacs-W3 |
3004 There are lots of variables that control the real nitty-gritty of Emacs/W3 | |
3005 that the beginning user probably shouldn't mess with. Here they are. | 2171 that the beginning user probably shouldn't mess with. Here they are. |
3006 | 2172 |
3007 @table @code | 2173 @table @code |
3008 @item url-bad-port-list | 2174 @item url-bad-port-list |
3009 @vindex url-bad-port-list | 2175 @vindex url-bad-port-list |
3010 List of ports to warn the user about connecting to. Defaults to just | 2176 List of ports to warn the user about connecting to. Defaults to just |
3011 the mail and @sc{nntp} ports so a malicious @sc{html} author cannot spoof mail or | 2177 the mail and NNTP ports so a malicious HTML author cannot spoof mail or |
3012 news to other people. | 2178 news to other people. |
3013 @item url-confirmation-func | 2179 @item url-confirmation-func |
3014 @vindex url-confirmation-func | 2180 @vindex url-confirmation-func |
3015 What function to use for asking yes or no functions. Possible values | 2181 What function to use for asking yes or no functions. Possible values |
3016 are @code{'yes-or-no-p} or @code{'y-or-n-p}, or any function that takes | 2182 are @code{'yes-or-no-p} or @code{'y-or-n-p}, or any function that takes |
3018 answer is gotten. Defaults to @code{'yes-or-no-p}. | 2184 answer is gotten. Defaults to @code{'yes-or-no-p}. |
3019 @item w3-default-action | 2185 @item w3-default-action |
3020 @vindex w3-default-action | 2186 @vindex w3-default-action |
3021 A lisp symbol specifying what action to take for files with extensions | 2187 A lisp symbol specifying what action to take for files with extensions |
3022 that are not in the @code{mm-mime-extensions} assoc list. This is | 2188 that are not in the @code{mm-mime-extensions} assoc list. This is |
3023 useful in case Emacs/W3 ever run across files with weird extensions | 2189 useful in case Emacs-W3 ever run across files with weird extensions |
3024 (.foo, .README, .READMEFIRST, etc.). In most circumstances, this should | 2190 (.foo, .README, .READMEFIRST, etc.). In most circumstances, this should |
3025 not be required anymore. | 2191 not be required anymore. |
3026 | 2192 |
3027 Possible values: any lisp symbol. Should be a function that takes no | 2193 Possible values: any lisp symbol. Should be a function that takes no |
3028 arguments. The return value does not matter, it is ignored. Some examples | 2194 arguments. The return value does not matter, it is ignored. Some examples |
3053 @item w3-reuse-buffers | 2219 @item w3-reuse-buffers |
3054 @vindex w3-reuse-buffers | 2220 @vindex w3-reuse-buffers |
3055 Determines what happens when @code{w3-fetch} is called on a document | 2221 Determines what happens when @code{w3-fetch} is called on a document |
3056 that has already been loaded into another buffer. Possible values are: | 2222 that has already been loaded into another buffer. Possible values are: |
3057 @code{nil}, @code{yes}, and @code{no}. @code{nil} will ask the user if | 2223 @code{nil}, @code{yes}, and @code{no}. @code{nil} will ask the user if |
3058 Emacs/W3 should reuse the buffer (this is the default value). A value of | 2224 Emacs-W3 should reuse the buffer (this is the default value). A value of |
3059 @code{yes} means assume the user wants to always reuse the buffer. A | 2225 @code{yes} means assume the user wants to always reuse the buffer. A |
3060 value of @code{no} means assume the user always wants to re-fetch the | 2226 value of @code{no} means assume the user always wants to re-fetch the |
3061 document. | 2227 document. |
3062 @item w3-show-headers | 2228 @item w3-show-headers |
3063 @vindex w3-show-headers | 2229 @vindex w3-show-headers |
3064 This is a list of @sc{http}/1.0 headers to show at the end of a buffer. All | 2230 This is a list of HTTP/1.0 headers to show at the end of a buffer. All |
3065 the headers should be in lowercase. They are inserted at the end of the | 2231 the headers should be in lowercase. They are inserted at the end of the |
3066 buffer in a <UL> list. Alternatively, if this is simply @code{t}, then | 2232 buffer in a <UL> list. Alternatively, if this is simply @code{t}, then |
3067 all the @sc{http}/1.0 headers are shown. The default value is | 2233 all the HTTP/1.0 headers are shown. The default value is |
3068 @code{nil}. | 2234 @code{nil}. |
3069 @item w3-show-status, url-show-status | 2235 @item w3-show-status, url-show-status |
3070 @vindex url-show-status | 2236 @vindex url-show-status |
3071 @vindex w3-show-status | 2237 @vindex w3-show-status |
3072 Whether to show progress messages in the minibuffer. | 2238 Whether to show progress messages in the minibuffer. |
3095 binary, x-compress, x-hqx, and quoted-printable. | 2261 binary, x-compress, x-hqx, and quoted-printable. |
3096 @item url-uncompressor-alist | 2262 @item url-uncompressor-alist |
3097 @vindex url-uncompressor-alist | 2263 @vindex url-uncompressor-alist |
3098 An assoc list of file extensions and the appropriate uncompression | 2264 An assoc list of file extensions and the appropriate uncompression |
3099 programs for each. This is used to build the Accept-encoding header for | 2265 programs for each. This is used to build the Accept-encoding header for |
3100 @sc{http}/1.0 requests. | 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. | |
3101 @end table | 2271 @end table |
3102 | 2272 |
3103 @node More Help, Future Directions, Advanced Features, Top | 2273 @node More Help, Future Directions, , Top |
3104 @chapter More Help | 2274 @chapter More Help |
3105 @cindex Relevant Newsgroups | 2275 @cindex Relevant Newsgroups |
3106 @cindex Newsgroups | 2276 @cindex Newsgroups |
3107 @cindex Support | 2277 @cindex Support |
3108 For more help on Emacs/W3, please send me mail | 2278 For more help on Emacs-W3, please send me mail |
3109 (@i{wmperry@@cs.indiana.edu}). Several discussion lists have also been | 2279 (@i{wmperry@@cs.indiana.edu}). Several discussion lists have also been |
3110 created for Emacs/W3. To subscribe, send mail to | 2280 created for Emacs-W3. To subscribe, send mail to |
3111 @i{majordomo@@indiana.edu}, with the body of the message 'subscribe | 2281 @i{majordomo@@indiana.edu}, with the body of the message 'subscribe |
3112 @var{listname} @var{<email addres>}'. All other mail should go to | 2282 @var{listname} @var{<email addres>}'. All other mail should go to |
3113 @i{<listname>@@indiana.edu}. | 2283 @i{<listname>@@indiana.edu}. |
3114 | 2284 |
3115 | 2285 |
3116 @itemize @bullet | 2286 @itemize @bullet |
3117 @item | 2287 @item |
3118 w3-announce -- this list is for anyone interested in Emacs/W3, and | 2288 w3-announce -- this list is for anyone interested in Emacs-W3, and |
3119 should in general only be used by me. The gnu.emacs.sources newsgroup | 2289 should in general only be used by me. The gnu.emacs.sources newsgroup |
3120 and a few other mailing lists are included on this. Please only use | 2290 and a few other mailing lists are included on this. Please only use |
3121 this list for major package releases related to Emacs/W3. | 2291 this list for major package releases related to Emacs-W3. |
3122 (@i{www-announce@@w3.org} is included on this list). | 2292 (@i{www-announce@@w3.org} is included on this list). |
3123 @item | 2293 @item |
3124 w3-beta -- this list is for beta testers of Emacs/W3. These brave souls test | 2294 w3-beta -- this list is for beta testers of Emacs-W3. These brave souls test |
3125 out not-quite stable code. | 2295 out not-quite stable code. |
3126 @item | 2296 @item |
3127 w3-dev -- a list consisting of myself and a few other people who are | 2297 w3-dev -- a list consisting of myself and a few other people who are |
3128 interested in the internals of Emacs/W3, and doing active development work. | 2298 interested in the internals of Emacs-W3, and doing active development work. |
3129 Pretty dead right now, but I hope it will grow. | 2299 Pretty dead right now, but I hope it will grow. |
3130 @end itemize | 2300 @end itemize |
3131 | 2301 |
3132 For more help on the World Wide Web in general, please refer to the | 2302 For more help on the World Wide Web in general, please refer to the |
3133 comp.infosystems.www.* newsgroups. There are also several discussion | 2303 comp.infosystems.www.* newsgroups. There are also several discussion |
3155 for the better). This is a list of the things that are being worked on | 2325 for the better). This is a list of the things that are being worked on |
3156 right now. | 2326 right now. |
3157 | 2327 |
3158 :: WORK :: Revamp the todo list | 2328 :: WORK :: Revamp the todo list |
3159 | 2329 |
3160 @node Reporting Bugs, Dealing with Firewalls, Future Directions, Top | 2330 @node Reporting Bugs, Installing SSL, Future Directions, Top |
3161 @appendix Reporting Bugs | 2331 @appendix Reporting Bugs |
3162 @cindex Reporting Bugs | 2332 @cindex Reporting Bugs |
3163 @cindex Bugs | 2333 @cindex Bugs |
3164 @cindex Contacting the author | 2334 @cindex Contacting the author |
3165 | 2335 |
3166 If any bugs are discovered in Emacs/W3, please report them to the | 2336 :: WORK :: Reporting bugs needs work. |
3167 mailing list @t{w3-beta@@indiana.edu} - this is where the brave souls | 2337 |
3168 who beta test the latest versions of Emacs/W3 reside, and are generally | 2338 @node Installing SSL, Using PGP/PEM, Reporting Bugs, Top |
3169 very responsive to bug reports. | |
3170 | |
3171 @kindex w | |
3172 Please make sure to use the bug submission feature of Emacs/W3, so that | |
3173 all relevant information will be sent along with your bug report. By | |
3174 default this is bound to the `@key{w}' key when in an Emacs/W3 buffer, | |
3175 or you can use @key{M-x w3-submit-bug} from anywhere within Emacs. | |
3176 | |
3177 For problems that are causing emacs to signal and error, please send a | |
3178 backtrace. You can get a backtrace by @kbd{M-x setvariable RET | |
3179 debug-on-error RET t RET}, and then reproduce the error. | |
3180 | |
3181 If the problem is visual, please capture a copy of the output and mail | |
3182 it along with the bug report (preferably as a MIME attachment, but | |
3183 anything will do). You can use the @code{xwd} program under X-windows | |
3184 for this, or @key{Alt-PrintScreen} under Windows 95/NT. Sorry, but I | |
3185 don't remember what the magic incarnation is for doing a screen dump | |
3186 under NeXTstep or OS/2. | |
3187 | |
3188 If the problem is actually causing Emacs to crash, then you will need to | |
3189 also mail the maintainers of the various Emacs distributions with the | |
3190 bug. Please use the @t{gnu.emacs.bug} newgroup for reporting bugs with | |
3191 GNU Emacs 19, and @t{comp.emacs.xemacs} for reporting bugs with XEmacs | |
3192 19 or XEmacs 20. I am actively involved with the beta testing of the | |
3193 latest versions of both branches of Emacs, and if I can reproduce the | |
3194 problem, I will do my best to see it gets fixed in the next release. | |
3195 | |
3196 It is also important to always maintain as much context as possible in | |
3197 your responses. I get so much email from my various Emacs-activities | |
3198 and work, that I cannot remember everything. If you send a bug report, | |
3199 and I send you a reply, and you reply with 'no that didn't work', then | |
3200 odds are I will have no clue what didn't work, much less what that was | |
3201 trying to fix in the first place. It will be much quicker and less | |
3202 painful if I don't have to waste a round-trip email exchange saying | |
3203 'what are you talking about'. | |
3204 | |
3205 @node Dealing with Firewalls, Proxy Gateways, Reporting Bugs, Top | |
3206 @appendix Dealing with Firewalls | |
3207 By default, Emacs can support standard @sc{tcp}/@sc{ip} network | |
3208 connections on almost all the platforms it runs on (Unix, @sc{vms}, | |
3209 Windows, etc). However, there are several situations where it is not | |
3210 sufficient. | |
3211 | |
3212 @table @b | |
3213 @cindex Firewalls | |
3214 @item Firewalls | |
3215 It is becoming more and more common to be behind a firewall or some | |
3216 other system that restricts your outbound network activity, especially | |
3217 if you are like me and away from the wonderful world of academia. | |
3218 Emacs/W3 has several different methods to get around firewalls (not to | |
3219 worry though - none of them should get you in trouble with the local | |
3220 @sc{mis} department.) | |
3221 | |
3222 @item Emacs cannot resolve hostnames. | |
3223 @cindex Faulty hostname resolvers | |
3224 @cindex Broken SunOS libc | |
3225 @cindex Hostname resolution | |
3226 This happens quite often on SunOS workstations and some ULTRIX machines. | |
3227 Some C libraries do not include the hostname resolver routines in their | |
3228 static libraries. If Emacs was linked statically, and was not linked | |
3229 with the resolver libraries, it wil not be able to get to any machines | |
3230 off the local network. This is characterized by being able to reach | |
3231 someplace with a raw ip number, but not its hostname | |
3232 (@url{http://129.79.254.191/} works, but | |
3233 @url{http://www.cs.indiana.edu/} doesn't). | |
3234 | |
3235 The best solution for this problem is to recompile Emacs, making sure to | |
3236 either link dynamically (if available on your operating system), or | |
3237 include the @file{-lresolv}. | |
3238 | |
3239 @cindex url-gateway-broken-resolution | |
3240 If you do not have the disk space or the appropriate permissions to | |
3241 recompile Emacs, another alternative is using the @file{nslookup} | |
3242 program to do hostname resolution. To turn this on, set the variable | |
3243 @code{url-gateway-broken-resolution} in your @file{~/.emacs} file. This | |
3244 runs the program specified by @code{url-gateway-nslookup-program} (by | |
3245 default "@code{nslookup}" to do hostname resolution. This program should | |
3246 expect a single argument on the command line - the hostname to resolve, | |
3247 and should produce output similar to the standard Unix @file{nslookup} | |
3248 program: | |
3249 | |
3250 @example | |
3251 Name: www.cs.indiana.ed | |
3252 Address: 129.79.254.191 | |
3253 @end example | |
3254 | |
3255 @cindex @sc{term} | |
3256 @item Using @sc{term} (or @sc{term}-like) Networking Software | |
3257 @sc{term} @footnote{@sc{term} is a user-level protocol for emulating | |
3258 @sc{ip} over a serial line. More information is available at | |
3259 @url{ftp://sunsite.unc.edu/pub/Linux/apps/comm/term}} for slip-like | |
3260 access to the internet. | |
3261 | |
3262 @sc{note}: XEmacs and Emacs 19.22 or later have patches to enable native | |
3263 @sc{term} networking. To enable it, @code{#define TERM} in the | |
3264 appropriate s/*.h file for the operating system, then change the | |
3265 @code{SYSTEM_LIBS} definition to include the @file{termnet} library that | |
3266 comes with the latest versions of @sc{term}. | |
3267 | |
3268 If you run into any problems with the native @sc{term} networking | |
3269 support in Emacs or XEmacs, please let @t{wmperry@@cs.indiana.edu} know, | |
3270 as he is responsible for the original support. | |
3271 @end table | |
3272 | |
3273 @vindex url-gateway-local-host-regexp | |
3274 Emacs/W3 has support for using the gateway mechanism for certain | |
3275 domains, and directly connecting to others. The variable | |
3276 @code{url-gateway-local-host-regexp} controls this behaviour. This is a | |
3277 regular expression @footnote{Please see the full Emacs distribution for | |
3278 a description of regular expressions} that matches local hosts that do | |
3279 not require the use of a gateway. If @code{nil}, then all connections | |
3280 are made through the gateway. | |
3281 | |
3282 @vindex url-gateway-method | |
3283 Emacs/W3 supports several methods of getting around gateways. The | |
3284 variable @code{url-gateway-method} controls which of these methods is | |
3285 used. This variable can have several values (use these as symbol names, | |
3286 not strings), ie: @samp{(setq url-gateway-method 'telnet)}. Possible | |
3287 values are: | |
3288 | |
3289 @table @dfn | |
3290 @item telnet | |
3291 Use this method if you must first telnet and log into a gateway host, | |
3292 and then run telnet from that host to connect to outside machines. | |
3293 | |
3294 :: WORK :: document telnet gw variables | |
3295 This section needs more information, specifically documenting the | |
3296 following variables. For now, please do @key{C-h v} on the variable for | |
3297 more information. | |
3298 | |
3299 @table @code | |
3300 @item url-gateway-telnet-host | |
3301 @item url-gateway-telnet-parameters | |
3302 @item url-gateway-telnet-password-prompt | |
3303 @item url-gateway-telnet-puser-name | |
3304 @item url-gateway-prompt-pattern | |
3305 @end table | |
3306 | |
3307 @item rlogin | |
3308 This method is identical to the @code{telnet} method, but uses | |
3309 @file{rlogin} to log into the remote machine without having to send the | |
3310 username and password over the wire every time. | |
3311 | |
3312 :: WORK :: document rlogin gw variables | |
3313 This section needs more information, specifically documenting the | |
3314 following variables. For now, please do @key{C-h v} on the variable for | |
3315 more information. | |
3316 | |
3317 @table @code | |
3318 @item url-gateway-rlogin-host | |
3319 @item url-gateway-rlogin-parameters | |
3320 @item url-gateway-rlogin-user-name | |
3321 @item url-gateway-prompt-pattern | |
3322 @end table | |
3323 | |
3324 @item tcp | |
3325 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very small | |
3326 application that you can run in a subprocess to do the network | |
3327 connections. | |
3328 | |
3329 @item @sc{socks} | |
3330 Use if the firewall has a @sc{socks} gateway running on it. | |
3331 | |
3332 :: WORK :: document socks variables | |
3333 This section needs more information, specifically documenting the | |
3334 following variables. For now, please do @key{C-h v} on the variable for | |
3335 more information. | |
3336 | |
3337 @table @code | |
3338 @item socks-host | |
3339 @item socks-password | |
3340 @item socks-username | |
3341 @item socks-port | |
3342 @item socks-timeout | |
3343 @end table | |
3344 | |
3345 @c @item ssl | |
3346 @c This probably shouldn't be documented | |
3347 | |
3348 @item native | |
3349 This means that Emacs/W3 should use the builtin networking code of | |
3350 Emacs. This should be used only if there is no firewall, or the Emacs | |
3351 source has already been hacked to get around the firewall. | |
3352 @end table | |
3353 | |
3354 Emacs/W3 should now be able to get outside the local network. If none | |
3355 of this makes sense, its probably my fault. Please check with the | |
3356 network administrators to see if they have a program that does most of | |
3357 this already, since somebody somewhere at the company has probably been | |
3358 through something similar to this before, and would be much more | |
3359 helpful/knowledgeable about the local setup than I would be. But feel | |
3360 free to mail me as a last resort. | |
3361 | |
3362 @node Proxy Gateways, Installing SSL, Dealing with Firewalls, Top | |
3363 @appendix Proxy Gateways | |
3364 @vindex url-proxy-services | |
3365 @cindex Proxy Servers | |
3366 @cindex Proxies | |
3367 @cindex Proxies, environment variables | |
3368 @cindex HTTP Proxy | |
3369 | |
3370 In late January 1993, Kevin Altis and Lou Montulli proposed and | |
3371 implemented a new proxy service. This service requires the use of | |
3372 environment variables to specify a gateway server/port # to send | |
3373 protocol requests to. Each protocol (@sc{http}, @sc{wais}, gopher, | |
3374 @sc{ftp}, etc.) can have a different gateway server. The environment | |
3375 variables are @code{PROTOCOL}_proxy, where @code{PROTOCOL} is one of the | |
3376 supported network protocols (gopher, file, @sc{http}, @sc{ftp}, etc.) | |
3377 | |
3378 @cindex No Proxy | |
3379 @cindex Proxies, exclusion lists | |
3380 @vindex NO_PROXY | |
3381 For companies with internal intranets, it will usually be helpful to | |
3382 define a list of hosts that should be contacted directly, @b{not} sent | |
3383 through the proxy. The @code{NO_PROXY} environment variable controls | |
3384 what hosts are able to be contacted directly. This should be a comma | |
3385 separated list of hostnames, domain names, or a mixture of both. | |
3386 Asterisks can be used as a wildcard. For example: | |
3387 | |
3388 @example | |
3389 NO_PROXY=*.aventail.com,home.com,*.seanet.com | |
3390 @end example | |
3391 | |
3392 tells Emacs/W3 to contact all machines in the @b{aventail.com} and | |
3393 @b{seanet.com} domains directly, as well as the machine named | |
3394 @b{home.com}. | |
3395 | |
3396 @vindex url-proxy-services | |
3397 @cindex Proxies, setting from lisp | |
3398 For those adventurous souls who enjoy writing regular expressions, all | |
3399 the proxy settings can be manipulated from Emacs-Lisp. The variable | |
3400 @code{url-proxy-services} controls this. This is an assoc list, keyed | |
3401 on the protocol type (@sc{http}, gopher, etc) in all lowercase. The | |
3402 @code{cdr} of each entry should be the fully-specified @sc{url} of the proxy | |
3403 server to contact, or, in the case of the special "no_proxy" entry, a | |
3404 regular expression that matches any hostnames that should be contacted | |
3405 directly. | |
3406 | |
3407 @example | |
3408 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/") | |
3409 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com"))) | |
3410 @end example | |
3411 | |
3412 @node Installing SSL, Mailcap Files, Proxy Gateways, Top | |
3413 @appendix Installing SSL | 2339 @appendix Installing SSL |
3414 @cindex HTTP/1.0 Authentication | 2340 @cindex HTTP/1.0 Authentication |
3415 @cindex Secure Sockets Layer | 2341 @cindex Secure Sockets Layer |
3416 @cindex SSL | 2342 @cindex SSL |
3417 @cindex Gag Puke Retch | 2343 @cindex Gag Puke Retch |
3418 @cindex Exportability | 2344 @cindex Exportability |
3419 @cindex Export Restrictions | 2345 @cindex Export Restrictions |
3420 In order to use SSL in Emacs/W3, an implementation of SSL is necessary. | 2346 In order to use SSL in Emacs-W3, an implementation of SSL is necessary. |
3421 Emacs/W3 is configued to work out of the box with SSLeay 0.6.6 or later. | 2347 These are the implementations that I am aware of: |
3422 For best results, you should apply a patch that makes the SSLeay client | |
3423 much quieter about what it reports. | |
3424 | |
3425 You can download SSLeay from | |
3426 @url{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/} | |
3427 | |
3428 The following variables control how the external program is invoked. | |
3429 | 2348 |
3430 @table @code | 2349 @table @code |
3431 @item ssl-program-name | 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 | |
3432 @vindex ssl-program-name | 2361 @vindex ssl-program-name |
3433 The name of the program to run, as a string. | 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. | |
3434 | 2439 |
3435 @example | 2440 @example |
3436 (setq ssl-program-name "s_client") | 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. | |
3437 @end example | 2471 @end example |
3438 | 2472 |
3439 @item ssl-program-arguments | 2473 @cindex Mailcrypt |
3440 @vindex ssl-program-arguments | 2474 Emacs-W3 uses the excellent @i{mailcrypt}@footnote{Available from |
3441 This should be used if your SSL program needs command line switches to | 2475 http://www.cs.indiana.edu/LCD/cover.html?mailcrypt} package written by |
3442 specify any behaviour (certificate file locations, etc). This is a list | 2476 Jin S Choi (@i{jsc@@mit.edu}). This package takes care of calling ripem |
3443 of strings and symbols. | 2477 and/or pgp with the correct arguments. Please see the documentation at |
3444 | 2478 the top of mailcrypt.el for instructions on using mailcrypt. All bug |
3445 The special symbols 'host and 'port may be used in the list of arguments | 2479 reports about mailcrypt should go to Jin S Choi, but bugs about how I |
3446 and will be replaced with the hostname and service/port that will be | 2480 use it in Emacs-W3 should of course be directed to me. |
3447 connected to. | 2481 |
3448 | 2482 @node Mailcap Files, General Index, Using PGP/PEM, Top |
3449 @example | |
3450 (setq ssl-program-arguments '("-host" host "-port" service "-verify" "4" | |
3451 "-CApath /usr/local/ssl/certs")) | |
3452 @end example | |
3453 @end table | |
3454 | |
3455 @node Mailcap Files, Down with DoubleClick, Installing SSL, Top | |
3456 @appendix Mailcap Files | 2483 @appendix Mailcap Files |
3457 NCSA Mosaic and almost all other WWW browsers rely on a separate file | 2484 NCSA Mosaic and almost all other WWW browsers rely on a separate file |
3458 for mapping MIME types to external viewing programs. This takes some of | 2485 for mapping MIME types to external viewing programs. This takes some of |
3459 the burden off of browser developers, so each browser does not have to | 2486 the burden off of browser developers, so each browser does not have to |
3460 support all image formats, or postscript, etc. Instead of having the | 2487 support all image formats, or postscript, etc. Instead of having the |
3461 users of Emacs/W3 duplicate this in lisp, this file can be parsed using | 2488 users of Emacs-W3 duplicate this in lisp, this file can be parsed using |
3462 the @code{mm-parse-mailcaps} function. This function is called each | 2489 the @code{mm-parse-mailcaps} function. This function is called each |
3463 time Emacs/W3 is loaded. It tries to locate mimetype files in several | 2490 time Emacs-W3 is loaded. It tries to locate mimetype files in several |
3464 places. If the environment variable @code{MAILCAPS} is nonempty, then | 2491 places. If the environment variable @code{MAILCAPS} is nonempty, then |
3465 this is assumed to specify a UNIX-like path of mimetype files (this is a | 2492 this is assumed to specify a UNIX-like path of mimetype files (this is a |
3466 colon separated string of pathnames). If the @code{MAILCAPS} | 2493 colon separated string of pathnames). If the @code{MAILCAPS} |
3467 environment variable is empty, then Emacs/W3 looks for these | 2494 environment variable is empty, then Emacs-W3 looks for these |
3468 files: | 2495 files: |
3469 | 2496 |
3470 @enumerate | 2497 @enumerate |
3471 @item | 2498 @item |
3472 @file{~/.mailcap} | 2499 @file{~/.mailcap} |
3584 simply ignore all such unrecognized fields to permit such extensions, | 2611 simply ignore all such unrecognized fields to permit such extensions, |
3585 some of which might be standardized in a future version of this | 2612 some of which might be standardized in a future version of this |
3586 document. | 2613 document. |
3587 @end itemize | 2614 @end itemize |
3588 | 2615 |
3589 @node Down with DoubleClick, General Index, Mailcap Files, Top | 2616 @node General Index, Key Index, Mailcap Files, Top |
3590 @appendix Down with DoubleClick | |
3591 :: WORK :: Document why doubleclick is evil | |
3592 :: WORK :: Document how you can never see another ad from them again | |
3593 | |
3594 @node General Index, Key Index, Down with DoubleClick, Top | |
3595 @appendix General Index | 2617 @appendix General Index |
3596 @printindex fn | 2618 @printindex fn |
3597 @node Key Index, , General Index, Top | 2619 @node Key Index, , General Index, Top |
3598 @appendix Key Index | 2620 @appendix Key Index |
3599 @printindex ky | 2621 @printindex ky |
3600 @contents | 2622 @contents |
3601 @bye | 2623 @bye |