comparison man/w3.texi @ 80:1ce6082ce73f r20-0b90

Import from CVS: tag r20-0b90
author cvs
date Mon, 13 Aug 2007 09:06:37 +0200
parents 131b0175ea99
children 6a378aca36af
comparison
equal deleted inserted replaced
79:5b0a5bbffab6 80:1ce6082ce73f
1 \input texinfo 1 \input texinfo
2 @setfilename ../info/w3.info 2 @setfilename w3.info
3 @settitle Emacs-W3 User's Manual 3 @settitle Emacs-W3 User's Manual
4 @iftex 4 @iftex
5 @finalout 5 @finalout
6 @end iftex 6 @end iftex
7 @c @setchapternewpage odd 7 @c @setchapternewpage odd
36 @center @titlefont{Emacs-W3} 36 @center @titlefont{Emacs-W3}
37 @center @titlefont{User's Manual} 37 @center @titlefont{User's Manual}
38 @sp 4 38 @sp 4
39 @center Third Edition, Emacs-W3 Version 3.0 39 @center Third Edition, Emacs-W3 Version 3.0
40 @sp 1 40 @sp 1
41 @center August 1996 41 @center December 1996
42 @sp 5 42 @sp 5
43 @center William M. Perry 43 @center William M. Perry
44 @center @i{wmperry@@cs.indiana.edu} 44 @center @i{wmperry@@cs.indiana.edu}
45 @page 45 @page
46 @vskip 0pt plus 1filll 46 @vskip 0pt plus 1filll
59 which runs as a subsystem under Emacs. The manual is divided into the 59 which runs as a subsystem under Emacs. The manual is divided into the
60 following chapters. 60 following chapters.
61 61
62 @menu 62 @menu
63 * Introduction:: Overview of Emacs-W3. 63 * Introduction:: Overview of Emacs-W3.
64 * Starting Up:: What happens when you start Emacs-W3 64 * Getting Started:: Getting up and running with Emacs-W3
65 * Basic Usage:: Basic movement and usage of Emacs-W3. 65 * Basic Usage:: Basic movement and usage of Emacs-W3.
66 * Compatibility:: Explanation of compatibility with 66 * Compatibility:: Explanation of compatibility with
67 other web browsers. 67 other web browsers.
68 * Controlling Formatting:: How to control HTML formatting 68 * Controlling Formatting:: How to control HTML formatting
69 * MIME Support:: Support for MIME 69 * MIME Support:: Support for MIME
86 * General Index:: General Index 86 * General Index:: General Index
87 * Key Index:: Menus of command keys and their references 87 * Key Index:: Menus of command keys and their references
88 @end menu 88 @end menu
89 @end ifinfo 89 @end ifinfo
90 90
91 @node Introduction, Starting Up, Top, Top 91 @node Introduction, Getting Started, Top, Top
92 @chapter Introduction 92 @chapter Introduction
93 @cindex World Wide Web 93 @cindex World Wide Web
94 Emacs-W3 is an Emacs subsystem that allows the user to browse the wonderful 94
95 World Wide Web (WWW). 95 :: WORK :: Basic info on what Emacs-W3 is, including copyrights, etc.
96 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 97 @ifinfo
123 @center ---------------- 98 Here is some more specific information about what languages and
124 @center CLIENT SIDE VIEW 99 protocols Emacs-W3 supports.
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 100 @menu
180 * Markup Languages Supported:: The different markup languages that 101 * Markup Languages Supported:: Markup languages supported by Emacs-W3
181 Emacs-W3 understands natively. 102 * Stylesheets:: Stylesheet languages supported by Emacs-W3
182 * Supported Protocols:: The different network protocols that 103 * Supported Protocols:: Network protocols supported by Emacs-W3
183 Emacs-W3 speaks to.
184 @end menu 104 @end menu
185 @end ifinfo 105 @end ifinfo
186 @node Markup Languages Supported, Supported Protocols, Introduction, Introduction 106 @node Markup Languages Supported, Stylesheets, Introduction, Introduction
187 @chapter Supported Markup Languages 107 @chapter Supported Markup Languages
188 Several different markup languages, and various extensions to those 108 Several different markup languages, and various extensions to those
189 languages, are supported by Emacs-W3. 109 languages, are supported by Emacs-W3.
190 @ifinfo 110 @ifinfo
191 @center ---------- 111 @center ----------
193 @center ---------- 113 @center ----------
194 @end ifinfo 114 @end ifinfo
195 @iftex 115 @iftex
196 @section HTML 2.0 116 @section HTML 2.0
197 @end iftex 117 @end iftex
198 The Hypertext Markup Language, or HTML, is composed of a set of elements 118 @cindex HTML 2.0
199 that define a document and guide its display. An HTML element may 119
200 include a name, some attributes and some text or hypertext, and appears 120 :: WORK :: Reference to the HTML 2.0 RFC
201 in an HTML document as <tag_name>text</tag_name>, <tag_name 121 :: WORK :: Basic explanation of HTML, tag structure, etc.
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 122
220 @ifinfo 123 @ifinfo
221 @center ---------- 124 @center ----------
222 @center HTML 3.0 125 @center HTML 3.2
223 @center ---------- 126 @center ----------
224 @end ifinfo 127 @end ifinfo
225 @iftex 128 @iftex
226 @section HTML 3.2 129 @section HTML 3.2
227 @end iftex 130 @end iftex
228 @cindex HTML 3.2 131 @cindex HTML 3.2
229 The HTML 3.2 language is an extension of HTML, with a large degree of 132 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 133 backward compatibility with HTML 2.0. This basically documents current
231 practice as of January, 1996. 134 practice as of January, 1996.
232 135
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 136 @ifinfo
256 @center ---------- 137 @center ----------
257 @center SGML Features 138 @center SGML Features
258 @center ---------- 139 @center ----------
259 @end ifinfo 140 @end ifinfo
261 @section SGML Features 142 @section SGML Features
262 @end iftex 143 @end iftex
263 @cindex SGML Features 144 @cindex SGML Features
264 @cindex Entity Definitions 145 @cindex Entity Definitions
265 @cindex Marked Sections 146 @cindex Marked Sections
147
266 :: WORK :: Document marked sections, SGML features 148 :: WORK :: Document marked sections, SGML features
149
267 @ifinfo 150 @ifinfo
268 @center ---------- 151 @center ----------
269 @center Extras 152 @center Extras
270 @center ---------- 153 @center ----------
271 @end ifinfo 154 @end ifinfo
274 @end iftex 157 @end iftex
275 @cindex Easter Eggs 158 @cindex Easter Eggs
276 @cindex Fluff 159 @cindex Fluff
277 @cindex Pomp & Circumstance 160 @cindex Pomp & Circumstance
278 There are several different markup elements that are not officially part 161 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 162 of HTML or HTML 3.2 that Emacs-W3 supports. These are either items that
280 were dropped from HTML 3.0 after I had implemented them, or experimental 163 were dropped from HTML 3.@var{x} after I had implemented them, things I
281 parts of HTML that should not be counted as "official" or long 164 find just completely hilarious, or experimental parts of HTML that
282 lived. 165 should not be counted as "official" or long lived.
283 @itemize @bullet 166 @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 167 @item
302 FLAME support. For truly interesting dynamic documents. This is 168 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 169 replaced with a random quote from Mr. Angry (see @kbd{M-x flame} for a
304 sample). 170 sample).
305 @item 171 @item
331 Causes Marc Andreesen to magically appear and grant an interview (wanted 197 Causes Marc Andreesen to magically appear and grant an interview (wanted
332 or not). Please use this tag sparingly. 198 or not). Please use this tag sparingly.
333 @item <peek>....</peek> 199 @item <peek>....</peek>
334 @item <poke>...</poke> 200 @item <poke>...</poke>
335 Need more control over screen layout in HTML? Well, here ya go. 201 Need more control over screen layout in HTML? Well, here ya go.
336 202 n
337 Actually, <peek> could almost be considered useful. The VARIABLE 203 Actually, <peek> could almost be considered useful. The VARIABLE
338 attribute can be used to insert the value of an emacs variable into the 204 attribute can be used to insert the value of an emacs variable into the
339 current document. Things like 'Welcome to my page, <peek 205 current document. Things like 'Welcome to my page, <peek
340 variable=user-mail-address>' can be useful in freaking people 206 variable=user-mail-address>' can be useful in spreading fear,
341 out. 207 uncertainty, and doubt among users.
342 @item <yogsothoth> 208 @item <yogsothoth>
343 @cindex Gates Bill 209 @cindex Gates Bill
344 @cindex Yogsothoth 210 @cindex Yogsothoth
345 Summons the elder gods to suck away your immortal soul. Or Bill Gates, 211 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 212 if the elder gods are busy. Unpredictable (but amusing) results occur
348 214
349 @item <blink>...</blink> 215 @item <blink>...</blink>
350 Causes the enclosed text to .... ooops that one made it in. 216 Causes the enclosed text to .... ooops that one made it in.
351 @end table 217 @end table
352 @end itemize 218 @end itemize
353 @node Supported Protocols, , Markup Languages Supported, Introduction 219
220 @node Stylesheets, Supported Protocols, Markup Languages Supported,Introduction
221 @chapter Stylesheets
222 @cindex Stylesheets
223 @cindex Cascading Style Sheets
224 @cindex CSS
225 @cindex DSSSL
226 :: WORK :: Document CSS support
227 :: WORK :: Document DSSSL support
228
229 @node Supported Protocols, , Stylesheets, Introduction
354 @chapter Supported Protocols 230 @chapter Supported Protocols
355 @cindex Network Protocols 231 @cindex Network Protocols
356 @cindex Protocols Supported 232 @cindex Protocols Supported
357 @cindex Supported Protocols 233 @cindex Supported Protocols
358 Emacs-W3 supports the following protocols 234 Emacs-W3 supports the following protocols
359 @table @b 235 @table @b
360 @item Usenet News 236 @item Usenet News
361 Can either display an entire newsgroup or specific articles by 237 Can either display an entire newsgroup or specific articles by
362 Message-ID: header. This supports a unix-style .newsrc file, so the 238 Message-ID: header. Instead of rewriting a newsreader, this integrates
363 user does not see articles they have read using another newsreader, but 239 with the Gnus newsreader. It requires at least Gnus 5.0, but it is
364 due to how news URLs work, the .newsrc file cannot be updated 240 always safest to use the latest version. Gnus supports some very
365 reliably. 241 advanced features, including virtual newsgroups, mail and news
242 integration, and reading news from multiple servers. @inforef{Gnus,
243 Top,gnus}, for more info.
366 244
367 To be more in line with the other URL schemes, the hostname and port of 245 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 246 an NNTP server can be specified. URLs of the form
369 news://hostname:port/messageID work, but will not work in most other 247 news://hostname:port/messageID work, but might not work in some other
370 browsers. 248 browsers.
371 249
372 @item HTTP 250 @item HTTP
373 Supports the HTTP/0.9, HTTP/1.0, and HTTP/1.1 protocols. Fully 251 Supports the HTTP/0.9, HTTP/1.0, and parts of the HTTP/1.1 protocols.
374 MIME-compliant with regards to HTTP/1.0.
375 @item Gopher 252 @item Gopher
376 Support for all gopher types, including CSO queries. 253 Support for all gopher types, including CSO queries.
377 @item Gopher+ 254 @item Gopher+
378 Support for Gopher+ retrievals. Support for converting ASK blocks into 255 Support for Gopher+ retrievals. Support for converting ASK blocks into
379 HTML 3.0 FORMS and submitting them back to the server. 256 HTML 3.0 FORMS and submitting them back to the server.
380 @item FTP 257 @item FTP
381 FTP is handled by either ange-ftp or efs. 258 FTP is handled by either ange-ftp or efs.
259 @inforef{Ange-FTP,Top,ange-ftp}, for more information on Ange-FTP, or
260 @inforef{EFS, Top,efs}, for information on EFS.
382 @item Local files 261 @item Local files
383 Local files are handled, and MIME content-types are derived from the 262 Local files are of course handled, and MIME content-types are derived
384 file extensions. 263 from the file extensions.
385 @item Telnet 264 @item Telnet, tn3270, rlogin
386 Telnet is handled by running the Emacs Lisp function @code{telnet}, or 265 Telnet, tn3270, and rogin are handled by running the appropriate program
387 spawning an xterm running telnet. 266 in an emacs buffer, or running an external process.
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 267 @item Mailto
392 Causes a mail message to be started to a specific address. 268 Causes a mail message to be started to a specific address. Supports the
269 Netscape @i{extensions} to specify arbitrary headers on the message.
393 @item mailserver 270 @item mailserver
394 A more powerful version of mailto, which allows the author to specify 271 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 272 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 273 never fully executed without user confirmation, because it is possible
397 to insert insulting or threatening (and possibly illegal) data into the 274 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 275 message. The mail message is displayed, and the user must confirm the
399 send it. 276 message before it is sent.
400 @item X-exec 277 @item X-exec
401 A URL can cause a local executable to be run, and its output interpreted 278 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 279 as if it had come from an HTTP server. This is very useful, but is
403 still an experimental protocol, hence the X- prefix. 280 still an experimental protocol, hence the X- prefix. This URL protocol
281 is deprecated, but might be useful in the future.
282 @item NFS
283 Retrieves information over NFS. This requires that your operating
284 system support auto-mounting of NFS volumes.
285 @item Finger
286 Retrieves information about a user via the 'finger' protocol, as defined
287 in RFC ????? :: WORK ::
288 @item Info
289 Creates a link to an GNU-style info file. @inforef{Info,Top,info}, for more
290 information on the Info format.
404 @item SSL 291 @item SSL
405 SSL requires a set of patches to the Emacs C code and SSLRef 2.0, or an 292 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} 293 external program to run in a subprocess (similar to the @file{tcp.el}
407 package that comes with GNUS. @xref{Installing SSL} 294 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 295 @end table
414 296
415 @node Starting Up, Basic Setup, Introduction, Top 297 @node Getting Started, Getting Emacs, Introduction, Top
416 @comment node-name, next, previous, up 298 @chapter Getting Started
417 @chapter Starting Up 299 @cindex Clueless in Seattle
418 @cindex Starting Up Emacs-W3 300 @cindex Getting Started
419 This section of the manual deals with getting, compiling, and 301 This section of the manual deals with getting, compiling, and
420 configuring @i{Emacs-W3}. 302 configuring @i{Emacs-W3}.
303 :: WORK :: Introduction to 'Getting Started'
304
421 @ifinfo 305 @ifinfo
422 @menu 306 @menu
423 * Basic Setup:: Basic setup that everyone needs to do 307 * Getting Emacs:: Where to get Emacs
424 * Firewalls:: How to set Emacs-W3 up to use a particular 308 * Getting Emacs-W3:: Where to get Emacs-W3
425 firewall setup. 309 * Basic Setup:: Basic setup that most people want to do
310 * Firewalls:: Integrating Emacs-W3 with a firewall setup.
426 * Proxy Gateways:: Using a proxy server 311 * Proxy Gateways:: Using a proxy server
427 @end menu 312 @end menu
428 @end ifinfo 313 @end ifinfo
429 314
430 @node Basic Setup, Firewalls, Starting Up, Starting Up 315 @node Getting Emacs, Getting Emacs-W3, Getting Started, Getting Started
431 @comment node-name, next, previous, up 316 @section Getting Emacs
317 @cindex Getting Emacs
318 @cindex Source code availability
319 :: WORK :: Explanation of Emacs, XEmacs, and where to get both
320
321 @node Getting Emacs-W3, Basic Setup, Getting Emacs, Getting Started
322 @section Getting Emacs-W3
323 @cindex FTP'in the distribution
324 @cindex Source code availability
325 :: WORK :: Explanation of Emacs, XEmacs, and where to get both
326
327 @node Basic Setup, Firewalls, Getting Emacs-W3, Getting Started
432 @section Basic Setup 328 @section Basic Setup
433 There are a few variables that almost all people need to change. 329 For most people, Emacs-W3 will be ready to run straight out of the box.
330 Once the user is more familiar with the web and how it integrates with
331 Emacs, there are a few basic configuration variables that most people
332 will want to personalize.
434 333
435 @table @code 334 @table @code
436 @item w3-default-homepage 335 @item w3-default-homepage
437 @vindex w3-default-homepage 336 @vindex w3-default-homepage
438 The url to open at startup. This defaults to the environment variable 337 The URL to open at startup. This defaults to the environment variable
439 WWW_HOME if it is not set it in the users @file{.emacs} file. If 338 WWW_HOME if it is not set it in the users @file{.emacs} file. If
440 WWW_HOME is undefined, then it defaults to the hypertext documentation 339 WWW_HOME is undefined, then it defaults to the hypertext documentation
441 for Emacs-W3. 340 for Emacs-W3.
442 341
443 @item w3-delay-image-loads 342 @item w3-delay-image-loads
498 @table @b 397 @table @b
499 @item url 398 @item url
500 Displays the URL (ie: @samp{http://www.cs.indiana.edu/}). 399 Displays the URL (ie: @samp{http://www.cs.indiana.edu/}).
501 @item text 400 @item text
502 Displays the text of the link (ie: @samp{A link to Indiana University}). 401 Displays the text of the link (ie: @samp{A link to Indiana University}).
402 @item title
403 Displays the title of the link, if any, otherwise behaves the same as @code{url}.
503 @item nil 404 @item nil
504 Show nothing. 405 Show nothing.
505 @end table 406 @end table
506 @item w3-use-forms-index 407 @item w3-use-forms-index
507 @vindex w3-use-forms-index 408 @vindex w3-use-forms-index
524 string is passed through @code{format}, and should expect four strings: 425 string is passed through @code{format}, and should expect four strings:
525 the title of the window, the program name to execute, and the server and 426 the title of the window, the program name to execute, and the server and
526 port number. The default is for xterm, which is very UNIX and 427 port number. The default is for xterm, which is very UNIX and
527 XWindows-centric. 428 XWindows-centric.
528 @end table 429 @end table
529 @node Firewalls, Proxy Gateways, Basic Setup, Starting Up 430 @node Firewalls, Proxy Gateways, Basic Setup, Getting Started
530 @comment node-name, next, previous, up
531 @section Firewalls 431 @section Firewalls
532 @cindex Gateways 432 @cindex Gateways
533 There are several different reasons why the gateway support might be 433 There are several different reasons why the gateway support might be
534 required. 434 required.
535 @enumerate 435 @enumerate
596 administrators to see if anything similar is available}, an 496 administrators to see if anything similar is available}, an
597 @i{expect}@footnote{Expect is a scripting language that allows control 497 @i{expect}@footnote{Expect is a scripting language that allows control
598 of interactive programs (like telnet) very easily. It is available from 498 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.). 499 gatekeeper.dec.com:/pub/GNU/expect-3.24.0.tar.gz} script, etc.).
600 500
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 501 @item tcp
605 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very nice 502 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very nice
606 replacement for the standard networking in Emacs. This does basically 503 replacement for the standard networking in Emacs. This does basically
607 the same thing that a method of @code{program} does, but is slightly 504 the same thing that a method of @code{program} does, but is slightly
608 more transparent to the user. 505 more transparent to the user.
609 @item native 506 @item native
610 This means that Emacs-W3 should use the builtin networking code of Emacs. 507 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 508 This should be used only if there is no firewall, or the Emacs source
612 has already been hacked to get around the firewall. 509 has already been hacked to get around the firewall.
613 @end table 510 @end table
614 Two of these need a bit more explanation than that: 511 One of these needs a bit more explanation than that:
615 @vindex url-gateway-telnet-ready-regexp 512 @vindex url-gateway-telnet-ready-regexp
616 @vindex url-gateway-telnet-program 513 @vindex url-gateway-telnet-program
617 When running a program in a subprocess to emulate a network connection, 514 When running a program in a subprocess to emulate a network connection,
618 a few extra variables need to be set. The variable 515 a few extra variables need to be set. The variable
619 @code{url-gateway-telnet-program} should point to an executable that 516 @code{url-gateway-telnet-program} should point to an executable that
626 requests becausse it did not buffer its input before opening a 523 requests becausse it did not buffer its input before opening a
627 connection. This should be a regular expression to watch for that 524 connection. This should be a regular expression to watch for that
628 signifies the end of the setup of @code{url-gateway-telnet-program}. 525 signifies the end of the setup of @code{url-gateway-telnet-program}.
629 The default should work fine for telnet. 526 The default should work fine for telnet.
630 527
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 528 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 529 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 530 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 531 this already, since somebody somewhere at the company has probably been
691 through something similar to this before, and would be much more 532 through something similar to this before, and would be much more
692 helpful/knowledgeable about the local setup than I would be. But feel 533 helpful/knowledgeable about the local setup than I would be. But feel
693 free to mail me as a last resort. 534 free to mail me as a last resort.
694 535
695 @node Proxy Gateways, Basic Usage, Firewalls, Starting Up 536 @node Proxy Gateways, Basic Usage, Firewalls, Getting Started
696 @comment node-name, next, previous, up
697 @section Proxy Gateways 537 @section Proxy Gateways
698 @vindex url-proxy-services 538 @vindex url-proxy-services
699 @cindex Proxy Servers 539 @cindex Proxy Servers
700 @cindex Proxies 540 @cindex Proxies
701 @cindex Proxies, environment variables 541 @cindex Proxies, environment variables
741 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/") 581 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/")
742 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com"))) 582 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com")))
743 @end example 583 @end example
744 584
745 @node Basic Usage, , Proxy Gateways, Top 585 @node Basic Usage, , Proxy Gateways, Top
746 @comment node-name, next, previous, up
747 @chapter Basic Usage 586 @chapter Basic Usage
748 Emacs-W3 is similar to the Info package all Emacs users hold near and dear to 587 Emacs-W3 is similar to the Info package all Emacs users hold near and dear to
749 their hearts (@xref{Top,,Info,info, The Info Manual}, for a description 588 their hearts (@xref{Top,,Info,info, The Info Manual}, for a description
750 of Info). Basically, @kbd{space} and @kbd{backspace} control scrolling, 589 of Info). Basically, @kbd{space} and @kbd{backspace} control scrolling,
751 and @kbd{return} or @kbd{mouse2} follows a hypertext link. The @kbd{f} 590 and @kbd{return} or @kbd{mouse2} follows a hypertext link. The @kbd{f}
752 and @kbd{b} keys maneuver around the various links on the page. 591 and @kbd{b} keys maneuver around the various links on the page.
753 592
754 @b{NOTE:} To enter data into a form entry area, select it using 593 @b{NOTE:} To enter data into a form entry area, select it using
755 @kbd{return} or the middle mouse button, just like a hypertext link. 594 @kbd{return} or the middle mouse button, just like a hypertext link.
756 595
757 596 By default, hypertext links are surrounded by '[[' and ']]' on
758 On non-graphic terminals (VT100, DOS, etc.), hypertext links are 597 non-graphic terminals (VT100, DOS window, etc.). On a graphics
759 surrounded by '[[' and ']]' by default. On a graphics terminal, the 598 terminal, the links are in shown in different colors. @xref{Controlling
760 links are in bold print. @xref{Controlling Formatting} for information 599 Formatting} for information on how to change this, or for help on
761 on how to change this, or for help on getting the highlighting to work 600 getting the highlighting to work on graphics terminals.
762 on graphics terminals.
763 601
764 There are approximately 50 keys bound to special Emacs-W3 functions. 602 There are approximately 50 keys bound to special Emacs-W3 functions.
765 The basic rule of thumb regarding keybindings in Emacs-W3 is that a 603 The basic rule of thumb regarding keybindings in Emacs-W3 is that a
766 lowercase key takes an action on the @b{current document}, and an 604 lowercase key takes an action on the @b{current document}, and an
767 uppercase key takes an action on the document pointed to by the 605 uppercase key takes an action on the document pointed to by the
1045 is called, and the variables @code{lpr-command} and @code{lpr-switches} 883 is called, and the variables @code{lpr-command} and @code{lpr-switches}
1046 control how the document is printed. 884 control how the document is printed.
1047 885
1048 When the HTML source is printed, then an appropriate <base> tag is 886 When the HTML source is printed, then an appropriate <base> tag is
1049 inserted at the beginning of the document. 887 inserted at the beginning of the document.
1050 @vindex w3-use-html2latex
1051 @vindex w3-html2latex-prog
1052 @vindex w3-html2latex-args
1053 @vindex w3-print-commnad 888 @vindex w3-print-commnad
1054 @vindex w3-latex-docstyle 889 @vindex w3-latex-docstyle
1055 When postscript is printed, then the HTML source of the document is 890 When postscript is printed, then the HTML source of the document is
1056 converted into LaTeX source. If the variable @code{w3-use-html2latex} 891 converted into LaTeX source. There are several variables controlling
1057 is non-@code{nil}, then the program specified by 892 what the final LaTeX document looks like.
1058 @code{w3-html2latex-prog} is run in a subprocess with the arguments in 893
1059 @code{w3-html2latex-args}. The @code{w3-html2latex-prog} must accept 894 :: WORK :: Document the new LaTeX backend
1060 HTML source on its standard input and send the LaTeX output to standard 895
1061 output. If @code{w3-use-html2latex} is @code{nil}, then an Emacs Lisp 896 @table @code
1062 function uses regular expressions to replace the HTML code with LaTeX 897 @item w3-latex-use-latex2e
1063 markup. The variable @code{w3-latex-docstyle} controls how the document 898 @vindex w3-latex-use-latex2e
1064 is laid out in this case, and postscript figures are printed as 899 If non-@code{nil}, configures the LaTeX engine to use the LaTeX2e
1065 well. 900 syntax. A @code{nil} value indicates that LaTeX 2.0.9 compabibility
901 will be used instead.
902 @item w3-latex-docstyle
903 @vindex w3-latex-docstyle
904 The document style to use when printing or mailing converted HTML files
905 in LaTeX. Good defaults are: @{article@}, [psfig,twocolumn]@{article@},
906 etc.
907 @item w3-latex-packages
908 @vindex w3-latex-packages
909 List of LaTeX packages to include. Currently this is only used if
910 @code{w3-latex-use-latex2e} is non-@code{nil}.
911 @item w3-latex-use-maketitle
912 @vindex w3-latex-use-maketitle
913 If non-@code{nil}, the LaTeX engine will use real LaTeX title pages for
914 document titles.
915 @item w3-latex-print-links
916 @vindex w3-latex-print-links
917 If non-@code{nil}, prints the URLs of hypertext links as endnotes at the
918 end of the document. If set to @code{footnote}, prints the URL's as
919 footnotes on each page.
920 @end table
921
1066 @kindex P 922 @kindex P
1067 @findex w3-print-url-under-point 923 @findex w3-print-url-under-point
1068 @item P 924 @item P
1069 Prints the document pointed to by the hypertext link under point. 925 Prints the document pointed to by the hypertext link under point.
1070 Please see the previous item for more information. 926 Please see the previous item for more information.
1095 a @code{completing-read} on only the links that have that type of 951 a @code{completing-read} on only the links that have that type of
1096 relationship. 952 relationship.
1097 @end table 953 @end table
1098 954
1099 @node Compatibility, , , Top 955 @node Compatibility, , , Top
1100 @comment node-name, next, previous, up
1101 @chapter Compatibility with other Browsers 956 @chapter Compatibility with other Browsers
1102 Due to the popularity of several other browsers, Emacs-W3 offers an easy 957 Due to the popularity of several other browsers, Emacs-W3 offers an easy
1103 transition to its much better way of life. This ranges from being able 958 transition to its much better way of life. This ranges from being able
1104 to share the same preferences files and disk cache to actually emulating 959 to share the same preferences files and disk cache to actually emulating
1105 the keybindings used in other browsers. 960 the keybindings used in other browsers.
1121 to change the document. 976 to change the document.
1122 @end menu 977 @end menu
1123 @end ifinfo 978 @end ifinfo
1124 @node Emulation, Hotlist Handling, Compatibility, Compatibility 979 @node Emulation, Hotlist Handling, Compatibility, Compatibility
1125 @section Emulation 980 @section Emulation
1126 :: WORK :: Document lynx emulation
1127 :: WORK :: Document netscape emulation
1128 @cindex Browser emulation 981 @cindex Browser emulation
1129 @cindex Emulation of other browsers 982 @cindex Emulation of other browsers
1130 @cindex Netscape emulation 983 @cindex Netscape emulation
1131 @cindex Lynx emulation 984 @cindex Lynx emulation
1132 @findex turn-on-netscape-emulation 985 @findex turn-on-netscape-emulation
1133 @findex turn-on-lynx-emulation 986 @findex turn-on-lynx-emulation
1134 @findex w3-netscape-emulation-minor-mode 987 @findex w3-netscape-emulation-minor-mode
1135 @findex w3-lynx-emulation-minor-mode 988 @findex w3-lynx-emulation-minor-mode
1136 @vindex w3-mode-hook 989 @vindex w3-mode-hook
990 :: WORK :: Document lynx emulation
991 :: WORK :: Document netscape emulation
1137 992
1138 @node Hotlist Handling, Session History, Emulation, Compatibility 993 @node Hotlist Handling, Session History, Emulation, Compatibility
1139 @section Hotlist Handling 994 @section Hotlist Handling
1140 :: WORK :: Document that it supports different types of hotlist formats 995 :: WORK :: Document that it supports different types of hotlist formats
1141 :: WORK :: Make sure everything hotlist related can be accessed via 'h' 996 :: WORK :: Make sure everything hotlist related can be accessed via 'h'
1313 references to it in the annotation log file. 1168 references to it in the annotation log file.
1314 1169
1315 Editing personal annotations is not yet supported. 1170 Editing personal annotations is not yet supported.
1316 1171
1317 @node Controlling Formatting, General Formatting, Top, Top 1172 @node Controlling Formatting, General Formatting, Top, Top
1318 @comment node-name, next, previous, up
1319 @chapter Controlling Formatting 1173 @chapter Controlling Formatting
1320 @cindex Customizing formatting 1174 @cindex Customizing formatting
1321 @cindex Specifying Fonts 1175 @cindex Specifying Fonts
1322 @cindex Fonts 1176 @cindex Fonts
1323 @cindex Colors 1177 @cindex Colors
1324 How Emacs-W3 formats a document is very customizable. How a document is 1178 How Emacs-W3 formats a document is very customizable. All control over
1325 displayed depends on whether the user is on a terminal 1179 formatting is now controlled by a default stylesheet set by the user
1326 capable of graphics and a few variables. 1180 with the @code{w3-default-sheet} variable.
1327 1181
1328 The following sections describe in more detail how to change the 1182 The following sections describe in more detail how to change the
1329 formatting of a document. 1183 formatting of a document.
1330 1184
1331 @ifinfo 1185 @ifinfo
1349 @iftex 1203 @iftex
1350 @heading Setting the fill column 1204 @heading Setting the fill column
1351 @end iftex 1205 @end iftex
1352 @ifinfo 1206 @ifinfo
1353 @center -------------------- 1207 @center --------------------
1354 @center Setting the fill column 1208 @center Setting the right margin
1355 @center -------------------- 1209 @center --------------------
1356 @end ifinfo 1210 @end ifinfo
1211 @cindex Margins
1357 @vindex fill-column 1212 @vindex fill-column
1358 @vindex w3-right-border 1213 @vindex w3-right-border
1359 Each time a document is parsed, the @code{fill-column} is recalculated 1214 Each time a document is parsed, the right margin is recalculated
1360 using @code{window-width} and @code{w3-right-border}. 1215 using the width of the current window and @code{w3-right-border}.
1361 @code{w3-right-border} is an integer specifying how much room at the 1216 @code{w3-right-border} is an integer specifying how much room at the
1362 right edge of the screen to leave blank. The @code{fill-column} is set 1217 right edge of the screen to leave blank. The @code{fill-column} is set
1363 to @code{(- (window-width) @code{w3-right-border})}. 1218 to @code{(- (window-width) @code{w3-right-border})}.
1364 @iftex
1365 @heading Formatting of hypertext links
1366 @end iftex
1367 @ifinfo
1368 @center --------------------
1369 @center Formatting of hypertext links
1370 @center --------------------
1371 @end ifinfo
1372 @vindex w3-delimit-links
1373 @vindex w3-link-start-delimiter
1374 @vindex w3-link-end-delimiter
1375 If the variable @code{w3-delimit-links} is non-@code{nil} (the default
1376 for text-terminals), then hypertext links are surrounded by text
1377 specified by the user. The variables @code{w3-link-start-delimiter} and
1378 @code{w3-link-end-delimiter} control what text is at the start and end
1379 of a hypertext link. These variables are cons-pairs of two
1380 strings.
1381
1382 If a link has never been visited before (it is not in the @i{global
1383 history}), then the @code{car} of these variables is inserted at the
1384 start and end of the link. If the link has been visited before, then
1385 the @code{cdr} is inserted. So, links look like:
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.
1390 @end example
1391
1392 @iftex
1393 @heading Formatting of lists
1394 @end iftex
1395 @ifinfo
1396 @center --------------------
1397 @center Formatting of lists
1398 @center --------------------
1399 @end ifinfo
1400 @cindex Indentation
1401 @vindex w3-indent-level
1402 There are several different ways to control the formatting of lists.
1403 The most obvious is how deeply they are indented relative to the rest of
1404 the paragraphs in the document. To control this, set the
1405 variable @code{w3-indent-level}. This is the number of spaces to
1406 indent lists and other items requiring special margins.
1407
1408 @vindex w3-list-chars-assoc
1409 Another thing that is easy to change about lists is the bullet character
1410 put at the front of each list item. This is controlled by the variable
1411 @code{w3-list-chars-assoc}, which is an assoc list. This is a list of
1412 lists, each sublist describing what to put at the start of each
1413 particular list type. The @code{car} of this list should be a symbol
1414 (@b{not} a string) representing the type of list (e.g., @samp{ul}).
1415 The rest of the list should consist of strings to insert at certain
1416 levels of lists. The @code{n}th element of this list is used when the
1417 list is nested @code{n + 1} levels. If the list is not long enough to
1418 define a string for a certain nesting level, then it defaults to either
1419 a '*' or a '.'.
1420 @iftex 1219 @iftex
1421 @heading Formatting of directory listings 1220 @heading Formatting of directory listings
1422 @end iftex 1221 @end iftex
1423 @ifinfo 1222 @ifinfo
1424 @center -------------------- 1223 @center --------------------
1438 If the value is @code{nil}, just pass the directory off to dired using 1237 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 1238 @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 1239 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. 1240 directly into Emacs-W3 by clicking with the mouse, etc.
1442 1241
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 1242 @iftex
1457 @heading Formatting of gopher directories 1243 @heading Formatting of gopher directories
1458 @end iftex 1244 @end iftex
1459 @ifinfo 1245 @ifinfo
1460 @center -------------------- 1246 @center --------------------
1493 @end ifinfo 1279 @end ifinfo
1494 @vindex w3-horizontal-rule-char 1280 @vindex w3-horizontal-rule-char
1495 Horizontal rules (@b{<HR>} tags in HTML[+]) are used to separate chunks 1281 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 1282 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 1283 page. Some terminals display characters differently, so the variable
1498 @code{w3-horizontal-rule-char} controls which character is used to draw a 1284 @code{w3-horizontal-rule-char} controls which character is used to draw
1499 horizontal bar. This variable must be the ASCII value of the character, 1285 a horizontal bar. This variable must be the ASCII value of the
1500 @b{not a string}. The variable is passed through make-string whenever a 1286 character, @b{not a string}. The variable is passed through
1501 horizontal rule of a certain width is necessary. 1287 @code{make-string} whenever a horizontal rule of a certain width is
1288 necessary.
1502 1289
1503 @node Character based terminals, Graphics workstations, General Formatting, Controlling Formatting 1290 @node Character based terminals, Graphics workstations, General Formatting, Controlling Formatting
1504 @section On character based terminals 1291 @section On character based terminals
1505 @vindex w3-delimit-emphasis 1292 @vindex w3-delimit-emphasis
1506 On character based terminals, there is no easy way to show that a 1293 On character based terminals, there is no easy way to show that a
1869 @cindex Amiga 1656 @cindex Amiga
1870 @cindex Commodore 1657 @cindex Commodore
1871 :: WORK :: Amiga specific instructions 1658 :: WORK :: Amiga specific instructions
1872 1659
1873 @node Advanced Features, Style Sheets, Amiga, Top 1660 @node Advanced Features, Style Sheets, Amiga, Top
1874 @comment node-name, next, previous, up
1875 @chapter Advanced Features 1661 @chapter Advanced Features
1876 1662
1877 @ifinfo 1663 @ifinfo
1878 @menu 1664 @menu
1879 * Style Sheets:: Formatting control, the right way 1665 * Style Sheets:: Formatting control, the right way