Add links to the first established mailing list archive for
[openssl-web.git] / openssl.wml
1 ##
2 ##  openssl.wml -- WML Template for the www.openssl.org website
3 ##  Written by Ralf S. Engelschall <rse@engelschall.com>
4 ##
5 ##  Usage: #use wml::tpl::openssl area=<area_name> [page=<page_name>]
6 ##
7
8 #use wml::std::tags
9 #use wml::des::navbar
10 #use wml::std::info
11
12 ##
13 ##  The Global Page Layout
14 ##
15
16 #   start of page header
17 [PAGE_HEAD:\
18 <html>
19 <head>
20
21 #   insert information about the webpage
22 <info style=comment domainname="openssl.org"
23       copyright="1998,1999 The OpenSSL Project, http://www.openssl.org/">
24 <info style=meta domainname="openssl.org"
25       copyright="1998,1999 The OpenSSL Project, http://www.openssl.org/">
26
27 #   insert overideable title container
28 <title*>OpenSSL: <<PAGE_TITLE>></title*>
29 #   predefine it to show errors
30 ..PAGE_TITLE!>>Error: Undefined Title !!<<..
31 #   define override tag
32 <define-container title>
33 ..PAGE_TITLE>>%body<<..
34 </define-container>
35
36 #   define a style-sheet for adjusting some HTML layouting things
37 #   to conform to some typographically stronger conventions.
38 <style type="text/css"><!--
39 BODY      { position: absolute; left: 0px; top: 0px; background: #666699; }
40 A:link    { color: #6666cc; }
41 A:active  { color: #6666cc; }
42 A:visited { color: #6666cc; }
43 \#red { color: #cc3333 }
44 \#sf  { font-family: arial,helvetica; font-variant: normal; font-style: normal; }
45 \#sfl { font-weight: bold; font-family: arial,helvetica; font-size: 16pt; \
46         line-height: 16pt; font-variant: normal; font-style: normal; }
47 H1    { font-weight: bold; font-size: 18pt; line-height: 18pt; \
48         font-family: arial,helvetica; font-variant: normal; font-style: normal; }
49 H2    { font-weight: bold; font-size: 14pt; line-height: 14pt; \
50         font-family: arial,helvetica; font-variant: normal; font-style: normal; }
51 H3    { font-weight: bold; font-size: 12pt; line-height: 12pt; \
52         font-family: arial,helvetica; font-variant: normal; font-style: normal; }
53 --></style>
54
55 #   end of header and start of physical body
56 #   (use additionally use colors here for older browsers)
57 </head>
58 <body link="#6666cc" alink="#6666cc" vlink="#6666cc" bgcolor="#666699">
59
60 #   now define the page layout by a nested table 
61 #   structure consisting of a 5x5 cell grid.
62 <table width=100% cellspacing=0 cellpadding=0 border=0>
63   #   visually: the top line of the page
64   <tr>\
65     <td align=left width=100 bgcolor="#666699"><img src="$(IMG)/page-head-tl.jpg" alt="OpenSSL"></td>\
66     <td align=left colspan=2 width=600 bgcolor="#666699"><img src="$(IMG)/page-head-tm.jpg" alt=""></td>\
67     <td align=right width=20 bgcolor="#666699">&nbsp;&nbsp;&nbsp;</td>\
68     <td align=right width=50 bgcolor="#666699">&nbsp;</td>\
69   </tr>
70   #   visually: the top of the white body with the subnavbar
71   <tr>\
72     <td align=left width=100><img src="$(IMG)/page-head-bl.jpg"></td>\
73     <td align=left width=20><img src="$(IMG)/page-head-bm.jpg"></td>\
74     <td align=left width=100% bgcolor="#ffffff">\
75         <<PAGE_SUBNAVBAR>>\
76     </td>\
77     <td align=right width=20><img src="$(IMG)/page-corner-tr.gif"></td>\
78     <td align=right width=50 bgcolor="#666699">&nbsp;</td>\
79   </tr>
80   #   visually: the left main navigation bar and the white body
81   <tr>\
82     <td align=left valign=top width=100 bgcolor="#666699"><<PAGE_NAVBAR>></td>\
83     <td align=left valign=top width=20  bgcolor="#ffffff">&nbsp;</td>\
84     <td align=left valign=top bgcolor="#ffffff">\
85         <br>
86         :PAGE_HEAD][PAGE_BODY:
87         <<PAGE_BODY>>
88         :PAGE_BODY][PAGE_FOOT:\
89     </td>\
90     <td align=right width=20 bgcolor="#ffffff">&nbsp;&nbsp;&nbsp;</td>\
91     <td align=right width=50 bgcolor="#666699">&nbsp;</td>\
92   </tr>
93   #   visually: the bottom of the white body
94   <tr>\
95     <td align=left valign=top width=100 bgcolor="#666699">&nbsp;</td>\
96     <td align=left width=20><img src="$(IMG)/page-corner-bl.gif"></td>\
97     <td align=left valign=top bgcolor="#ffffff">&nbsp;</td>\
98     <td align=right width=20><img src="$(IMG)/page-corner-br.gif"></td>\
99     <td align=right width=50 bgcolor="#666699">&nbsp;</td>\
100   </tr>
101   #   visually: the bottom of the page (only for esthetical
102   #   reasons, i.e. the page doesn't end with the white body)
103   <tr>\
104     <td colspan=5 bgcolor="#666699">&nbsp;</td>\
105   </tr>
106 </table>
107
108 #   the physical end of the body
109 </body>
110 </html>
111 :PAGE_FOOT]
112
113 ##
114 ##  The main Navigation Bar [left, vertically]
115 ##
116
117 #   define the navigation bar through a grammar
118 <navbar:define name=navbar imgstar="n:s:s"
119                imgbase="$(IMG)" urlbase="$(ROOT)">
120   #   bar header
121   <navbar:header>
122   </navbar:header>
123   #   button prolog
124   <navbar:prolog>
125     <tr><td>
126   </navbar:prolog>
127   #   the buttons itself
128   <navbar:button id=title    url=""       txt="Title"        img=page-navbar-ti-*.jpg>
129   <navbar:button id=about    url=about/   txt="About"        img=page-navbar-ab-*.jpg>
130   <navbar:button id=news     url=news/    txt="News"         img=page-navbar-ne-*.jpg>
131   <navbar:button id=docs     url=docs/    txt="Documents"    img=page-navbar-do-*.jpg>
132   <navbar:button id=source   url=source/  txt="Source"       img=page-navbar-so-*.jpg>
133   <navbar:button id=contrib  url=contrib/ txt="Contribution" img=page-navbar-co-*.jpg>
134   <navbar:button id=support  url=support/ txt="Support"      img=page-navbar-su-*.jpg>
135   <navbar:button id=related  url=related/ txt="Related"      img=page-navbar-re-*.jpg>
136   #   button epilog
137   <navbar:epilog>
138     </td></tr>
139   </navbar:epilog>
140   #   bar footer
141   <navbar:footer>
142   </navbar:footer>
143 </navbar:define>
144
145 #   and then immediately render it into its layout location
146 #   (Hint: The top and buttom images have to be part of the table
147 #   structure because only this way we can put them 0pt to the
148 #   buttons without a gap)
149 ..PAGE_NAVBAR>>\
150   <table cellspacing=0 cellpadding=0 border=0>\
151     <tr><td><img src="$(IMG)/page-navbar-top.jpg"></td></tr>
152     #   render it!
153     <navbar:render name=navbar select=$(area) $(page:+subselected)>
154     <tr><td><img src="$(IMG)/page-navbar-bot.jpg"><br><p></td></tr>
155   </table>
156 <<..
157
158 ##
159 ##  The Sub Navigation Bar (SNB) [top, horizontally]
160 ##
161
162 #   define the <snb>...</snb> container tag
163 <define-container snb>
164   #   1. define the navigation bar through a grammar
165   <navbar:define name=snb urlbase="$(SNB_ROOT)" 
166                  txtcol_normal="#666666" txtcol_select="#000000">
167     #   bar header
168     <navbar:header>\
169       <table cellspacing=0 cellpadding=0 border=0>
170         <tr>
171     </navbar:header>
172     #   button prolog (normal)
173     <navbar:prolog>\
174           <td><font face="Arial,Helvetica">&nbsp;
175     </navbar:prolog>
176     #   button prolog (selected)
177     <navbar:prolog type=S>\
178           <td bgcolor="#f0f0f0">&nbsp;<font face="Arial,Helvetica"><b>
179     </navbar:prolog>
180     #   ...here the <snb_button> tags will occur...
181     %body
182     #   button epilog (normal)
183     <navbar:epilog>\
184           </font>&nbsp;</td><td>|</td>
185     </navbar:epilog>
186     #   button epilog (selected)
187     <navbar:epilog type=S>\
188           </b></font>&nbsp;</td><td>|</td>
189     </navbar:epilog>
190     #   last button epilog (normal)
191     <navbar:epilog pos=last>\
192           </font>&nbsp;</td><td></td>
193     </navbar:epilog>
194     #   last button epilog (selected)
195     <navbar:epilog type=S pos=last>\
196           </b></font>&nbsp;</td><td></td>
197     </navbar:epilog>
198     #   bar footer
199     <navbar:footer>\
200         </tr>
201       </table>
202     </navbar:footer>
203   </navbar:define>
204   #   2. render the navigation bar and divert
205   #      divert it into it's final location
206   ..PAGE_SUBNAVBAR>>\
207   <navbar:render name=snb select="$(page)">\
208   <<..
209 </define-container>
210
211 #   define the <snb_button> tag for the <snb> container
212 #   (this is for consistency with the tag names)
213 <define-tag snb_button>
214   <navbar:button %attributes>
215 </define-tag>
216
217 #   predefine the contents of the SNB location
218 #   by diverting a whitespace character to it.
219 #   This prevents the table to be folded.
220 ..PAGE_SUBNAVBAR!>>
221 &nbsp;
222 <<..
223
224 #   and now the final WML trick: When the page=<page_name>
225 #   attribute is specified for this template, we read in the SNB
226 #   spec-file which now can use the <snb>..</snb> and
227 #   <snb_button> tags to actually define and render a SNB. This
228 #   is accomplished by doing some sort of a conditional #include. ;-)
229 $(page:*# )$(page:+#include ")$(SNB_RC:-.wmlsnb)$(page:+")
230
231 ##
232 ##  Useful tags (for convenience purposes only)
233 ##
234
235 #   define a <item> tag for <ul>/<ol> item similar to <li> but
236 #   which is nice for URL lists like the Related area where
237 #   we want a special layout.
238 <define-tag item>
239 <preserve name>
240 <preserve url>
241 <preserve aio>
242 <preserve info>
243 <set-var aio=*>
244 <set-var %attributes>
245 <li><a href="<get-var url>"><font size=+1 face="Arial,Helvetica"><b><get-var name></b></font></a>
246     <ifeq "<get-var aio>" "" <img src="aio.gif" alt="[all-in-one]" align=absmiddle>>
247     <br>
248     <ifeq "<get-var info>" "" "" "<get-var info><br>">
249     <a href="<get-var url>"><font size=-1><get-var url></font></a>
250     <p>
251 <restore info>
252 <restore aio>
253 <restore url>
254 <restore name>
255 </define-tag>
256
257 #   define a <filelist> tag which can be used to create a file listing which
258 #   is optically more compact than the stuff Apache's mod_autoindex creates.
259 #   Especially the current version is marked red, too.
260 <define-tag filelist>
261 <pre>
262 <b>   Bytes      Timestamp       Filename</b>
263 <b>________ ____________________ ____________________________</b>
264 <:
265 @HI = ();
266 open(FP, "<index.current");
267 while (<FP>) {
268    s|\s*\n$||;
269    push(@HI, $_);
270 }
271 close(FP);
272 sub ls {
273     my ($pat) = @_;
274     my (@F, @R, $f, @S, @T);
275     @F = sort { (stat($a))[9] <=> (stat($b))[9]; } (glob($pat));
276     @R = ();
277     foreach $f (@F) {
278         next if ($f =~ m|^index.*|);
279         if ('%1' ne '') {
280             if (! %1 $f) {
281                 next;
282             }
283         }
284         @S = stat($f);
285         $f = "$f/" if (-d $f);
286         @T = localtime($S[9]);
287         my @moy = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
288                    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
289         push(@R, sprintf("%"."8d %"."s %"."2d %"."02d:%"."02d:%"."02d %"."d %"."s\n", 
290              $S[7], $moy[$T[4]], $T[3], $T[2], $T[1], $T[0], 1900+$T[5], $f));
291     }
292     return @R;
293 }
294 @L = &ls("%0");
295 foreach $l (@L) {
296     next if ($l =~ m|^\s*$|);
297     $l =~ s|(\s+)(\S+[^/])(\s*\n)$|$1."<a href=\"$2\">$2</a>".$3|e;
298     $l =~ s|(\s+)(\S+/)(\s*\n)$|$1."<a href=\"$2\"><b>$2</b></a>".$3|e;
299     foreach $hi (@HI) {
300         $l =~ s|^(.*$hi.*)$|<font color="#cc3333">$1&nbsp;&nbsp;[LATEST]</font>|;
301         $l =~ s|>($hi)<|><font color="#cc3333">$1</font><|;
302     }
303     print $l;
304 }
305 :>
306 </pre>
307 </define-tag>
308
309 #   define a <cvs> container which can be used to reference 
310 #   files within the CVS repository similar to <a>.
311 <define-container cvs>
312 <preserve href>\
313 <set-var %attributes>\
314   <a href="$(ROOT)/source/exp/<get-var href>"><get-var href></a>\
315 <restore href>\
316 </define-container>
317
318 #
319 <define-tag newsflash>
320 <preserve from>
321 <preserve max>
322 <preserve more>
323 <set-var %attributes>
324 <table width=500 cellspacing=0 cellpadding=1 border=0>
325 <tr><td><font face="Arial,Helvetica"><b>Date</b></font></td> <td>&nbsp;&nbsp;&nbsp;<font face="Arial,Helvetica"><b>Newsflash</b></font></td></tr>
326 <tr><td><hr noshade size=1></td> <td><hr noshade size=1></td></tr>
327 <:
328     open(FP, "< <get-var from>") || die;
329     my $max = ("<get-var max>" eq '' ? 9999 : "<get-var max>");
330     @COL = (
331         '#ffffff',
332         '#f0f0f0',
333     );
334     $ncol = 1;
335     $n = 0;
336     while (<FP>) {
337         $ncol = ($ncol + 1) % 2;
338         $col  = $COL[$ncol];
339         s|="ROOT|="$(ROOT)|g;
340         s|="CVS|="$(ROOT)/source/exp/|g;
341         if (m|^(.+?):(.+)|) {
342             print "<tr bgcolor=\"$col\">\n";
343             print "  <td align=right><font face=\"Arial,Helvetica\"><b>$1:</b></font></td> <td>&nbsp;&nbsp;$2</td>\n";
344             print "</tr>\n";
345         }
346         $n++;
347         last if ($n >= $max);
348     }
349     close(FP);
350 :>
351 <ifeq "<get-var more>" "" "" <prog
352 <tr>
353   <td>&nbsp;</td> <td align=right><td><a href="<get-var more>">more...</a></td>
354 </tr>
355 >>
356 </table>
357 <restore more>
358 <restore max>
359 <restore from>
360 </define-tag>
361
362 #   define a <disclaimer> tag which displays the usual disclaimer stuff
363 <define-tag disclaimer>
364 <font face="Arial,Helvetica" size=-1>
365 This software package uses strong cryptography, so even if it is created,
366 maintained and distributed from liberal countries in Europe (where it is legal
367 to do this), it falls under certain export/import and/or use restrictions in
368 some other parts of the world.
369 <p>
370 PLEASE REMEMBER THAT EXPORT/IMPORT AND/OR USE OF STRONG CRYPTOGRAPHY
371 SOFTWARE, PROVIDING CRYPTOGRAPHY HOOKS OR EVEN JUST COMMUNICATING TECHNICAL
372 DETAILS ABOUT CRYPTOGRAPHY SOFTWARE IS ILLEGAL IN SOME PARTS OF THE WORLD.
373 SO, WHEN YOU IMPORT THIS PACKAGE TO YOUR COUNTRY, RE-DISTRIBUTE IT FROM
374 THERE OR EVEN JUST EMAIL TECHNICAL SUGGESTIONS OR EVEN SOURCE PATCHES TO THE
375 AUTHOR OR OTHER PEOPLE YOU ARE STRONGLY ADVISED TO PAY CLOSE ATTENTION TO
376 ANY EXPORT/IMPORT AND/OR USE LAWS WHICH APPLY TO YOU. THE AUTHORS OF OPENSSL
377 ARE NOT LIABLE FOR ANY VIOLATIONS YOU MAKE HERE. SO BE CAREFULLY YOURSELF, IT
378 IS YOUR RESPONSIBILITY.
379 </font>
380 <p>
381 <font face="Arial,Helvetica" size=-1>
382 CREDIT INFORMATION:
383 This product includes cryptographic software written by Eric A. Young
384 (eay@cryptsoft.com).  This product includes software written by Tim J.  Hudson
385 (tjh@cryptsoft.com).
386 </font>
387 </define-tag>
388
389 <define-tag website-tools>
390 <font face="Arial,Helvetica" size=-1> Website designed and generated with <a
391 href="http://www.engelschall.com/sw/wml/"><font color="#000000">Website META
392 Language</font></a> (WML) and served by <a href="http://www.apache.org/"><font
393 color="#000000">Apache</font></a> webserver.
394 </font>
395 </define-tag>
396
397 ##
398 ##  Finally, the layout is now rendered, so divert all
399 ##  following stuff (the code in the local file after the #use 
400 ##  for this template!) into the white body area.
401 ##
402
403 ..PAGE_BODY>>
404