blob: 67a8c5b6a0865d93210f65828456d838dc505378 [file] [log] [blame]
Guido van Rossumea31ea21997-05-26 05:43:29 +00001"""FAQ Wizard customization module.
Guido van Rossum1677e5b1997-05-26 00:07:18 +00002
Guido van Rossumea31ea21997-05-26 05:43:29 +00003Edit this file to customize the FAQ Wizard. For normal purposes, you
4should only have to change the FAQ section titles and the small group
5of parameters below it.
Guido van Rossum1677e5b1997-05-26 00:07:18 +00006
Guido van Rossumea31ea21997-05-26 05:43:29 +00007"""
Guido van Rossum1677e5b1997-05-26 00:07:18 +00008
9# Titles of FAQ sections
Guido van Rossumea31ea21997-05-26 05:43:29 +000010
Guido van Rossum1677e5b1997-05-26 00:07:18 +000011SECTION_TITLES = {
Guido van Rossum23052311997-05-26 06:12:50 +000012 # SectionNumber : SectionTitle; need at least one entry
Guido van Rossum1677e5b1997-05-26 00:07:18 +000013 1: "General information and availability",
Guido van Rossum1677e5b1997-05-26 00:07:18 +000014}
15
Guido van Rossumea31ea21997-05-26 05:43:29 +000016# Parameters you definitely want to change
17
Guido van Rossum23052311997-05-26 06:12:50 +000018SHORTNAME = "Generic" # FAQ name with "FAQ" omitted
19PASSWORD = "" # Password for editing
Guido van Rossumea31ea21997-05-26 05:43:29 +000020OWNERNAME = "GvR" # Name for feedback
21OWNEREMAIL = "guido@python.org" # Email for feedback
22HOMEURL = "http://www.python.org" # Related home page
23HOMENAME = "Python home" # Name of related home page
Guido van Rossum64a10901998-02-19 21:29:38 +000024RCSBINDIR = "/usr/local/bin/" # Directory containing RCS commands
Guido van Rossumea31ea21997-05-26 05:43:29 +000025 # (must end in a slash)
26
27# Parameters you can normally leave alone
28
Guido van Rossumea31ea21997-05-26 05:43:29 +000029MAXHITS = 10 # Max #hits to be shown directly
30COOKIE_LIFETIME = 28*24*3600 # Cookie expiration in seconds
31 # (28*24*3600 = 28 days = 4 weeks)
Guido van Rossumb1823ad1997-12-09 16:04:46 +000032PROCESS_PREFORMAT = 1 # toggle whether preformatted text
33 # will replace urls and emails with
34 # HTML links
Guido van Rossumea31ea21997-05-26 05:43:29 +000035
Guido van Rossumfd67f731997-05-26 19:46:18 +000036# Markers appended to title to indicate recently change
37# (may contain HTML, e.g. <IMG>); and corresponding
38
39MARK_VERY_RECENT = " **" # Changed very recently
40MARK_RECENT = " *" # Changed recently
41DT_VERY_RECENT = 24*3600 # 24 hours
42DT_RECENT = 7*24*3600 # 7 days
43
44EXPLAIN_MARKS = """
Guido van Rossumd812c071997-05-26 20:15:44 +000045<P>(Entries marked with ** were changed within the last 24 hours;
Guido van Rossumfd67f731997-05-26 19:46:18 +000046entries marked with * were changed within the last 7 days.)
47<P>
48"""
49
50# Version -- don't change unless you edit faqwiz.py
51
Guido van Rossum98199831998-09-04 21:20:29 +000052WIZVERSION = "1.0.2" # FAQ Wizard version
Guido van Rossumfd67f731997-05-26 19:46:18 +000053
Guido van Rossum23052311997-05-26 06:12:50 +000054# This parameter is normally overwritten with a dynamic value
55
56FAQCGI = 'faqw.py' # Relative URL of the FAQ cgi script
57import os, sys
58FAQCGI = os.path.basename(sys.argv[0]) or FAQCGI
59del os, sys
60
Guido van Rossum80e57fb1997-12-21 07:05:32 +000061# Perl (re module) style regular expression to recognize FAQ entry
62# files: group(1) should be the section number, group(2) should be the
63# question number. Both should be fixed width so simple-minded
64# sorting yields the right order.
Guido van Rossumfd67f731997-05-26 19:46:18 +000065
Guido van Rossum80e57fb1997-12-21 07:05:32 +000066OKFILENAME = r"^faq(\d\d)\.(\d\d\d)\.htp$"
Guido van Rossumfd67f731997-05-26 19:46:18 +000067
68# Format to construct a FAQ entry file name
69
70NEWFILENAME = "faq%02d.%03d.htp"
71
Guido van Rossum23052311997-05-26 06:12:50 +000072# Load local customizations on top of the previous parameters
73
74try:
75 from faqcust import *
Guido van Rossum178f58a1997-06-02 21:39:15 +000076except ImportError:
Guido van Rossum23052311997-05-26 06:12:50 +000077 pass
78
79# Calculated parameter names
80
81COOKIE_NAME = SHORTNAME + "-FAQ-Wizard" # Name used for Netscape cookie
82FAQNAME = SHORTNAME + " FAQ" # Name of the FAQ
83
Guido van Rossumea31ea21997-05-26 05:43:29 +000084# ----------------------------------------------------------------------
85
86# Anything below this point normally needn't be changed; you would
87# change this if you were to create e.g. a French translation or if
88# you just aren't happy with the text generated by the FAQ Wizard.
89
90# Most strings here are subject to substitution (string%dictionary)
91
92# RCS commands
93
94SH_RLOG = RCSBINDIR + "rlog %(file)s </dev/null 2>&1"
95SH_RLOG_H = RCSBINDIR + "rlog -h %(file)s </dev/null 2>&1"
96SH_RDIFF = RCSBINDIR + "rcsdiff -r%(prev)s -r%(rev)s %(file)s </dev/null 2>&1"
Guido van Rossum8bc49c81997-05-26 19:10:37 +000097SH_REVISION = RCSBINDIR + "co -p%(rev)s %(file)s </dev/null 2>&1"
Guido van Rossumea31ea21997-05-26 05:43:29 +000098SH_LOCK = RCSBINDIR + "rcs -l %(file)s </dev/null 2>&1"
99SH_CHECKIN = RCSBINDIR + "ci -u %(file)s <%(tfn)s 2>&1"
100
101# Titles for various output pages (not subject to substitution)
102
103T_HOME = FAQNAME + " Wizard " + WIZVERSION
104T_ERROR = "Sorry, an error occurred"
105T_ROULETTE = FAQNAME + " Roulette"
106T_ALL = "The Whole " + FAQNAME
107T_INDEX = FAQNAME + " Index"
108T_SEARCH = FAQNAME + " Search Results"
109T_RECENT = "What's New in the " + FAQNAME
110T_SHOW = FAQNAME + " Entry"
111T_LOG = "RCS log for %s entry" % FAQNAME
Guido van Rossum8bc49c81997-05-26 19:10:37 +0000112T_REVISION = "RCS revision for %s entry" % FAQNAME
Guido van Rossumea31ea21997-05-26 05:43:29 +0000113T_DIFF = "RCS diff for %s entry" % FAQNAME
114T_ADD = "Add an entry to the " + FAQNAME
115T_DELETE = "Deleting an entry from the " + FAQNAME
116T_EDIT = FAQNAME + " Edit Wizard"
117T_REVIEW = T_EDIT + " - Review Changes"
118T_COMMITTED = T_EDIT + " - Changes Committed"
119T_COMMITFAILED = T_EDIT + " - Commit Failed"
120T_CANTCOMMIT = T_EDIT + " - Commit Rejected"
121T_HELP = T_EDIT + " - Help"
122
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000123# Generic prologue and epilogue
124
125PROLOGUE = '''
126<HTML>
127<HEAD>
128<TITLE>%(title)s</TITLE>
129</HEAD>
130
131<BODY BACKGROUND="http://www.python.org/pics/RedShort.gif"
132 BGCOLOR="#FFFFFF"
133 TEXT="#000000"
134 LINK="#AA0000"
135 VLINK="#906A6A">
136<H1>%(title)s</H1>
137'''
138
139EPILOGUE = '''
140<HR>
141<A HREF="%(HOMEURL)s">%(HOMENAME)s</A> /
Guido van Rossumea31ea21997-05-26 05:43:29 +0000142<A HREF="%(FAQCGI)s?req=home">%(FAQNAME)s Wizard %(WIZVERSION)s</A> /
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000143Feedback to <A HREF="mailto:%(OWNEREMAIL)s">%(OWNERNAME)s</A>
144
145</BODY>
146</HTML>
147'''
148
149# Home page
150
151HOME = """
Guido van Rossumea31ea21997-05-26 05:43:29 +0000152<H2>Search the %(FAQNAME)s:</H2>
153
154<BLOCKQUOTE>
155
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000156<FORM ACTION="%(FAQCGI)s">
157 <INPUT TYPE=text NAME=query>
158 <INPUT TYPE=submit VALUE="Search"><BR>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000159 <INPUT TYPE=radio NAME=querytype VALUE=simple CHECKED>
160 Simple string
161 /
162 <INPUT TYPE=radio NAME=querytype VALUE=regex>
163 Regular expression
Guido van Rossum8bc49c81997-05-26 19:10:37 +0000164 /<BR>
Guido van Rossumd9936951997-05-26 16:35:27 +0000165 <INPUT TYPE=radio NAME=querytype VALUE=anykeywords>
166 Keywords (any)
167 /
168 <INPUT TYPE=radio NAME=querytype VALUE=allkeywords>
169 Keywords (all)
Guido van Rossumea31ea21997-05-26 05:43:29 +0000170 <BR>
171 <INPUT TYPE=radio NAME=casefold VALUE=yes CHECKED>
172 Fold case
173 /
174 <INPUT TYPE=radio NAME=casefold VALUE=no>
175 Case sensitive
176 <BR>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000177 <INPUT TYPE=hidden NAME=req VALUE=search>
178</FORM>
179
Guido van Rossumea31ea21997-05-26 05:43:29 +0000180</BLOCKQUOTE>
181
182<HR>
183
184<H2>Other forms of %(FAQNAME)s access:</H2>
185
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000186<UL>
187<LI><A HREF="%(FAQCGI)s?req=index">FAQ index</A>
188<LI><A HREF="%(FAQCGI)s?req=all">The whole FAQ</A>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000189<LI><A HREF="%(FAQCGI)s?req=recent">What's new in the FAQ?</A>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000190<LI><A HREF="%(FAQCGI)s?req=roulette">FAQ roulette</A>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000191<LI><A HREF="%(FAQCGI)s?req=add">Add a FAQ entry</A>
192<LI><A HREF="%(FAQCGI)s?req=delete">Delete a FAQ entry</A>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000193</UL>
194"""
195
196# Index formatting
197
198INDEX_SECTION = """
199<P>
200<HR>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000201<H2>%(sec)s. %(title)s</H2>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000202<UL>
203"""
204
Guido van Rossumea31ea21997-05-26 05:43:29 +0000205INDEX_ADDSECTION = """
206<P>
207<LI><A HREF="%(FAQCGI)s?req=new&amp;section=%(sec)s">Add new entry</A>
208(at this point)
209"""
210
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000211INDEX_ENDSECTION = """
212</UL>
213"""
214
215INDEX_ENTRY = """\
Guido van Rossum030144d1997-05-26 16:02:56 +0000216<LI><A HREF="%(FAQCGI)s?req=show&amp;file=%(file)s">%(title)s</A>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000217"""
218
Guido van Rossum8bc49c81997-05-26 19:10:37 +0000219LOCAL_ENTRY = """\
220<LI><A HREF="#%(sec)s.%(num)s">%(title)s</A>
221"""
222
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000223# Entry formatting
224
Guido van Rossumfd67f731997-05-26 19:46:18 +0000225ENTRY_HEADER1 = """
Guido van Rossumea31ea21997-05-26 05:43:29 +0000226<HR>
Guido van Rossumfd67f731997-05-26 19:46:18 +0000227<H2><A NAME="%(sec)s.%(num)s">%(title)s</A>\
228"""
229
230ENTRY_HEADER2 = """\
231</H2>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000232"""
233
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000234ENTRY_FOOTER = """
Guido van Rossumea31ea21997-05-26 05:43:29 +0000235<A HREF="%(FAQCGI)s?req=edit&amp;file=%(file)s">Edit this entry</A> /
236<A HREF="%(FAQCGI)s?req=log&amp;file=%(file)s">Log info</A>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000237"""
238
239ENTRY_LOGINFO = """
240/ Last changed on %(last_changed_date)s by
241<A HREF="mailto:%(last_changed_email)s">%(last_changed_author)s</A>
242"""
243
244# Search
245
246NO_HITS = """
247No hits.
248"""
249
250ONE_HIT = """
251Your search matched the following entry:
252"""
253
254FEW_HITS = """
Guido van Rossumea31ea21997-05-26 05:43:29 +0000255Your search matched the following %(count)s entries:
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000256"""
257
258MANY_HITS = """
Guido van Rossumea31ea21997-05-26 05:43:29 +0000259Your search matched more than %(MAXHITS)s entries.
260The %(count)s matching entries are presented here ordered by section:
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000261"""
262
263# RCS log and diff
264
265LOG = """
266Click on a revision line to see the diff between that revision and the
267previous one.
268"""
269
Guido van Rossum8bc49c81997-05-26 19:10:37 +0000270REVISIONLINK = """\
271<A HREF="%(FAQCGI)s?req=revision&amp;file=%(file)s&amp;rev=%(rev)s"
272>%(line)s</A>\
273"""
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000274DIFFLINK = """\
Guido van Rossum8bc49c81997-05-26 19:10:37 +0000275 (<A HREF="%(FAQCGI)s?req=diff&amp;file=%(file)s&amp;\
276prev=%(prev)s&amp;rev=%(rev)s"
277>diff -r%(prev)s -r%(rev)s</A>)\
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000278"""
279
280# Recently changed entries
281
282NO_RECENT = """
283<HR>
284No %(FAQNAME)s entries were changed in the last %(period)s.
285"""
286
Guido van Rossumea31ea21997-05-26 05:43:29 +0000287VIEW_MENU = """
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000288<HR>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000289View entries changed in the last...
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000290<UL>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000291<LI><A HREF="%(FAQCGI)s?req=recent&amp;days=1">24 hours</A>
292<LI><A HREF="%(FAQCGI)s?req=recent&amp;days=2">2 days</A>
293<LI><A HREF="%(FAQCGI)s?req=recent&amp;days=3">3 days</A>
294<LI><A HREF="%(FAQCGI)s?req=recent&amp;days=7">week</A>
295<LI><A HREF="%(FAQCGI)s?req=recent&amp;days=28">4 weeks</A>
296<LI><A HREF="%(FAQCGI)s?req=recent&amp;days=365250">millennium</A>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000297</UL>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000298"""
299
300ONE_RECENT = VIEW_MENU + """
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000301The following %(FAQNAME)s entry was changed in the last %(period)s:
302"""
303
Guido van Rossumea31ea21997-05-26 05:43:29 +0000304SOME_RECENT = VIEW_MENU + """
305The following %(count)s %(FAQNAME)s entries were changed
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000306in the last %(period)s, most recently changed shown first:
307"""
308
Guido van Rossumea31ea21997-05-26 05:43:29 +0000309TAIL_RECENT = VIEW_MENU
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000310
311# Last changed banner on "all" (strftime format)
312LAST_CHANGED = "Last changed on %c %Z"
313
Guido van Rossumea31ea21997-05-26 05:43:29 +0000314# "Compat" command prologue (this has no <BODY> tag)
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000315COMPAT = """
316<H1>The whole %(FAQNAME)s</H1>
Guido van Rossum2aa78ef1997-11-21 16:37:54 +0000317See also the <A HREF="%(FAQCGI)s?req=home">%(FAQNAME)s Wizard</A>.
318<P>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000319"""
320
321# Editing
322
323EDITHEAD = """
324<A HREF="%(FAQCGI)s?req=help">Click for Help</A>
325"""
326
327REVIEWHEAD = EDITHEAD
328
329
330EDITFORM1 = """
331<FORM ACTION="%(FAQCGI)s" METHOD=POST>
332<INPUT TYPE=hidden NAME=req VALUE=review>
333<INPUT TYPE=hidden NAME=file VALUE=%(file)s>
334<INPUT TYPE=hidden NAME=editversion VALUE=%(editversion)s>
335<HR>
336"""
337
338EDITFORM2 = """
339Title: <INPUT TYPE=text SIZE=70 NAME=title VALUE="%(title)s"><BR>
340<TEXTAREA COLS=72 ROWS=20 NAME=body>%(body)s
341</TEXTAREA><BR>
342Log message (reason for the change):<BR>
343<TEXTAREA COLS=72 ROWS=5 NAME=log>%(log)s
344</TEXTAREA><BR>
345Please provide the following information for logging purposes:
346<TABLE FRAME=none COLS=2>
347 <TR>
348 <TD>Name:
349 <TD><INPUT TYPE=text SIZE=40 NAME=author VALUE="%(author)s">
350 <TR>
351 <TD>Email:
352 <TD><INPUT TYPE=text SIZE=40 NAME=email VALUE="%(email)s">
353 <TR>
354 <TD>Password:
355 <TD><INPUT TYPE=password SIZE=20 NAME=password VALUE="%(password)s">
356</TABLE>
357
358<INPUT TYPE=submit NAME=review VALUE="Preview Edit">
359Click this button to preview your changes.
360"""
361
362EDITFORM3 = """
363</FORM>
364"""
365
366COMMIT = """
367<INPUT TYPE=submit NAME=commit VALUE="Commit">
368Click this button to commit your changes.
369<HR>
370"""
371
372NOCOMMIT = """
Guido van Rossumea31ea21997-05-26 05:43:29 +0000373To commit your changes, please enter a log message, your name, email
374addres, and the correct password in the form below.
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000375<HR>
376"""
377
378CANTCOMMIT_HEAD = """
379Some required information is missing:
380<UL>
381"""
382NEED_PASSWD = "<LI>You must provide the correct passwd.\n"
383NEED_AUTHOR = "<LI>You must enter your name.\n"
384NEED_EMAIL = "<LI>You must enter your email address.\n"
385NEED_LOG = "<LI>You must enter a log message.\n"
386CANTCOMMIT_TAIL = """
387</UL>
388Please use your browser's Back command to correct the form and commit
389again.
390"""
391
Guido van Rossumea31ea21997-05-26 05:43:29 +0000392NEWCONFLICT = """
393<P>
394You are creating a new entry, but the entry number specified is not
395correct.
396<P>
397The two most common causes of this problem are:
398<UL>
399<LI>After creating the entry yourself, you went back in your browser,
400 edited the entry some more, and clicked Commit again.
401<LI>Someone else started creating a new entry in the same section and
402 committed before you did.
403</UL>
404(It is also possible that the last entry in the section was physically
405deleted, but this should not happen except through manual intervention
406by the FAQ maintainer.)
407<P>
408<A HREF="%(FAQCGI)s?req=new&amp;section=%(sec)s">Click here to try
409again.</A>
410<P>
411"""
412
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000413VERSIONCONFLICT = """
414<P>
415You edited version %(editversion)s but the current version is %(version)s.
416<P>
417The two most common causes of this problem are:
418<UL>
419<LI>After committing a change, you went back in your browser,
420 edited the entry some more, and clicked Commit again.
421<LI>Someone else started editing the same entry and committed
422 before you did.
423</UL>
424<P>
Guido van Rossumea31ea21997-05-26 05:43:29 +0000425<A HREF="%(FAQCGI)s?req=show&amp;file=%(file)s">Click here to reload
426the entry and try again.</A>
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000427<P>
428"""
429
430CANTWRITE = """
431Can't write file %(file)s (%(why)s).
432"""
433
434FILEHEADER = """\
435Title: %(title)s
436Last-Changed-Date: %(date)s
437Last-Changed-Author: %(author)s
438Last-Changed-Email: %(email)s
439Last-Changed-Remote-Host: %(REMOTE_HOST)s
440Last-Changed-Remote-Address: %(REMOTE_ADDR)s
441"""
442
443LOGHEADER = """\
444Last-Changed-Date: %(date)s
445Last-Changed-Author: %(author)s
446Last-Changed-Email: %(email)s
447Last-Changed-Remote-Host: %(REMOTE_HOST)s
448Last-Changed-Remote-Address: %(REMOTE_ADDR)s
449
450%(log)s
451"""
452
453COMMITTED = """
454Your changes have been committed.
455"""
456
457COMMITFAILED = """
Guido van Rossum6592b3c1997-11-11 17:18:48 +0000458Exit status %(sts)s.
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000459"""
460
Guido van Rossumea31ea21997-05-26 05:43:29 +0000461# Add/Delete
462
463ADD_HEAD = """
464At the moment, new entries can only be added at the end of a section.
465This is because the entry numbers are also their
466unique identifiers -- it's a bad idea to renumber entries.
467<P>
468Click on the section to which you want to add a new entry:
469<UL>
470"""
471
472ADD_SECTION = """\
473<LI><A HREF="%(FAQCGI)s?req=new&amp;section=%(section)s">%(section)s. %(title)s</A>
474"""
475
476ADD_TAIL = """
477</UL>
478"""
479
Guido van Rossumf1ead1a1997-08-28 02:38:01 +0000480ROULETTE = """
481<P>Hit your browser's Reload button to play again.<P>
482"""
483
Guido van Rossumea31ea21997-05-26 05:43:29 +0000484DELETE = """
485At the moment, there's no direct way to delete entries.
486This is because the entry numbers are also their
487unique identifiers -- it's a bad idea to renumber entries.
488<P>
489If you really think an entry needs to be deleted,
490change the title to "(deleted)" and make the body
491empty (keep the entry number in the title though).
492"""
493
494# Help file for the FAQ Edit Wizard
495
Guido van Rossum1677e5b1997-05-26 00:07:18 +0000496HELP = """
497Using the %(FAQNAME)s Edit Wizard speaks mostly for itself. Here are
498some answers to questions you are likely to ask:
499
500<P><HR>
501
502<H2>I can review an entry but I can't commit it.</H2>
503
504The commit button only appears if the following conditions are met:
505
506<UL>
507
508<LI>The Name field is not empty.
509
510<LI>The Email field contains at least an @ character.
511
512<LI>The Log message box is not empty.
513
514<LI>The Password field contains the proper password.
515
516</UL>
517
518<P><HR>
519
520<H2>What is the password?</H2>
521
522At the moment, only PSA members will be told the password. This is a
523good time to join the PSA! See <A
524HREF="http://www.python.org/psa/">the PSA home page</A>.
525
526<P><HR>
527
528<H2>Can I use HTML in the FAQ entry?</H2>
529
530No, but if you include a URL or an email address in the text it will
531automatigally become an anchor of the right type. Also, *word*
532is made italic (but only for single alphabetic words).
533
534<P><HR>
535
536<H2>How do I delineate paragraphs?</H2>
537
538Use blank lines to separate paragraphs.
539
540<P><HR>
541
542<H2>How do I enter example text?</H2>
543
544Any line that begins with a space or tab is assumed to be part of
545literal text. Blocks of literal text delineated by blank lines are
546placed inside &lt;PRE&gt;...&lt;/PRE&gt;.
547"""
Guido van Rossum5bf4d001997-06-03 22:03:22 +0000548
549# Load local customizations again, in case they set some other variables
550
551try:
552 from faqcust import *
553except ImportError:
554 pass