comparison man/w3.texi @ 22:8fc7fe29b841 r19-15b94

Import from CVS: tag r19-15b94
author cvs
date Mon, 13 Aug 2007 08:50:29 +0200
parents 859a2309aef8
children 4103f0995bd7
comparison
equal deleted inserted replaced
21:b88636d63495 22:8fc7fe29b841
92 * Getting Started:: Getting up and running with Emacs-W3 92 * Getting Started:: Getting up and running with Emacs-W3
93 * Basic Usage:: Basic movement and usage of Emacs-W3. 93 * Basic Usage:: Basic movement and usage of Emacs-W3.
94 * Compatibility:: Explanation of compatibility with 94 * Compatibility:: Explanation of compatibility with
95 other browsers. 95 other browsers.
96 * Stylesheets:: How to control the look of web pages 96 * Stylesheets:: How to control the look of web pages
97 * Supported URLs:: What @sc{URL} schemes are supported.
97 * MIME Support:: Support for @sc{mime} 98 * MIME Support:: Support for @sc{mime}
98 * Security:: Various security methods supported 99 * Security:: Various security methods supported
99 * Non-Unix Operating Systems:: Special considerations necessary to get 100 * Non-Unix Operating Systems:: Special considerations necessary to get
100 up and running correctly under non-unix 101 up and running correctly under non-unix
101 OS's. 102 OS's.
104 * More Help:: How to get more help---mailing lists, 105 * More Help:: How to get more help---mailing lists,
105 newsgroups, etc. 106 newsgroups, etc.
106 * Future Directions:: Plans for future revisions 107 * Future Directions:: Plans for future revisions
107 108
108 Appendices: 109 Appendices:
109 * Reporting Bugs:: How to report a bug in Emacs-W3 110 * Reporting Bugs:: How to report a bug in Emacs-W3.
110 * Installing SSL:: Turning on @sc{ssl} support 111 * Dealing with Firewalls:: How to get around your firewall.
111 * Mailcap Files:: An explanation of Mailcap files 112 * Proxy Gateways:: Using a proxy gateway with Emacs-W3.
113 * Installing SSL:: Turning on @sc{ssl} support.
114 * Mailcap Files:: An explanation of Mailcap files.
115 * Down with DoubleClick:: Annoyed by advertisements? Read this!
112 116
113 Indices: 117 Indices:
114 * General Index:: General Index 118 * General Index:: General Index.
115 * Key Index:: Menus of command keys and their references 119 * Key Index:: Menus of command keys and their references.
116 @end menu 120 @end menu
117 @end ifinfo 121 @end ifinfo
118 122
119 @node Getting Started, Basic Usage, Top, Top 123 @node Getting Started, Basic Usage, Top, Top
120 @chapter Getting Started 124 @chapter Getting Started
130 134
131 If the default page is not retrieved correctly at startup, you will have 135 If the default page is not retrieved correctly at startup, you will have
132 to do some customization. 136 to do some customization.
133 137
134 @menu 138 @menu
135 * Using the Network:: Tell Emacs about your network setup. 139 * Downloading:: Where to download Emacs-W3.
136 * Proxy Gateways:: Using an @sc{http} proxy 140 * Building and Installing:: Compiling and installing from source.
137 * Startup Files:: What is where, and why. 141 * Startup Files:: What is where, and why.
138 * Preferences Panel:: Quick configuration of common options. 142 * Preferences Panel:: Quick configuration of common options.
139 @end menu 143 @end menu
140 144
141 @node Using the Network, Proxy Gateways, Getting Started, Getting Started 145 @node Downloading, Building and Installing, Getting Started, Getting Started
142 @section Using the Network 146 @section Downloading
143 By default, Emacs can support standard @sc{tcp}/@sc{ip} network 147 :: WORK :: What you need, and why
144 connections on almost all the platforms it runs on (Unix, @sc{vms}, 148 :: WORK :: Where to download Emacs, XEmacs, various platforms
145 Windows, etc). However, there are several situations where it is not 149 :: WORK :: Where to download Emacs-W3
146 sufficient. 150 :: WORK :: Where to download related utilities (netpbm, xv, gimp, etc.)
147 151
148 @table @b 152 @node Building and Installing, Startup Files, Downloading, Getting Started
149 @cindex Firewalls 153 @section Building and Installing
150 @item Firewalls 154 :: WORK :: Document makefile variables
151 It is becoming more and more common to be behind a firewall or some 155 :: WORK :: Document what gets installed where, why
152 other system that restricts your outbound network activity, especially 156
153 if you are like me and away from the wonderful world of academia. 157 @node Startup Files, Preferences Panel, Building and Installing, Getting Started
154 Emacs-W3 has several different methods to get around firewalls (not to
155 worry though - none of them should get you in trouble with the local
156 @sc{mis} department.)
157
158 @item Emacs cannot resolve hostnames.
159 @cindex Faulty hostname resolvers
160 @cindex Broken SunOS libc
161 @cindex Hostname resolution
162 This happens quite often on SunOS workstations and some ULTRIX machines.
163 Some C libraries do not include the hostname resolver routines in their
164 static libraries. If Emacs was linked statically, and was not linked
165 with the resolver libraries, it wil not be able to get to any machines
166 off the local network. This is characterized by being able to reach
167 someplace with a raw ip number, but not its hostname
168 (@url{http://129.79.254.191/} works, but
169 @url{http://www.cs.indiana.edu/} doesn't).
170
171 The best solution for this problem is to recompile Emacs, making sure to
172 either link dynamically (if available on your operating system), or
173 include the @file{-lresolv}.
174
175 @cindex url-gateway-broken-resolution
176 If you do not have the disk space or the appropriate permissions to
177 recompile Emacs, another alternative is using the @file{nslookup}
178 program to do hostname resolution. To turn this on, set the variable
179 @code{url-gateway-broken-resolution} in your @file{~/.emacs} file. This
180 runs the program specified by @code{url-gateway-nslookup-program} (by
181 default "@code{nslookup}" to do hostname resolution. This program should
182 expect a single argument on the command line - the hostname to resolve,
183 and should produce output similar to the standard Unix @file{nslookup}
184 program:
185
186 @example
187 Name: www.cs.indiana.ed
188 Address: 129.79.254.191
189 @end example
190
191 @cindex @sc{term}
192 @item Using @sc{term} (or @sc{term}-like) Networking Software
193 @sc{term} @footnote{@sc{term} is a user-level protocol for emulating
194 @sc{ip} over a serial line. More information is available at
195 @url{ftp://sunsite.unc.edu/pub/Linux/apps/comm/term}} for slip-like
196 access to the internet.
197
198 @sc{note}: XEmacs and Emacs 19.22 or later have patches to enable native
199 @sc{term} networking. To enable it, @code{#define TERM} in the
200 appropriate s/*.h file for the operating system, then change the
201 @code{SYSTEM_LIBS} definition to include the @file{termnet} library that
202 comes with the latest versions of @sc{term}.
203
204 If you run into any problems with the native @sc{term} networking
205 support in Emacs or XEmacs, please let @t{wmperry@@cs.indiana.edu} know,
206 as he is responsible for the original support.
207 @end table
208
209 @vindex url-gateway-local-host-regexp
210 Emacs-W3 has support for using the gateway mechanism for certain
211 domains, and directly connecting to others. The variable
212 @code{url-gateway-local-host-regexp} controls this behaviour. This is a
213 regular expression @footnote{Please see the full Emacs distribution for
214 a description of regular expressions} that matches local hosts that do
215 not require the use of a gateway. If @code{nil}, then all connections
216 are made through the gateway.
217
218 @vindex url-gateway-method
219 Emacs-W3 supports several methods of getting around gateways. The
220 variable @code{url-gateway-method} controls which of these methods is
221 used. This variable can have several values (use these as symbol names,
222 not strings), ie: @samp{(setq url-gateway-method 'telnet)}. Possible
223 values are:
224
225 @table @dfn
226 @item telnet
227 Use this method if you must first telnet and log into a gateway host,
228 and then run telnet from that host to connect to outside machines.
229
230 :: WORK :: document telnet gw variables
231 This section needs more information, specifically documenting the
232 following variables. For now, please do @key{C-h v} on the variable for
233 more information.
234
235 @table @code
236 @item url-gateway-telnet-host
237 @item url-gateway-telnet-parameters
238 @item url-gateway-telnet-password-prompt
239 @item url-gateway-telnet-puser-name
240 @item url-gateway-prompt-pattern
241 @end table
242
243 @item rlogin
244 This method is identical to the @code{telnet} method, but uses
245 @file{rlogin} to log into the remote machine without having to send the
246 username and password over the wire every time.
247
248 :: WORK :: document rlogin gw variables
249 This section needs more information, specifically documenting the
250 following variables. For now, please do @key{C-h v} on the variable for
251 more information.
252
253 @table @code
254 @item url-gateway-rlogin-host
255 @item url-gateway-rlogin-parameters
256 @item url-gateway-rlogin-user-name
257 @item url-gateway-prompt-pattern
258 @end table
259
260 @item tcp
261 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very small
262 application that you can run in a subprocess to do the network
263 connections.
264
265 @item @sc{socks}
266 Use if the firewall has a @sc{socks} gateway running on it.
267
268 :: WORK :: document socks variables
269 This section needs more information, specifically documenting the
270 following variables. For now, please do @key{C-h v} on the variable for
271 more information.
272
273 @table @code
274 @item socks-host
275 @item socks-password
276 @item socks-username
277 @item socks-port
278 @item socks-timeout
279 @end table
280
281 @c @item ssl
282 @c This probably shouldn't be documented
283
284 @item native
285 This means that Emacs-W3 should use the builtin networking code of
286 Emacs. This should be used only if there is no firewall, or the Emacs
287 source has already been hacked to get around the firewall.
288 @end table
289
290 Emacs-W3 should now be able to get outside the local network. If none
291 of this makes sense, its probably my fault. Please check with the
292 network administrators to see if they have a program that does most of
293 this already, since somebody somewhere at the company has probably been
294 through something similar to this before, and would be much more
295 helpful/knowledgeable about the local setup than I would be. But feel
296 free to mail me as a last resort.
297 @node Proxy Gateways, Startup Files , Using the Network, Getting Started
298 @section Proxy Gateways
299 @vindex url-proxy-services
300 @cindex Proxy Servers
301 @cindex Proxies
302 @cindex Proxies, environment variables
303 @cindex HTTP Proxy
304
305 In late January 1993, Kevin Altis and Lou Montulli proposed and
306 implemented a new proxy service. This service requires the use of
307 environment variables to specify a gateway server/port # to send
308 protocol requests to. Each protocol (@sc{http}, @sc{wais}, gopher,
309 @sc{ftp}, etc.) can have a different gateway server. The environment
310 variables are @code{PROTOCOL}_proxy, where @code{PROTOCOL} is one of the
311 supported network protocols (gopher, file, @sc{http}, @sc{ftp}, etc.)
312
313 @cindex No Proxy
314 @cindex Proxies, exclusion lists
315 @vindex NO_PROXY
316 For companies with internal intranets, it will usually be helpful to
317 define a list of hosts that should be contacted directly, @b{not} sent
318 through the proxy. The @code{NO_PROXY} environment variable controls
319 what hosts are able to be contacted directly. This should be a comma
320 separated list of hostnames, domain names, or a mixture of both.
321 Asterisks can be used as a wildcard. For example:
322
323 @example
324 NO_PROXY=*.aventail.com,home.com,*.seanet.com
325 @end example
326
327 tells Emacs-W3 to contact all machines in the @b{aventail.com} and
328 @b{seanet.com} domains directly, as well as the machine named
329 @b{home.com}.
330
331 @vindex url-proxy-services
332 @cindex Proxies, setting from lisp
333 For those adventurous souls who enjoy writing regular expressions, all
334 the proxy settings can be manipulated from Emacs-Lisp. The variable
335 @code{url-proxy-services} controls this. This is an assoc list, keyed
336 on the protocol type (@sc{http}, gopher, etc) in all lowercase. The
337 @code{cdr} of each entry should be the fully-specified @sc{url} of the proxy
338 server to contact, or, in the case of the special "no_proxy" entry, a
339 regular expression that matches any hostnames that should be contacted
340 directly.
341
342 @example
343 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/")
344 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com")))
345 @end example
346
347 @node Startup Files, Preferences Panel, Proxy Gateways, Getting Started
348 @section Startup Files 158 @section Startup Files
349 @cindex Startup files 159 @cindex Startup files
350 @cindex Default stylesheet 160 @cindex Default stylesheet
351 :: WORK :: startup files 161 :: WORK :: startup files
352 This section should document where emacs-w3 looks for its startup files, 162 This section should document where emacs-w3 looks for its startup files,
353 and what each one does. 'profile' 'stylesheet' 'hotlist' 'history' etc. 163 and what each one does. 'profile' 'stylesheet' 'hotlist' 'history' etc.
354 164
355 @node Preferences Panel, , Startup Files, Getting Started 165 @node Preferences Panel, , Startup Files, Getting Started
356 @section Preferences Panel 166 @section Preferences Panel
357 @cindex Preferences 167 @cindex Preferences
358 @kindex M-x w3-edit-preferences 168 @kindex M-x w3-preferences-edit
359 :: WORK :: pref panel 169 :: WORK :: pref panel
360 This should document the quick preferences panel. M-x w3-edit-preferences 170 This should document the quick preferences panel. M-x w3-preferences-edit
361 171
362 @node Basic Usage, Movement , Getting Started, Top 172 @node Basic Usage, Movement , Getting Started, Top
363 @chapter Basic Usage 173 @chapter Basic Usage
364 @cindex Basic Usage 174 @cindex Basic Usage
365 @kindex space 175 @kindex space
648 @item HF, F 458 @item HF, F
649 Takes one step forward along the path in the current history. Has no 459 Takes one step forward along the path in the current history. Has no
650 effect if at the end of the session history. 460 effect if at the end of the session history.
651 @end table 461 @end table
652 462
653 @node Miscellaneous, , Action, Basic Usage 463 @node Miscellaneous, Compatibility, Action, Basic Usage
654 @section Miscellaneous 464 @section Miscellaneous
655 @table @kbd 465 @table @kbd
656 @kindex M-m 466 @kindex M-m
657 @findex w3-mail-current-document 467 @findex w3-mail-current-document
658 @item M-m 468 @item M-m
751 first asks what type of link to follow (Normal or Reverse), then does 561 first asks what type of link to follow (Normal or Reverse), then does
752 a @code{completing-read} on only the links that have that type of 562 a @code{completing-read} on only the links that have that type of
753 relationship. 563 relationship.
754 @end table 564 @end table
755 565
756 @node Compatibility, , , Top 566 @node Compatibility, Emulation, Miscellaneous, Top
757 @chapter Compatibility with other Browsers 567 @chapter Compatibility with other Browsers
758 Due to the popularity of several other browsers, Emacs-W3 offers an easy 568 Due to the popularity of several other browsers, Emacs-W3 offers an easy
759 transition to its much better way of life. This ranges from being able 569 transition to its much better way of life. This ranges from being able
760 to share the same preferences files and disk cache to actually emulating 570 to share the same preferences files and disk cache to actually emulating
761 the keybindings used in other browsers. 571 the keybindings used in other browsers.
1005 from that buffer. This means that the user can go forwards and 815 from that buffer. This means that the user can go forwards and
1006 backwards very easily along the path taken to reach a particular 816 backwards very easily along the path taken to reach a particular
1007 document. To go forward, use the function @code{w3-forward-in-history}, 817 document. To go forward, use the function @code{w3-forward-in-history},
1008 to go backward, use the function @code{w3-backward-in-history}. 818 to go backward, use the function @code{w3-backward-in-history}.
1009 819
1010 @node Global History, , Session History, Compatibility 820 @node Global History, Stylesheets, Session History, Compatibility
1011 @section Global History 821 @section Global History
1012 :: WORK :: Document that the global history can have diff. formats 822 :: WORK :: Document that the global history can have diff. formats
1013 Most web browsers also support the idea of a ``history'' of @sc{url}s the 823 Most web browsers also support the idea of a ``history'' of @sc{url}s the
1014 user has visited, and it displays them in a different style than normal 824 user has visited, and it displays them in a different style than normal
1015 @sc{url}s. 825 @sc{url}s.
1036 the @kbd{tab} or @kbd{space} key will show all completions for a 846 the @kbd{tab} or @kbd{space} key will show all completions for a
1037 partial @sc{url}. This is very useful, especially for very long @sc{url}s that 847 partial @sc{url}. This is very useful, especially for very long @sc{url}s that
1038 are not in a hotlist, or for seeing all the pages from a particular web 848 are not in a hotlist, or for seeing all the pages from a particular web
1039 site before choosing which to retrieve. 849 site before choosing which to retrieve.
1040 850
1041 @node Stylesheets, General Formatting, Top, Top 851 @node Stylesheets, Terminology, Global History, Top
1042 @chapter Stylesheets 852 @chapter Stylesheets
1043 @cindex Customizing formatting 853 The way in which Emacs-W3 formats a document is very customizable. All
1044 @cindex Specifying Fonts
1045 @cindex Fonts
1046 @cindex Stylesheets
1047 @cindex Colors
1048 How Emacs-W3 formats a document is very customizable. All control over
1049 formatting is now controlled by a default stylesheet set by the user 854 formatting is now controlled by a default stylesheet set by the user
1050 with the @code{w3-default-stylesheet} variable. 855 with the @code{w3-default-stylesheet} variable. Emacs-W3 currently
1051 856 supports the @sc{W3C} recommendation for Cascading Style Sheets, Level 1
1052 The following sections describe in more detail how to change the 857 (commonly known as @sc{CSS1}) with a few experimental items from other
1053 formatting of a document. 858 W3C proposals. Wherever Emacs-W3 diverges from the specification, it
859 will be clearly documented, and will be changed once a full standard is
860 available.
861
862 Support for @sc{DSSSL} is progressing, but spare time is at an all-time
863 low. If anyone would like to help, please contact the author.
864
865 The following sections closely parallel the @sc{CSS1} specification so
866 it should be very easy to look up what Emacs-W3 supports when browsing
867 through the @sc{CSS1} specification. Please note that a lot of the text
868 in the following sections comes directly from the specification as
869 well.
1054 870
1055 @ifinfo 871 @ifinfo
1056 @menu 872 @menu
1057 * General Formatting:: Changing general things about a 873 * Terminology:: Terms used in the rest of this chapter.
1058 document. 874 * Basic Concepts:: Why are stylesheets useful? Getting started.
1059 * Character based terminals:: Changing how a document is 875 * Pseudo-Classes/Elements:: Special classes for elements.
1060 displayed on a non-graphics 876 * The Cascade:: How stylesheets are combined.
1061 terminal (vt100, etc.@:) or if 877 * Properties:: What properties you can set on elements.
1062 @code{w3-delimit-emphasis} is @code{t}. 878 * Units:: What you can set them to.
1063 * Graphics workstations:: Changing how a document is
1064 displayed on a graphics terminal
1065 (Xwindows, Windows, NeXTstep,
1066 OS/2, etc.)
1067 * Inlined images:: How to specify how Emacs-W3
1068 handles inlined images/mpegs.
1069 @end menu 879 @end menu
1070 @end ifinfo 880 @end ifinfo
1071 @node General Formatting, Character based terminals, Stylesheets, Stylesheets 881
1072 @section General formatting conventions 882 @node Terminology, Basic Concepts, Stylesheets, Stylesheets
1073 @iftex 883 @section Terminology
1074 @heading Setting the fill column 884
1075 @end iftex 885 @table @dfn
886 @item attribute
887 HTML attribute, ie: @samp{align=center} - align is the attribute.
888 @item author
889 The author of an HTML document.
890 @item block-level element
891 An element which has a line break before and after (e.g. 'H1' in @sc{HTML}).
892 @item canvas
893 The part of the UA's drawing surface onto which documents are rendered.
894 @item child element
895 A subelement in @sc{sgml} terminology.
896 @item contextual selector
897 A selector that matches elements based on their position in the document
898 structure. A contextual selector consists of several simple
899 selectors. E.g., the contextual selector 'H1.initial B' consists of two
900 simple selectors, 'H1.initial' and 'B'.
901 @item @sc{css}
902 Cascading Style Sheets.
903 @item declaration
904 A property (e.g. 'font-size') and a corresponding value (e.g. '12pt').
905 @item designer
906 The designer of a style sheet.
907 @item document
908 @sc{html} document.
909 @item element
910 @sc{html} element.
911 @item element type
912 A generic identifier in @sc{sgml} terminology.
913 @item fictional tag sequence
914 A tool for describing the behavior of pseudo-classes and pseudo-elements.
915 @item font size
916 The size for which a font is designed. Typically, the size of a font is
917 approximately equal to the distance from the bottom of the lowest letter
918 with a descender to the top of the tallest letter with an ascender and
919 (optionally) with a diacritical mark.
920 @item @sc{html} extension
921 Markup introduced by UA vendors, most often to support certain visual
922 effects. The @sc{font}, @sc{center} and @sc{blink} elements are examples
923 of HTML extensions, as is the @sc{bgcolor} attribute. One of the goals
924 of @sc{css} is to provide an alternative to @sc{html} extensions.
925 @item inline element
926 An element which does not have a line break before and after
927 (e.g. '@sc{strong}' in @sc{html})
928 @item intrinsic dimensions
929 The width and height as defined by the element itself, not imposed by
930 the surroundings. In this specification it is assumed that all replaced
931 elements -- and only replaced elements -- come with intrinsic
932 dimensions.
933 @item parent element
934 The containing element in @sc{sgml} terminology.
935 @item pseudo-element
936 Pseudo-elements are used in @sc{css} selectors to address typographical
937 items (e.g. the first line of an element) rather than structural
938 elements.
939 @item pseudo-class
940 Pseudo-classes are used in @sc{css} selectors to allow information
941 external to the @sc{html} source (e.g. the fact that an anchor has been
942 visited or not) to classify elements.
943 @item property
944 A stylistic parameter that can be influenced through @sc{css}.
945 @item reader
946 The person for whom the document is rendered.
947 @item replaced element
948 An element that the @sc{css} formatter only knows the intrinsic
949 dimensions of. In @sc{html}, @sc{img}, @sc{input}, @sc{textarea},
950 @sc{select} and @sc{object} elements can be examples of replaced
951 elements. E.g., the content of the @sc{img} element is often replaced by
952 the image that the @sc{src} attribute points to. @sc{css1} does not
953 define how the intrinsic dimensions are found.
954 @item rule
955 A declaration (e.g. 'font-family: helvetica') and its selector
956 (e.g. @sc{'H1'}).
957 @item selector
958 A string that identifies what elements the corresponding rule applies
959 to. A selector can either be a simple selector (e.g. 'H1') or a
960 contextual selector (e.g. @sc{'h1 b'}) which consists of several simple
961 selectors.
962 @item @sc{sgml}
963 Standard Generalized Markup Language, of which @sc{html} is an
964 application.
965 @item simple selector
966 A selector that matches elements based on the element type and/or
967 attributes, and not he element's position in the document
968 structure. E.g., 'H1.initial' is a simple selector.
969 @item style sheet
970 A collection of rules.
971 @item @sc{ua}
972 User Agent, often a web browser or web client.
973 @item user
974 Synonymous with reader.
975 @item weight
976 The priority of a rule.
977 @end table
978
979 @node Basic Concepts, Pseudo-Classes/Elements, Terminology, Stylesheets
980 @section Basic Concepts
981 Designing simple style sheets is easy. One needs only to know a little
982 HTML and some basic desktop publishing terminology. E.g., to set the
983 text color of 'H1' elements to blue, one can say:
984
985 @example
986 H1 @{ color: blue @}
987 @end example
988
989 The example above is a simple CSS rule. A rule consists of two main
990 parts: selector ('H1') and declaration ('color: blue'). The declaration
991 has two parts: property ('color') and value ('blue'). While the example
992 above tries to influence only one of the properties needed for rendering
993 an HTML document, it qualifies as a style sheet on its own. Combined
994 with other style sheets (one fundamental feature of CSS is that style
995 sheets are combined) it will determine the final presentation of the
996 document.
997
998 The selector is the link between the HTML document and the style sheet, and
999 all HTML element types are possible selectors.
1000
1001 @node Pseudo-Classes/Elements, The Cascade, Basic Concepts, Stylesheets
1002 @section Pseudo-Classes/Elements
1003 In @sc{css1}, style is normally attached to an element based on its
1004 position in the document structure. This simple model is sufficient for
1005 a wide variety of styles, but doesn't cover some common effects. The
1006 concept of pseudo-classes and pseudo-elements extend addressing in
1007 @sc{css1} to allow external information to influence the formatting
1008 process.
1009
1010 Pseudo-classes and pseudo-elements can be used in @sc{css} selectors,
1011 but do not exist in the @sc{html} source. Rather, they are "inserted" by
1012 the @sc{ua} under certain conditions to be used for addressing in style
1013 sheets. They are referred to as "classes" and "elements" since this is a
1014 convenient way of describing their behavior. More specifically, their
1015 behavior is defined by a fictional tag sequence.
1016
1017 Pseudo-elements are used to address sub-parts of elements, while
1018 pseudo-classes allow style sheets to differentiate between different
1019 element types.
1020
1021 The only support pseudo-classes in Emacs-W3 are on the anchor tag
1022 (<a>...</a>).
1023
1024 User agents commonly display newly visited anchors differently from
1025 older ones. In @sc{css1}, this is handled through pseudo-classes on the
1026 'A' element:
1027
1028 @example
1029 A:link @{ color: red @} /* unvisited link */
1030 A:visited @{ color: blue @} /* visited links */
1031 A:active @{ color: lime @} /* active links */
1032 @end example
1033
1034 All 'A' elements with an 'HREF' attribute will be put into one and only
1035 one of these groups (i.e. target anchors are not affected). UAs may
1036 choose to move an element from 'visited' to 'link' after a certain
1037 time. An 'active' link is one that is currently being selected (e.g. by
1038 a mouse button press) by the reader.
1039
1040 The formatting of an anchor pseudo-class is as if the class had been
1041 inserted manually. A @sc{ua} is not required to reformat a currently
1042 displayed document due to anchor pseudo-class transitions. E.g., a style
1043 sheet can legally specify that the 'font-size' of an 'active' link
1044 should be larger that a 'visited' link, but the UA is not required to
1045 dynamically reformat the document when the reader selects the 'visited'
1046 link.
1047
1048 Pseudo-class selectors do not match normal classes, and vice versa. The
1049 style rule in the example below will therefore not have any influence:
1050
1051 @example
1052 A:link @{ color: red @}
1053
1054 <A CLASS=link NAME=target5> ... </A>
1055 @end example
1056
1057 In @sc{css1}, anchor pseudo-classes have no effect on elements other
1058 than 'A'. Therefore, the element type can be omitted from the selector:
1059
1060 @example
1061 A:link @{ color: red @}
1062 :link @{ color: red @}
1063 @end example
1064
1065 The two selectors above will select the same elements in CSS1.
1066
1067 Pseudo-class names are case-insensitive.
1068
1069 Pseudo-classes can be used in contextual selectors:
1070
1071 @example
1072 A:link IMG @{ border: solid blue @}
1073 @end example
1074
1075 Also, pseudo-classes can be combined with normal classes:
1076
1077 @example
1078 A.external:visited @{ color: blue @}
1079
1080 <A CLASS=external HREF="http://out.side/">external link</A>
1081 @end example
1082
1083 If the link in the above example has been visited, it will be rendered
1084 in blue. Note that normal class names precede pseudo-classes in the
1085 selector.
1086
1087 @node The Cascade, Properties, Pseudo-Classes/Elements, Stylesheets
1088 @section The Cascade
1089
1090 In @sc{css}, more than one style sheet can influence the presentation
1091 simultaneously. There are two main reasons for this feature: modularity
1092 and author/reader balance.
1093
1094 @table @i
1095 @item modularity
1096 A style sheet designer can combine several (partial) style sheets to
1097 reduce redundancy:
1098
1099 @example
1100 @@import url(http://www.style.org/pastoral);
1101 @@import url(http://www.style.org/marine);
1102
1103 H1 @{ color: red @} /* override imported sheets */
1104 @end example
1105 @item author/reader balance
1106 Both readers and authors can influence the presentation through style
1107 sheets. To do so, they use the same style sheet language thus reflecting
1108 a fundamental feature of the web: everyone can become a publisher. The
1109 @sc{ua} is free to choose the mechanism for referencing personal style
1110 sheets.
1111 @end table
1112
1113 Sometimes conflicts will arise between the style sheets that influence
1114 the presentation. Conflict resolution is based on each style rule having
1115 a weight. By default, the weights of the reader's rules are less than
1116 the weights of rules in the author's documents. I.e., if there are
1117 conflicts between the style sheets of an incoming document and the
1118 reader's personal sheets, the author's rules will be used. Both reader
1119 and author rules override the @sc{ua}'s default values.
1120
1121 The imported style sheets also cascade with each other, in the order
1122 they are imported, according to the cascading rules defined below. Any
1123 rules specified in the style sheet itself override rules in imported
1124 style sheets. That is, imported style sheets are lower in the cascading
1125 order than rules in the style sheet itself. Imported style sheets can
1126 themselves import and override other style sheets, recursively.
1127
1128 In @sc{css1}, all '@@import' statements must occur at the start of a
1129 style sheet, before any declarations. This makes it easy to see that
1130 rules in the style sheet itself override rules in the imported style
1131 sheets.
1132
1133 NOTE: The use of !important in @sc{css} stylesheets is unsupported at
1134 this time.
1135
1136 Conflicting rules are intrinsic to the CSS mechanism. To find the value
1137 for an element/property combination, the following algorithm must be
1138 followed:
1139
1140 @enumerate
1141 @item
1142 Find all declarations that apply to the element/property in
1143 question. Declarations apply if the selector matches the element in
1144 question. If no declarations apply, the inherited value is used. If
1145 there is no inherited value (this is the case for the 'HTML' element and
1146 for properties that do not inherit), the initial value is used.
1147 @item
1148 Sort the declarations by explicit weight: declarations marked
1149 '!important' carry more weight than unmarked (normal) declarations.
1150 @item
1151 Sort by origin: the author's style sheets override the reader's style
1152 sheet which override the UA's default values. An imported style sheet
1153 has the same origin as the style sheet from which it is imported.
1154 @item
1155 Sort by specificity of selector: more specific selectors will override
1156 more general ones. To find the specificity, count the number of ID
1157 attributes in the selector (a), the number of CLASS attributes in the
1158 selector (b), and the number of tag names in the selector
1159 (c). Concatenating the three numbers (in a number system with a large
1160 base) gives the specificity. Some examples:
1161 @example
1162 LI @{...@} /* a=0 b=0 c=1 -> specificity = 1 */
1163 UL LI @{...@} /* a=0 b=0 c=2 -> specificity = 2 */
1164 UL OL LI @{...@} /* a=0 b=0 c=3 -> specificity = 3 */
1165 LI.red @{...@} /* a=0 b=1 c=1 -> specificity = 11 */
1166 UL OL LI.red @{...@} /* a=0 b=1 c=3 -> specificity = 13 */
1167 #x34y @{...@} /* a=1 b=0 c=0 -> specificity = 100 */
1168 @end example
1169 Pseudo-elements and pseudo-classes are counted as normal elements and
1170 classes, respectively.
1171 @item
1172 Sort by order specified: if two rules have the same weight, the latter
1173 specified wins. Rules in imported style sheets are considered to be
1174 before any rules in the style sheet itself.
1175 @end enumerate
1176
1177 The search for the property value can be terminated whenever one rule
1178 has a higher weight than the other rules that apply to the same
1179 element/property combination.
1180
1181 This strategy gives author's style sheets considerably higher weight
1182 than those of the reader. It is therefore important that the reader has
1183 the ability to turn off the influence of a certain style sheet,
1184 e.g. through a pull-down menu.
1185
1186 A declaration in the 'STYLE' attribute of an element has the same weight
1187 as a declaration with an ID-based selector that is specified at the end
1188 of the style sheet:
1189
1190 @example
1191 <STYLE TYPE="text/css">
1192 #x97z @{ color: blue @}
1193 </STYLE>
1194
1195 <P ID=x97z STYLE="color: red">
1196 @end example
1197
1198 In the above example, the color of the 'P' element would be
1199 red. Although the specificity is the same for both declarations, the
1200 declaration in the 'STYLE' attribute will override the one in the
1201 'STYLE' element because of cascading rule number 5.
1202
1203 The UA may choose to honor other stylistic HTML attributes, for example
1204 'ALIGN'. If so, these attributes are translated to the corresponding CSS
1205 rules with specificity equal to 1. The rules are assumed to be at the
1206 start of the author style sheet and may be overridden by subsequent
1207 style sheet rules. In a transition phase, this policy will make it
1208 easier for stylistic attributes to coexist with style sheets.
1209
1210 @node Properties, Font Properties, The Cascade, Stylesheets
1211 @section Properties
1076 @ifinfo 1212 @ifinfo
1077 @center -------------------- 1213 @menu
1078 @center Setting the right margin 1214 * Font Properties:: Selecting fonts, styles, and sizes.
1079 @center -------------------- 1215 * Colors and Backgrounds:: Controlling colors, front and back.
1216 * Text Properties:: Alignment, decoration, and more!
1217 * Box Properties:: Borders, padding, and margins, oh my!
1218 * Classification:: Changing whitespace and display policies.
1219 * Media Selection::
1220 * Speech Properties::
1221 @end menu
1080 @end ifinfo 1222 @end ifinfo
1081 @cindex Margins 1223
1082 @vindex fill-column 1224 @node Font Properties, font-family, Properties, Properties
1083 @vindex w3-right-border 1225 @subsection Font Properties
1084 Each time a document is parsed, the right margin is recalculated 1226 Setting font properties will be among the most common uses of style
1085 using the width of the current window and @code{w3-right-border}. 1227 sheets. Unfortunately, there exists no well-defined and universally
1086 @code{w3-right-border} is an integer specifying how much room at the 1228 accepted taxonomy for classifying fonts, and terms that apply to one
1087 right edge of the screen to leave blank. The @code{fill-column} is set 1229 font family may not be appropriate for others. E.g. 'italic' is commonly
1088 to @code{(- (window-width) @code{w3-right-border})}. 1230 used to label slanted text, but slanted text may also be labeled as
1089 @iftex 1231 being @b{Oblique}, @b{Slanted}, @b{Incline}, @b{Cursive} or
1090 @heading Formatting of directory listings 1232 @b{Kursiv}. Therefore it is not a simple problem to map typical font
1091 @end iftex 1233 selection properties to a specific font.
1234
1235 The properties defined by CSS1 are described in the following sections.
1092 @ifinfo 1236 @ifinfo
1093 @center -------------------- 1237 @menu
1094 @center Formatting of directory listings 1238 * font-family:: Groups of fonts.
1095 @center -------------------- 1239 * font-style:: Normal, italic, or oblique?
1240 * font-variant:: Small-caps, etc.
1241 * font-weight:: How bold can you go?
1242 * font-size:: How big is yours?
1243 * font:: Shorthand for all of the above.
1244 @end menu
1096 @end ifinfo 1245 @end ifinfo
1097 @vindex url-use-hypertext-dired 1246
1098 When Emacs-W3 encounters a link to a directory (whether by local file access 1247 @node font-family, font-style, Font Properties, Font Properties
1099 or via @sc{ftp}), it can either create an @sc{html} document on the fly, or use 1248 @subsubsection font-family
1100 @code{dired-mode} to peruse the listing. The variable 1249
1101 @code{url-use-hypertext-dired} controls this behavior. 1250 @multitable @columnfractions .20 .8
1102 1251 @item Supported Values: @tab [[<family-name> | <generic-family>],]* [<family-name> | <generic-family>]
1103 If the value is @code{t}, Emacs-W3 uses @code{directory-files} to list them 1252 @item Initial: @tab User specific
1104 out and transform the directory into a hypertext document, then pass it 1253 @item Applies to: @tab all elements
1105 through the parser like any other document. 1254 @item Inherited: @tab yes
1106 1255 @item Percentage values: @tab N/A
1107 If the value is @code{nil}, just pass the directory off to dired using 1256 @end multitable
1108 @code{find-file}. Using this option loses all the hypertext abilities 1257 The value is a prioritized list of font family names and/or generic
1109 of Emacs-W3, and the users is unable to load documents in the directory 1258 family names. Unlike most other CSS1 properties, values are separated
1110 directly into Emacs-W3 by clicking with the mouse, etc. 1259 by a comma to indicate that they are alternatives:
1111 1260
1112 @iftex 1261 @example
1113 @heading Formatting of gopher directories 1262 BODY @{ font-family: gill, helvetica, sans-serif @}
1114 @end iftex 1263 @end example
1264
1265 There are two types of list values:
1266
1267 @table @b
1268 @item <family-name>
1269 The name of a font family of choice. In the last example, "gill" and
1270 "helvetica" are font families.
1271 @item <generic-family>
1272 In the example above, the last value is a generic family name. The
1273 following generic families are defined:
1274 @itemize @bullet
1275 @item
1276 'serif' (e.g. Times)
1277 @item
1278 'sans-serif' (e.g. Helvetica)
1279 @item
1280 'cursive' (e.g. Zapf-Chancery)
1281 @item
1282 'fantasy' (e.g. Western)
1283 @item
1284 'monospace' (e.g. Courier)
1285 @end itemize
1286 @end table
1287
1288 Style sheet designers are encouraged to offer a generic font family as a
1289 last alternative.
1290
1291 Font names containing whitespace should be quoted:
1292
1293 @example
1294 BODY @{ font-family: "new century schoolbook", serif @}
1295
1296 <BODY STYLE="font-family: 'My own font', fantasy">
1297 @end example
1298
1299 If quoting is omitted, any whitespace characters before and after the
1300 font name are ignored and any sequence of whitespace characters inside
1301 the font name is converted to a single space.
1302
1303 @node font-style, font-variant, font-family, Font Properties
1304 @subsubsection font-style
1305
1306 @multitable @columnfractions .2 .8
1307 @item Supported Values: @tab normal | italic | oblique
1308 @item Initial: @tab normal
1309 @item Applies to: @tab all elements
1310 @item Inherited: @tab yes
1311 @item Percentage values: @tab N/A
1312 @end multitable
1313
1314 The 'font-style' property selects between normal (sometimes referred to
1315 as "roman" or "upright"), italic and oblique faces within a font family.
1316
1317 A value of 'normal' selects a font that is classified as 'normal' in the
1318 UA's font database, while 'oblique' selects a font that is labeled
1319 'oblique'. A value of 'italic' selects a font that is labeled 'italic',
1320 or, if that is not available, one labeled 'oblique'.
1321
1322 The font that is labeled 'oblique' in the UA's font database may
1323 actually have been generated by electronically slanting a normal font.
1324
1325 Fonts with Oblique, Slanted or Incline in their names will typically be
1326 labeled 'oblique' in the UA's font database. Fonts with Italic, Cursive
1327 or Kursiv in their names will typically be labeled 'italic'.
1328
1329 @example
1330 H1, H2, H3 @{ font-style: italic @}
1331 H1 EM @{ font-style: normal @}
1332 @end example
1333
1334 In the example above, emphasized text within 'H1' will appear in a
1335 normal face.
1336
1337 @node font-variant, font-weight, font-style, Font Properties
1338 @subsubsection font-variant
1339
1340 @multitable @columnfractions .2 .8
1341 @item Value: @tab normal | small-caps
1342 @item Initial: @tab normal
1343 @item Applies to: @tab all elements
1344 @item Inherited: @tab yes
1345 @item Percentage values: @tab N/A
1346 @end multitable
1347
1348 Another type of variation within a font family is the small-caps. In a
1349 small-caps font the lower case letters look similar to the uppercase
1350 ones, but in a smaller size and with slightly different proportions. The
1351 'font-variant' property selects that font.
1352
1353 A value of 'normal' selects a font that is not a small-caps font,
1354 'small-caps' selects a small-caps font. It is acceptable (but not
1355 required) in CSS1 if the small-caps font is a created by taking a normal
1356 font and replacing the lower case letters by scaled uppercase
1357 characters. As a last resort, uppercase letters will be used as
1358 replacement for a small-caps font.
1359
1360 The following example results in an 'H3' element in small-caps, with
1361 emphasized words in oblique small-caps:
1362
1363 @example
1364 H3 @{ font-variant: small-caps @}
1365 EM @{ font-style: oblique @}
1366 @end example
1367
1368 There may be other variants in the font family as well, such as fonts
1369 with old-style numerals, small-caps numerals, condensed or expanded
1370 letters, etc. CSS1 has no properties that select those.
1371
1372 @node font-weight, font-size, font-variant, Font Properties
1373 @subsubsection font-weight
1374
1375 @multitable @columnfractions .2 .8
1376 @item Supported Values: @tab normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
1377 @item Unsupported Values: @tab bolder | lighter
1378 @item Initial: @tab normal
1379 @item Applies to: @tab all elements
1380 @item Inherited: @tab yes
1381 @item Percentage values: @tab N/A
1382 @end multitable
1383
1384 The 'font-weight' property selects the weight of the font. The values
1385 '100' to '900' form an ordered sequence, where each number indicates a
1386 weight that is at least as dark as its predecessor. The keyword 'normal'
1387 is synonymous with '400', and 'bold' is synonymous with '700'. Keywords
1388 other than 'normal' and 'bold' have been shown to be often confused with
1389 font names and a numerical scale was therefore chosen for the 9-value
1390 list.
1391
1392 @example
1393 P @{ font-weight: normal @} /* 400 */
1394 H1 @{ font-weight: 700 @} /* bold */
1395 @end example
1396
1397 The 'bolder' and 'lighter' values select font weights that are relative
1398 to the weight inherited from the parent:
1399
1400 @example
1401 STRONG @{ font-weight: bolder @}
1402 @end example
1403
1404 There is no guarantee that there will be a darker face for each of the
1405 'font-weight' values; for example, some fonts may have only a normal and
1406 a bold face, others may have eight different face weights. There is no
1407 guarantee on how a UA will map font faces within a family to weight
1408 values. The only guarantee is that a face of a given value will be no
1409 less dark than the faces of lighter values.
1410
1411 @node font-size, font, font-weight, Font Properties
1412 @subsubsection font-size
1413
1414 @multitable @columnfractions .2 .8
1415 @item Supported Values: @tab <absolute-size> | <length>
1416 @item Unsupported Values: @tab <percentage> | <relative-size>
1417 @item Initial: @tab medium
1418 @item Applies to: @tab all elements
1419 @item Inherited: @tab yes
1420 @item Percentage values: @tab relative to parent element's font size
1421 @end multitable
1422
1423 @table @b
1424 @item <absolute-size>
1425 An <absolute-size> keyword is an index to a table of font sizes computed
1426 and kept by the UA. Possible values are:
1427 @itemize @bullet
1428 @item
1429 xx-small
1430 @item
1431 x-small
1432 @item
1433 small
1434 @item
1435 medium
1436 @item
1437 large
1438 @item
1439 x-large
1440 @item
1441 xx-large
1442 @end itemize
1443
1444 On a computer screen a scaling factor of 1.5 is suggested between
1445 adjacent indexes; if the 'medium' font is 10pt, the 'large' font could
1446 be 15pt. Different media may need different scaling factors. Also, the
1447 UA should take the quality and availability of fonts into account when
1448 computing the table. The table may be different from one font family to
1449 another.
1450 @item <relative-size>
1451 A <relative-size> keyword is interpreted relative to the table of font
1452 sizes and the font size of the parent element. Possible values are
1453 @b{larger} or @b{smaller}. For example, if the parent element has a font
1454 size of 'medium', a value of 'larger' will make the font size of the
1455 current element be 'large'. If the parent element's size is not close to
1456 a table entry, the UA is free to interpolate between table entries or
1457 round off to the closest one. The UA may have to extrapolate table
1458 values if the numerical value goes beyond the keywords.
1459 @end table
1460
1461 Length and percentage values should not take the font size table into
1462 account when calculating the font size of the element.
1463
1464 Negative values are not allowed.
1465
1466 On all other properties, 'em' and 'ex' length values refer to the font
1467 size of the current element. On the 'font-size' property, these length
1468 units refer to the font size of the parent element.
1469
1470 Note that an application may reinterpret an explicit size, depending on
1471 the context. E.g., inside a VR scene a font may get a different size
1472 because of perspective distortion.
1473
1474 Examples:
1475
1476 @example
1477 P @{ font-size: 12pt; @}
1478 BLOCKQUOTE @{ font-size: larger @}
1479 EM @{ font-size: 150% @}
1480 EM @{ font-size: 1.5em @}
1481 @end example
1482
1483 If the suggested scaling factor of 1.5 is used, the last three
1484 declarations are identical.
1485
1486 @node font, Colors and Backgrounds, font-size, Font Properties
1487 @subsubsection font
1488
1489 @multitable @columnfractions .2 .8
1490 @item Value: @tab [ <font-style> || <font-variant> || <font-weight> ]? <font-size> [ / <line-height> ]? <font-family>
1491 @item Initial: @tab not defined for shorthand properties
1492 @item Applies to: @tab all elements
1493 @item Inherited: @tab yes
1494 @item Percentage values: @tab allowed on <font-size> and <line-height>
1495 @end multitable
1496 The 'font' property is a shorthand property for setting 'font-style'
1497 'font-variant' 'font-weight' 'font-size', 'line-height' and
1498 'font-family' at the same place in the style sheet. The syntax of this
1499 property is based on a traditional typographical shorthand notation to
1500 set multiple properties related to fonts.
1501
1502 For a definition of allowed and initial values, see the previously
1503 defined properties. Properties for which no values are given are set to
1504 their initial value.
1505
1506 @example
1507 P @{ font: 12pt/14pt sans-serif @}
1508 P @{ font: 80% sans-serif @}
1509 P @{ font: x-large/110% "new century schoolbook", serif @}
1510 P @{ font: bold italic large Palatino, serif @}
1511 P @{ font: normal small-caps 120%/120% fantasy @}
1512 @end example
1513
1514 In the second rule, the font size percentage value ('80%') refers to the
1515 font size of the parent element. In the third rule, the line height
1516 percentage refers to the font size of the element itself.
1517
1518 In the first three rules above, the 'font-style', 'font-variant' and
1519 'font-weight' are not explicitly mentioned, which means they are all
1520 three set to their initial value ('normal'). The fourth rule sets the
1521 'font-weight' to 'bold', the 'font-style' to 'italic' and implicitly
1522 sets 'font-variant' to 'normal'.
1523
1524 The fifth rule sets the 'font-variant' ('small-caps'), the 'font-size'
1525 (120% of the parent's font), the 'line-height' (120% times the font
1526 size) and the 'font-family' ('fantasy'). It follows that the keyword
1527 'normal' applies to the two remaining properties: 'font-style' and
1528 'font-weight'.
1529
1530 @node Colors and Backgrounds, color, font, Properties
1531 @subsection Colors and Backgrounds
1532 These properties describe the color (often called foreground color) and
1533 background of an element (i.e. the surface onto which the content is
1534 rendered). One can set a background color and/or a background image. The
1535 position of the image, if/how it is repeated, and whether it is fixed or
1536 scrolled relative to the canvas can also be set.
1537
1538 The 'color' property inherits normally. The background properties do not
1539 inherit, but the parent element's background will shine through by
1540 default because of the initial 'transparent' value on
1541 'background-color'.
1542
1543 NOTE: Currently, Emacs-W3 can only show background images under XEmacs.
1544 Emacs 19 doesn't have the support in its display code yet.
1545
1115 @ifinfo 1546 @ifinfo
1116 @center -------------------- 1547 @menu
1117 @center Formatting of gopher directories 1548 * color:: Foreground colors.
1118 @center -------------------- 1549 * background-color:: Background colors.
1550 * background-image:: Background images.
1551 * background-repeat:: Controlling repeating of background images.
1552 * background-attachment:: Where background images are drawn.
1553 * background-position:: Where background images are drawn.
1554 * background:: Shorthand for all background properties.
1555 @end menu
1119 @end ifinfo 1556 @end ifinfo
1120 @vindex w3-use-hypertext-gopher 1557
1121 @cindex Gopher+ 1558 @node color, background-color, Colors and Backgrounds, Colors and Backgrounds
1122 @cindex ASK blocks 1559 @subsubsection color
1123 There are two different ways of viewing gopher links. The built-in 1560 @multitable @columnfractions .2 .8
1124 support that converts gopher directories into @sc{html}, or the 1561 @item Value: @tab <color>
1125 @file{gopher.el} package by Scott Snyder (@i{snyder@@fnald0.fnal.gov}). 1562 @item Initial: @tab User specific
1126 The variable that controls this is @code{w3-use-hypertext-gopher}. If 1563 @item Applies to: @tab all elements
1127 set to @code{nil}, then @file{gopher.el} is used. Any other value 1564 @item Inherited: @tab yes
1128 causes Emacs-W3 to use its internal gopher support. If using 1565 @item Percentage values: @tab N/A
1129 @file{gopher.el}, all the hypertext capabilities of Emacs-W3 are lost. 1566 @end multitable
1130 All the functionality of @file{gopher.el} is now available in the 1567
1131 hypertext version, and the hypertext version supports Gopher+ and ASK 1568 This property describes the text color of an element (often referred to
1132 blocks. 1569 as the foreground color). There are different ways to specify red:
1133 1570
1134 @vindex w3-gopher-labels 1571 @example
1135 The main way to control the display of gopher directories is by the 1572 EM @{ color: red @} /* natural language */
1136 variable @code{w3-gopher-labels}. This variable controls the text that 1573 EM @{ color: rgb(255,0,0) @} /* RGB range 0-255 */
1137 is inserted at the front of each item. This is an assoc list of gopher 1574 @end example
1138 types (as one character strings), and a string to insert just after the 1575
1139 list item. All the normal gopher types are defined. Entries should be 1576 See @ref{Color Units} for a description of possible color values.
1140 similar to: @samp{("0" . "(TXT)")}. I have tried to keep all the tags 1577
1141 to three characters plus two parentheses. 1578 @node background-color, background-image, color, Colors and Backgrounds
1142 @iftex 1579 @subsubsection background-color
1143 @heading Creating a horizontal rule 1580 @multitable @columnfractions .2 .8
1144 @end iftex 1581 @item Value: @tab <color> | transparent
1582 @item Initial: @tab transparent
1583 @item Applies to: @tab all elements
1584 @item Inherited: @tab no
1585 @item Percentage values: @tab N/A
1586 @end multitable
1587
1588 This property sets the background color of an element.
1589
1590 @example
1591 H1 @{ background-color: #F00 @}
1592 @end example
1593
1594 @node background-image, background-repeat, background-color, Colors and Backgrounds
1595 @subsubsection background-image
1596 @multitable @columnfractions .2 .8
1597 @item Value: @tab <url> | none
1598 @item Initial: @tab none
1599 @item Applies to: @tab all elements
1600 @item Inherited: @tab no
1601 @item Percentage values: @tab N/A
1602 @end multitable
1603
1604 This property sets the background image of an element. When setting a
1605 background image, one should also set a background color that will be
1606 used when the image is unavailable. When the image is available, it is
1607 overlaid on top of the background color.
1608
1609 @example
1610 BODY @{ background-image: url(marble.gif) @}
1611 P @{ background-image: none @}
1612 @end example
1613
1614 @node background-repeat, background-attachment, background-image, Colors and Backgrounds
1615 @subsubsection background-repeat
1616 This property is not supported at all under Emacs-W3.
1617
1618 @node background-attachment, background-position, background-repeat, Colors and Backgrounds
1619 @subsubsection background-attachment
1620 This property is not supported at all under Emacs-W3.
1621
1622 @node background-position, background, background-attachment, Colors and Backgrounds
1623 @subsubsection background-position
1624 This property is not supported at all under Emacs-W3.
1625
1626 @node background, Text Properties, background-position, Colors and Backgrounds
1627 @subsubsection background
1628 @multitable @columnfractions .2 .8
1629 @item Value: @tab <background-color> || <background-image> || <background-repeat> || <background-attachment> || <background-position>
1630 @item Initial: @tab not defined for shorthand properties
1631 @item Applies to: @tab all elements
1632 @item Inherited: @tab no
1633 @item Percentage values: @tab allowed on <background-position>
1634 @end multitable
1635
1636 The 'background' property is a shorthand property for setting the
1637 individual background properties (i.e., 'background-color',
1638 'background-image', 'background-repeat', 'background-attachment' and
1639 'background-position') at the same place in the style sheet.
1640
1641 Possible values on the 'background' properties are the set of all
1642 possible values on the individual properties.
1643
1644 @example
1645 BODY @{ background: red @}
1646 P @{ background: url(chess.png) gray 50% repeat fixed @}
1647 @end example
1648
1649 The 'background' property always sets all the individual background
1650 properties. In the first rule of the above example, only a value for
1651 'background-color' has been given and the other individual properties
1652 are set to their initial value. In the second rule, all individual
1653 properties have been specified.
1654
1655 @node Text Properties, word-spacing, background, Properties
1656 @subsection Text Properties
1657
1145 @ifinfo 1658 @ifinfo
1146 @center -------------------- 1659 @menu
1147 @center Creating a horizontal rule 1660 * word-spacing::
1148 @center -------------------- 1661 * letter-spacing::
1662 * text-decoration::
1663 * vertical-align::
1664 * text-transform::
1665 * text-align::
1666 * text-indent::
1667 * line-height::
1668 @end menu
1149 @end ifinfo 1669 @end ifinfo
1150 @vindex w3-horizontal-rule-char 1670
1151 Horizontal rules (@b{<HR>} tags in @sc{html}[+]) are used to separate chunks 1671 @node word-spacing, letter-spacing, Text Properties, Text Properties
1152 of a document, and is meant to be rendered as a solid line across the 1672 @subsubsection word-spacing
1153 page. Some terminals display characters differently, so the variable 1673 @multitable @columnfractions .2 .8
1154 @code{w3-horizontal-rule-char} controls which character is used to draw 1674 @end multitable
1155 a horizontal bar. This variable must be the ASCII value of the 1675
1156 character, @b{not a string}. The variable is passed through 1676 @node letter-spacing, text-decoration, word-spacing, Text Properties
1157 @code{make-string} whenever a horizontal rule of a certain width is 1677 @subsubsection letter-spacing
1158 necessary. 1678 @multitable @columnfractions .2 .8
1159 1679 @end multitable
1160 @node Character based terminals, Graphics workstations, General Formatting, Stylesheets 1680
1161 @section On character based terminals 1681 @node text-decoration, vertical-align, letter-spacing , Text Properties
1162 @vindex w3-delimit-emphasis 1682 @subsubsection text-decoration
1163 On character based terminals, there is no easy way to show that a 1683 @multitable @columnfractions .2 .8
1164 certain range of text is in bold or italics. If the variable 1684 @end multitable
1165 @code{w3-delimit-emphasis} is non-@code{nil}, then Emacs-W3 can insert 1685
1166 characters before and after character formatting commands in @sc{html} 1686 @node vertical-align, text-transform, text-decoration, Text Properties
1167 documents. The defaul value of @code{w3-delimit-emphasis} is 1687 @subsubsection vertical-align
1168 automatically set based on the type of window system and version of 1688 @multitable @columnfractions .2 .8
1169 Emacs being used. 1689 @end multitable
1170 1690
1171 @vindex w3-header-chars-assoc 1691 @node text-transform, text-align, vertical-align, Text Properties
1172 :: WORK :: 1692 @subsubsection text-transform
1173 1693 @multitable @columnfractions .2 .8
1174 @findex w3-upcase-region 1694 @end multitable
1175 @code{w3-header-chars-assoc} is an assoc list of header tags and a list 1695
1176 of formatting instructions. The @code{car} of the list is the level of 1696 @node text-align, text-indent, text-transform, Text Properties
1177 the header (1--6). The rest of the list should contain three items. 1697 @subsubsection text-align
1178 The first item is text to insert before the header. The second item is 1698 @multitable @columnfractions .2 .8
1179 text to insert after the header. Both should have reserved characters 1699 @end multitable
1180 converted to their @sc{html}[+] entity definitions. The third item is a 1700
1181 function to call on the area the header is in. This function is called 1701 @node text-indent, line-height, text-align, Text Properties
1182 with arguments specifying the start and ending character positions of 1702 @subsubsection
1183 the header. The starting point is always first. To convert a region to 1703 @multitable @columnfractions .2 .8
1184 upper case, please use @code{w3-upcase-region} instead of 1704 @end multitable
1185 @code{upcase-region}, so that entities are converted properly. 1705
1186 1706 @node line-height, Box Properties, text-indent, Text Properties
1187 @node Graphics workstations, Inlined images, Character based terminals, Stylesheets 1707 @subsubsection
1188 @section With graphics workstations 1708 @multitable @columnfractions .2 .8
1189 Starting with the first public release of version 2.3.0, all formatting 1709 @end multitable
1190 is controlled by the use of stylesheets. 1710
1191 1711 @node Box Properties, Classification, line-height, Properties
1192 :: WORK :: Graphic workstation stuff - redo for stylesheets 1712 @subsection Box Properties
1193 1713 @multitable @columnfractions .2 .8
1194 @node Inlined images, , Graphics workstations, Stylesheets 1714 @end multitable
1195 @cindex Inlined images 1715
1196 @cindex Images 1716 @node Classification, Media Selection, Box Properties, Properties
1197 @cindex Movies 1717 @subsection Classification
1198 @cindex Inlined MPEGs 1718 @multitable @columnfractions .2 .8
1199 @cindex MPEGs 1719 @end multitable
1200 When running in Lucid Emacs 19.10 or XEmacs 19.11 and higher, Emacs-W3 can 1720
1201 display inlined images and MPEG movies. There are several variables that 1721 @node Media Selection, Speech Properties, Classification, Properties
1202 control how and when the images are displayed. 1722 @subsection Media Selection
1203 1723 @multitable @columnfractions .2 .8
1204 @cindex Netpbm 1724 @end multitable
1205 @cindex Pbmplus 1725
1206 @vindex w3-graphic-converter-alist 1726 @node Speech Properties, Units, Media Selection, Properties
1207 Since Lucid/XEmacs only natively understands XPixmaps and XBitmaps, GIFs 1727 @subsection Speech Properties
1208 and other image types must first be converted to one of these formats. 1728 @multitable @columnfractions .2 .8
1209 To do this, the @b{netpbm utilities}@footnote{Available via anonymous 1729 @end multitable
1210 ftp from ftp.x.org:/R5contrib/netpbm-1mar1994.tar.gz, and most large ftp 1730
1211 sites.} programs are normally used. This is a suite of freeware image 1731 @node Units, Length Units, Speech Properties, Stylesheets
1212 conversion tools. The variable @code{w3-graphic-converter-alist} 1732 @section Units
1213 controls how each image type is converted. This is an assoc list, keyed 1733
1214 on the @sc{mime} content-type. The @code{car} is the content-type, and 1734 @ifinfo
1215 the @code{cdr} is a string suitable to pass to @code{format}. A %s in 1735 @menu
1216 this string will be replaced with a converter from the ppm image format 1736 * Length Units::
1217 to an XPixmap (or XBitmap, if being run on a monochrome display). By 1737 * Percentage Units::
1218 default, the Emacs-W3 browser has converters for: 1738 * Color Units::
1219 1739 * URLs::
1220 @enumerate 1740 * Angle Units::
1221 @item 1741 * Time Units::
1222 image/x-xbitmap 1742 @end menu
1223 @item 1743 @end ifinfo
1224 image/xbitmap 1744
1225 @item 1745 @node Length Units, Percentage Units, Units, Units
1226 image/xbm 1746 @subsection Length Units
1227 @item 1747
1228 image/gif 1748 @node Percentage Units, Color Units, Length Units, Units
1229 @item 1749 @subsection Percentage Units
1230 image/jpeg 1750
1231 @item 1751 @node Color Units, URLs, Percentage Units, Units
1232 image/x-fax 1752 @subsection color Units
1233 @item 1753
1234 image/x-raster 1754 @node URLs, Angle Units, Color Units, Units
1235 @item 1755 @subsection URLs
1236 image/windowdump 1756
1237 @item 1757 @node Angle Units, Time Units, URLs, Units
1238 image/x-icon 1758 @subsection Angle Units
1239 @item 1759
1240 image/portable-graymap 1760 @node Time Units, Supported URLs, Angle Units, Units
1241 @item 1761 @subsection Time Units
1242 image/portable-pixmap 1762
1243 @item 1763 @node Supported URLs, MIME Support, Time Units, Top
1244 image/x-pixmap 1764 @chapter Supported URLs
1245 @item 1765
1246 image/x-xpixmap 1766 ::WORK:: List supported URL types, specific RFCs, etc.
1247 @item 1767
1248 image/pict 1768 @node MIME Support, Adding MIME types based on file extensions, Supported URLs, Top
1249 @item
1250 image/x-macpaint
1251 @item
1252 image/x-targa
1253 @item
1254 image/tiff
1255 @end enumerate
1256
1257 @vindex w3-color-max-blue
1258 @vindex w3-color-max-green
1259 @vindex w3-color-max-red
1260 @vindex w3-color-use-reducing
1261 @vindex w3-color-filter
1262 Since most displays are (sadly) not 24-bit, Emacs-W3 can automatically
1263 dither an image, so that it does not fill up the application' colormap too
1264 quickly. If @code{w3-color-use-reducing} is non-@code{nil}, then the
1265 images will use reduced colors. If @code{w3-color-filter} is @code{eq} to
1266 @code{'ppmquant}, then the ppmquant program will be used. If @code{eq} to
1267 @code{'ppmdither}, then the ppmdither program will be used. The ppmdither
1268 program tends to give better results. The values of
1269 @code{w3-color-max-red}, @code{w3-color-max-blue}, and
1270 @code{w3-color-max-green} control how many colors the inlined images can
1271 use. If using ppmquant, then the product of these three variables is used
1272 as the maximum number of colors per image. If using ppmdither, then only
1273 the set number of color cells can be allocated per image. See the man
1274 pages for ppmdither and ppmquant for more information on how the dithering
1275 is actually done. @code{w3-color-filter} may also be a string, specifying
1276 exactly what external filter to use. An example is: @samp{ppmquant -fs
1277 -map ~/pixmaps/colormap.ppm}.
1278
1279 @cindex MPEGs
1280 @cindex Inlined animations
1281 When running in XEmacs 19.11 or XEmacs 19.12, Emacs-W3 can insert an
1282 MPEG movie in the middle of a buffer.
1283
1284 :: WORK :: Need a pointer to the new EMBED Internet Draft ::
1285
1286 The basic syntax is:
1287 @example
1288 <embed href="somevideo.mpg" type="video/mpeg">
1289 @end example
1290
1291 @vindex w3-mpeg-args
1292 @vindex w3-mpeg-program
1293 This requires a special version of the standard @file{mpeg_play} mpeg
1294 player. Patches against the 2.0 version are available at
1295 ftp://ftp.cs.indiana.edu/pub/elisp/w3/mpeg_patch. The variable
1296 @code{w3-mpeg-program} should point to this executable, and
1297 @code{w3-mpeg-args} should be a list of any additional arguments to be
1298 passed to the player. By default, this includes @var{-loop}, so the
1299 mpeg plays continuously.
1300
1301 @cindex Delaying inlined images
1302 @cindex Delaying inlined animations
1303 @vindex w3-delay-image-loads
1304 @vindex w3-delay-mpeg-loads
1305 Because images and movies can take up an incredible amount of bandwidth,
1306 it is useful to be able to control whether they are loaded or not. By
1307 default, images and movies are loaded automatically, but the variables
1308 @code{w3-delay-image-loads} and @code{w3-delay-mpeg-loads} control this.
1309 If set to non-@code{nil}, then the images or movies are not
1310 loaded until explicitly requested by the user.
1311
1312 @cindex Loading delayed images
1313 @cindex Loading delayed movies
1314 @findex w3-load-delayed-images
1315 @findex w3-load-delayed-mpegs
1316 To load any delayed images, use the function
1317 @code{w3-load-delayed-images}. Its counterpart for delayed movies is
1318 @code{w3-load-delayed-mpegs}
1319
1320 @node MIME Support, Adding MIME types based on file extensions, , Top
1321 @chapter MIME Support 1769 @chapter MIME Support
1322 @sc{mime} is an emerging standard for multimedia mail. It offers a very 1770 @sc{mime} is an emerging standard for multimedia mail. It offers a very
1323 flexible typing mechanism. The type of a file or message is specified 1771 flexible typing mechanism. The type of a file or message is specified
1324 in two parts, separated by a '/'. The first part is the general 1772 in two parts, separated by a '/'. The first part is the general
1325 category of the data (text, application, image, etc.). The second part 1773 category of the data (text, application, image, etc.). The second part
1960 for the better). This is a list of the things that are being worked on 2408 for the better). This is a list of the things that are being worked on
1961 right now. 2409 right now.
1962 2410
1963 :: WORK :: Revamp the todo list 2411 :: WORK :: Revamp the todo list
1964 2412
1965 @node Reporting Bugs, Installing SSL, Future Directions, Top 2413 @node Reporting Bugs, Dealing with Firewalls, Future Directions, Top
1966 @appendix Reporting Bugs 2414 @appendix Reporting Bugs
1967 @cindex Reporting Bugs 2415 @cindex Reporting Bugs
1968 @cindex Bugs 2416 @cindex Bugs
1969 @cindex Contacting the author 2417 @cindex Contacting the author
1970 2418
2005 odds are I will have no clue what didn't work, much less what that was 2453 odds are I will have no clue what didn't work, much less what that was
2006 trying to fix in the first place. It will be much quicker and less 2454 trying to fix in the first place. It will be much quicker and less
2007 painful if I don't have to waste a round-trip email exchange saying 2455 painful if I don't have to waste a round-trip email exchange saying
2008 'what are you talking about'. 2456 'what are you talking about'.
2009 2457
2010 @node Installing SSL, Mailcap Files, Reporting Bugs, Top 2458 @node Dealing with Firewalls, Proxy Gateways, Reporting Bugs, Top
2459 @appendix Dealing with Firewalls
2460 By default, Emacs can support standard @sc{tcp}/@sc{ip} network
2461 connections on almost all the platforms it runs on (Unix, @sc{vms},
2462 Windows, etc). However, there are several situations where it is not
2463 sufficient.
2464
2465 @table @b
2466 @cindex Firewalls
2467 @item Firewalls
2468 It is becoming more and more common to be behind a firewall or some
2469 other system that restricts your outbound network activity, especially
2470 if you are like me and away from the wonderful world of academia.
2471 Emacs-W3 has several different methods to get around firewalls (not to
2472 worry though - none of them should get you in trouble with the local
2473 @sc{mis} department.)
2474
2475 @item Emacs cannot resolve hostnames.
2476 @cindex Faulty hostname resolvers
2477 @cindex Broken SunOS libc
2478 @cindex Hostname resolution
2479 This happens quite often on SunOS workstations and some ULTRIX machines.
2480 Some C libraries do not include the hostname resolver routines in their
2481 static libraries. If Emacs was linked statically, and was not linked
2482 with the resolver libraries, it wil not be able to get to any machines
2483 off the local network. This is characterized by being able to reach
2484 someplace with a raw ip number, but not its hostname
2485 (@url{http://129.79.254.191/} works, but
2486 @url{http://www.cs.indiana.edu/} doesn't).
2487
2488 The best solution for this problem is to recompile Emacs, making sure to
2489 either link dynamically (if available on your operating system), or
2490 include the @file{-lresolv}.
2491
2492 @cindex url-gateway-broken-resolution
2493 If you do not have the disk space or the appropriate permissions to
2494 recompile Emacs, another alternative is using the @file{nslookup}
2495 program to do hostname resolution. To turn this on, set the variable
2496 @code{url-gateway-broken-resolution} in your @file{~/.emacs} file. This
2497 runs the program specified by @code{url-gateway-nslookup-program} (by
2498 default "@code{nslookup}" to do hostname resolution. This program should
2499 expect a single argument on the command line - the hostname to resolve,
2500 and should produce output similar to the standard Unix @file{nslookup}
2501 program:
2502
2503 @example
2504 Name: www.cs.indiana.ed
2505 Address: 129.79.254.191
2506 @end example
2507
2508 @cindex @sc{term}
2509 @item Using @sc{term} (or @sc{term}-like) Networking Software
2510 @sc{term} @footnote{@sc{term} is a user-level protocol for emulating
2511 @sc{ip} over a serial line. More information is available at
2512 @url{ftp://sunsite.unc.edu/pub/Linux/apps/comm/term}} for slip-like
2513 access to the internet.
2514
2515 @sc{note}: XEmacs and Emacs 19.22 or later have patches to enable native
2516 @sc{term} networking. To enable it, @code{#define TERM} in the
2517 appropriate s/*.h file for the operating system, then change the
2518 @code{SYSTEM_LIBS} definition to include the @file{termnet} library that
2519 comes with the latest versions of @sc{term}.
2520
2521 If you run into any problems with the native @sc{term} networking
2522 support in Emacs or XEmacs, please let @t{wmperry@@cs.indiana.edu} know,
2523 as he is responsible for the original support.
2524 @end table
2525
2526 @vindex url-gateway-local-host-regexp
2527 Emacs-W3 has support for using the gateway mechanism for certain
2528 domains, and directly connecting to others. The variable
2529 @code{url-gateway-local-host-regexp} controls this behaviour. This is a
2530 regular expression @footnote{Please see the full Emacs distribution for
2531 a description of regular expressions} that matches local hosts that do
2532 not require the use of a gateway. If @code{nil}, then all connections
2533 are made through the gateway.
2534
2535 @vindex url-gateway-method
2536 Emacs-W3 supports several methods of getting around gateways. The
2537 variable @code{url-gateway-method} controls which of these methods is
2538 used. This variable can have several values (use these as symbol names,
2539 not strings), ie: @samp{(setq url-gateway-method 'telnet)}. Possible
2540 values are:
2541
2542 @table @dfn
2543 @item telnet
2544 Use this method if you must first telnet and log into a gateway host,
2545 and then run telnet from that host to connect to outside machines.
2546
2547 :: WORK :: document telnet gw variables
2548 This section needs more information, specifically documenting the
2549 following variables. For now, please do @key{C-h v} on the variable for
2550 more information.
2551
2552 @table @code
2553 @item url-gateway-telnet-host
2554 @item url-gateway-telnet-parameters
2555 @item url-gateway-telnet-password-prompt
2556 @item url-gateway-telnet-puser-name
2557 @item url-gateway-prompt-pattern
2558 @end table
2559
2560 @item rlogin
2561 This method is identical to the @code{telnet} method, but uses
2562 @file{rlogin} to log into the remote machine without having to send the
2563 username and password over the wire every time.
2564
2565 :: WORK :: document rlogin gw variables
2566 This section needs more information, specifically documenting the
2567 following variables. For now, please do @key{C-h v} on the variable for
2568 more information.
2569
2570 @table @code
2571 @item url-gateway-rlogin-host
2572 @item url-gateway-rlogin-parameters
2573 @item url-gateway-rlogin-user-name
2574 @item url-gateway-prompt-pattern
2575 @end table
2576
2577 @item tcp
2578 Masanobu UMEDA (@i{umerin@@mse.kyutech.ac.jp}) has written a very small
2579 application that you can run in a subprocess to do the network
2580 connections.
2581
2582 @item @sc{socks}
2583 Use if the firewall has a @sc{socks} gateway running on it.
2584
2585 :: WORK :: document socks variables
2586 This section needs more information, specifically documenting the
2587 following variables. For now, please do @key{C-h v} on the variable for
2588 more information.
2589
2590 @table @code
2591 @item socks-host
2592 @item socks-password
2593 @item socks-username
2594 @item socks-port
2595 @item socks-timeout
2596 @end table
2597
2598 @c @item ssl
2599 @c This probably shouldn't be documented
2600
2601 @item native
2602 This means that Emacs-W3 should use the builtin networking code of
2603 Emacs. This should be used only if there is no firewall, or the Emacs
2604 source has already been hacked to get around the firewall.
2605 @end table
2606
2607 Emacs-W3 should now be able to get outside the local network. If none
2608 of this makes sense, its probably my fault. Please check with the
2609 network administrators to see if they have a program that does most of
2610 this already, since somebody somewhere at the company has probably been
2611 through something similar to this before, and would be much more
2612 helpful/knowledgeable about the local setup than I would be. But feel
2613 free to mail me as a last resort.
2614
2615 @node Proxy Gateways, Installing SSL, Dealing with Firewalls, Top
2616 @appendix Proxy Gateways
2617 @vindex url-proxy-services
2618 @cindex Proxy Servers
2619 @cindex Proxies
2620 @cindex Proxies, environment variables
2621 @cindex HTTP Proxy
2622
2623 In late January 1993, Kevin Altis and Lou Montulli proposed and
2624 implemented a new proxy service. This service requires the use of
2625 environment variables to specify a gateway server/port # to send
2626 protocol requests to. Each protocol (@sc{http}, @sc{wais}, gopher,
2627 @sc{ftp}, etc.) can have a different gateway server. The environment
2628 variables are @code{PROTOCOL}_proxy, where @code{PROTOCOL} is one of the
2629 supported network protocols (gopher, file, @sc{http}, @sc{ftp}, etc.)
2630
2631 @cindex No Proxy
2632 @cindex Proxies, exclusion lists
2633 @vindex NO_PROXY
2634 For companies with internal intranets, it will usually be helpful to
2635 define a list of hosts that should be contacted directly, @b{not} sent
2636 through the proxy. The @code{NO_PROXY} environment variable controls
2637 what hosts are able to be contacted directly. This should be a comma
2638 separated list of hostnames, domain names, or a mixture of both.
2639 Asterisks can be used as a wildcard. For example:
2640
2641 @example
2642 NO_PROXY=*.aventail.com,home.com,*.seanet.com
2643 @end example
2644
2645 tells Emacs-W3 to contact all machines in the @b{aventail.com} and
2646 @b{seanet.com} domains directly, as well as the machine named
2647 @b{home.com}.
2648
2649 @vindex url-proxy-services
2650 @cindex Proxies, setting from lisp
2651 For those adventurous souls who enjoy writing regular expressions, all
2652 the proxy settings can be manipulated from Emacs-Lisp. The variable
2653 @code{url-proxy-services} controls this. This is an assoc list, keyed
2654 on the protocol type (@sc{http}, gopher, etc) in all lowercase. The
2655 @code{cdr} of each entry should be the fully-specified @sc{url} of the proxy
2656 server to contact, or, in the case of the special "no_proxy" entry, a
2657 regular expression that matches any hostnames that should be contacted
2658 directly.
2659
2660 @example
2661 (setq url-proxy-services '(("http" . "http://proxy.aventail.com/")
2662 ("no_proxy" . "^.*\\(aventail\\|seanet\\)\.com")))
2663 @end example
2664
2665 @node Installing SSL, Mailcap Files, Proxy Gateways, Top
2011 @appendix Installing SSL 2666 @appendix Installing SSL
2012 @cindex HTTP/1.0 Authentication 2667 @cindex HTTP/1.0 Authentication
2013 @cindex Secure Sockets Layer 2668 @cindex Secure Sockets Layer
2014 @cindex SSL 2669 @cindex SSL
2015 @cindex Gag Puke Retch 2670 @cindex Gag Puke Retch
2041 2696
2042 This should be all the configuration necessary. In the future, I will 2697 This should be all the configuration necessary. In the future, I will
2043 be distributing a set of patches to Emacs 19.xx and XEmacs 19.xx to 2698 be distributing a set of patches to Emacs 19.xx and XEmacs 19.xx to
2044 SSL-enable them, for the sake of speed. 2699 SSL-enable them, for the sake of speed.
2045 2700
2046 @node Mailcap Files, General Index, Installing SSL, Top 2701 @node Mailcap Files, Down with DoubleClick, Installing SSL, Top
2047 @appendix Mailcap Files 2702 @appendix Mailcap Files
2048 NCSA Mosaic and almost all other WWW browsers rely on a separate file 2703 NCSA Mosaic and almost all other WWW browsers rely on a separate file
2049 for mapping MIME types to external viewing programs. This takes some of 2704 for mapping MIME types to external viewing programs. This takes some of
2050 the burden off of browser developers, so each browser does not have to 2705 the burden off of browser developers, so each browser does not have to
2051 support all image formats, or postscript, etc. Instead of having the 2706 support all image formats, or postscript, etc. Instead of having the
2175 simply ignore all such unrecognized fields to permit such extensions, 2830 simply ignore all such unrecognized fields to permit such extensions,
2176 some of which might be standardized in a future version of this 2831 some of which might be standardized in a future version of this
2177 document. 2832 document.
2178 @end itemize 2833 @end itemize
2179 2834
2180 @node General Index, Key Index, Mailcap Files, Top 2835 @node Down with DoubleClick, General Index, Mailcap Files, Top
2836 @appendix Down with DoubleClick
2837 :: WORK :: Document why doubleclick is evil
2838 :: WORK :: Document how you can never see another ad from them again
2839
2840 @node General Index, Key Index, Down with DoubleClick, Top
2181 @appendix General Index 2841 @appendix General Index
2182 @printindex fn 2842 @printindex fn
2183 @node Key Index, , General Index, Top 2843 @node Key Index, , General Index, Top
2184 @appendix Key Index 2844 @appendix Key Index
2185 @printindex ky 2845 @printindex ky
2186 @contents 2846 @contents
2187 @bye 2847 @bye
2188
2189 @c @ifinfo
2190 @c Here is some more specific information about what languages and
2191 @c protocols Emacs-W3 supports.
2192 @c @menu
2193 @c * Markup Languages Supported:: Markup languages supported by Emacs-W3
2194 @c * Stylesheets:: Stylesheet languages supported by Emacs-W3
2195 @c * Supported Protocols:: Network protocols supported by Emacs-W3
2196 @c @end menu
2197 @c @end ifinfo
2198 @c @node Markup Languages Supported, Stylesheets, Introduction, Introduction
2199 @c @chapter Supported Markup Languages
2200 @c Several different markup languages, and various extensions to those
2201 @c languages, are supported by Emacs-W3.
2202 @c @ifinfo
2203 @c @center ----------
2204 @c @center HTML 2.0
2205 @c @center ----------
2206 @c @end ifinfo
2207 @c @iftex
2208 @c @section HTML 2.0
2209 @c @end iftex
2210 @c @cindex HTML 2.0
2211
2212 @c :: WORK :: Reference to the HTML 2.0 RFC
2213 @c :: WORK :: Basic explanation of HTML, tag structure, etc.
2214
2215 @c @ifinfo
2216 @c @center ----------
2217 @c @center HTML 3.2
2218 @c @center ----------
2219 @c @end ifinfo
2220 @c @iftex
2221 @c @section HTML 3.2
2222 @c @end iftex
2223 @c @cindex HTML 3.2
2224 @c The HTML 3.2 language is an extension of HTML, with a large degree of
2225 @c backward compatibility with HTML 2.0. This basically documents current
2226 @c practice as of January, 1996.
2227
2228 @c @ifinfo
2229 @c @center ----------
2230 @c @center SGML Features
2231 @c @center ----------
2232 @c @end ifinfo
2233 @c @iftex
2234 @c @section SGML Features
2235 @c @end iftex
2236 @c @cindex SGML Features
2237 @c @cindex Entity Definitions
2238 @c @cindex Marked Sections
2239
2240 @c :: WORK :: Document marked sections, SGML features
2241
2242 @c @ifinfo
2243 @c @center ----------
2244 @c @center Extras
2245 @c @center ----------
2246 @c @end ifinfo
2247 @c @iftex
2248 @c @section Extra Markup
2249 @c @end iftex
2250 @c @cindex Easter Eggs
2251 @c @cindex Fluff
2252 @c @cindex Pomp & Circumstance
2253 @c There are several different markup elements that are not officially part
2254 @c of HTML or HTML 3.2 that Emacs-W3 supports. These are either items that
2255 @c were dropped from HTML 3.@var{x} after I had implemented them, things I
2256 @c find just completely hilarious, or experimental parts of HTML that
2257 @c should not be counted as "official" or long lived.
2258 @c @itemize @bullet
2259 @c @item
2260 @c FLAME support. For truly interesting dynamic documents. This is
2261 @c replaced with a random quote from Mr. Angry (see @kbd{M-x flame} for a
2262 @c sample).
2263 @c @item
2264 @c The top ten tags that did not make it into netscape. These tags were
2265 @c posted to the newsgroup comp.infosystems.www.misc by Laura Lemay
2266 @c (@i{lemay@@netcom.com}). Much thanks to her for the humor.
2267 @c @table @b
2268 @c @item <wired>...</wired>
2269 @c Renders the enclosed text in a suitably ugly font/color combination. If
2270 @c no default has been set up by the user, this is the default font, with
2271 @c red text on a yellow background.
2272 @c @item <roach>...</roach>
2273 @c When selected, the enclosed text runs and hides under the nearest
2274 @c window. OR, giggles a lot and demands nachos, depending on the
2275 @c definition of "roach." (the formal definition, of course, to be
2276 @c determined by the Official Honorary Internet Standards Committee For
2277 @c Moving Really Slowly.)
2278 @c @item <pinhead>
2279 @c Inserts "zippyisms" into the enclosed text. Perfect for those professional
2280 @c documents. This is sure to be a favorite of mine!
2281 @c @item <secret>...</secret>
2282 @c Must use secret spy decoder glasses (available direct from Netscape for
2283 @c a reasonable fee) in order to read the enclosed text. Can also be read
2284 @c by holding the computer in front of a full moon during the autumn
2285 @c solstice.
2286
2287 @c In Emacs-W3, this displays the text using rot13 encoding.
2288 @c @item <hype>
2289 @c Causes Marc Andreesen to magically appear and grant an interview (wanted
2290 @c or not). Please use this tag sparingly.
2291 @c @item <peek>....</peek>
2292 @c @item <poke>...</poke>
2293 @c Need more control over screen layout in HTML? Well, here ya go.
2294 @c n
2295 @c Actually, <peek> could almost be considered useful. The VARIABLE
2296 @c attribute can be used to insert the value of an emacs variable into the
2297 @c current document. Things like 'Welcome to my page, <peek
2298 @c variable=user-mail-address>' can be useful in spreading fear,
2299 @c uncertainty, and doubt among users.
2300 @c @item <yogsothoth>
2301 @c @cindex Gates Bill
2302 @c @cindex Yogsothoth
2303 @c Summons the elder gods to suck away your immortal soul. Or Bill Gates,
2304 @c if the elder gods are busy. Unpredictable (but amusing) results occur
2305 @c when the <YOGSOTHOTH> and <HYPE> tags are used in close proximity.
2306
2307 @c @item <blink>...</blink>
2308 @c Causes the enclosed text to .... ooops that one made it in.
2309 @c @end table
2310 @c @end itemize
2311
2312 @c @node Stylesheets, Supported Protocols, Markup Languages Supported,Introduction
2313 @c @chapter Stylesheets
2314 @c @cindex Stylesheets
2315 @c @cindex Cascading Style Sheets
2316 @c @cindex Aural Cascading Style Sheets
2317 @c @cindex CSS
2318 @c @cindex DSSSL
2319 @c :: WORK :: Document CSS support
2320 @c CSS Information at http://www.w3.org/pub/WWW/TR/REC-CSS1
2321 @c Style guide at http://www.htmlhelp.com/reference/css/
2322 @c :: WORK :: Document ACSS support
2323 @c ACSS Information at http://www.w3.org/pub/WWW/Style/CSS/Speech/NOTE-ACSS
2324 @c :: WORK :: Document DSSSL support
2325 2848
2326 @c @node Supported Protocols, , Stylesheets, Introduction 2849 @c @node Supported Protocols, , Stylesheets, Introduction
2327 @c @chapter Supported Protocols 2850 @c @chapter Supported Protocols
2328 @c @cindex Network Protocols 2851 @c @cindex Network Protocols
2329 @c @cindex Protocols Supported 2852 @c @cindex Protocols Supported