finish incomplete fix for utf8 on index pages
[mharc.git] / lib / common.mrc
1 <!-- $Id: common.mrc.in.dist,v 1.17 2002/07/23 05:51:46 ehood Exp $  -->
2 <!-- ================================================================== -->
3 <!--    MHonArc Resource File for Mail Archives                         -->
4 <!--    Description:
5           This is the main resource file for the mail archives.
6           it contains all the common formatting characteristics
7           used across archives.  Archive specific settings can
8           be set via command-line options the bin/web-archive
9           program.
10   -->
11 <!-- ================================================================== -->
12
13 <!-- CONLEN should only be set of Content-Length is accurate for the
14      system.  Mail delivery under Solaris sets it properly.
15      XXX: Should probably move this to command-line invocation.
16   -->
17 <ConLen>
18
19 <!-- Added POSIXSTRFTIME so that we can print out timezone specs for
20      archive generation (RT #244804) - baughj, 2005.06.16
21   -->
22 <POSIXSTRFTIME>
23
24 <!-- Added for rt#106039 -- bernie -->
25 <!-- And #592561 and #592561, importantly also adding the html header line below in IdxPgBegin and MsgPgBegin -- ward -->
26 <TextEncode>
27 utf-8; MHonArc::UTF8::to_utf8; MHonArc/UTF8.pm
28 </TextEncode>
29
30 <-- With data translated to UTF-8, it simplifies CHARSETCONVERTERS -->
31 <CharsetConverters override>
32 default; mhonarc::htmlize
33 </CharsetConverters>
34
35 <-- Need to also register UTF-8-aware text clipping function -->
36 <TextClipFunc>
37 MHonArc::UTF8::clip; MHonArc/UTF8.pm
38 </TextClipFunc>
39
40 <!-- ================================================================== -->
41 <!--    Custom Variable Defintions                                      -->
42 <!-- ================================================================== -->
43 <!--
44         The following variables defined by the web-archive program
45         and not here:
46           $ALL-LISTS-URL$       URL to all archive listing.
47           $CUR-PERIOD$          Current period in YYYY or YYYY-MM format.
48           $LIST-NAME$           Archive/list name and search index name.
49           $LIST-TITLE$          Archive/list title: generally equals
50                                 $LIST-NAME$, but can be different like for
51                                 CVS commit archives.
52           $PNAV-CGI$            URL to period navigation cgi program.
53           $SEARCH-CGI$          URL to search cgi program.
54   -->
55
56 <SPAMMODE>
57
58 <AddressModifyCode>
59 $_ = 'address@hidden';
60 </AddressModifyCode>
61
62 <!-- Variables representing period links for index pages.
63   -->
64 <DefineVar chop>
65 PREV-PERIOD-LABEL
66 Prev&nbsp;Period
67 </DefineVar>
68
69 <DefineVar chop>
70 NEXT-PERIOD-LABEL
71 Next&nbsp;Period
72 </DefineVar>
73
74 <DefineVar chop>
75 PREV-PERIOD-LINK
76 [<a href="$PNAV-CGI$?a=$LIST-NAME$&amp;m=$CUR-PERIOD$&amp;d=prev">$PREV-PERIOD-LABEL$</a>]
77 </DefineVar>
78
79 <DefineVar chop>
80 NEXT-PERIOD-LINK
81 [<a href="$PNAV-CGI$?a=$LIST-NAME$&amp;m=$CUR-PERIOD$&amp;d=next">$NEXT-PERIOD-LABEL$</a>]
82 </DefineVar>
83
84 <DefineVar chop>
85 TPREV-PERIOD-LINK
86 [<a href="$PNAV-CGI$?a=$LIST-NAME$&amp;m=$CUR-PERIOD$&amp;d=prev&amp;t=t">$PREV-PERIOD-LABEL$</a>]
87 </DefineVar>
88
89 <DefineVar chop>
90 TNEXT-PERIOD-LINK
91 [<a href="$PNAV-CGI$?a=$LIST-NAME$&amp;m=$CUR-PERIOD$&amp;d=next&amp;t=t">$NEXT-PERIOD-LABEL$</a>]
92 </DefineVar>
93
94 <!-- Variable representing markup of search form.
95   -->
96 <DefineVar>
97 SEARCH-FORM
98 <form method="get" action="$SEARCH-CGI$">
99 <input type="text" name="query" size="30">
100 <input type="submit" name="submit" value="Search">
101 <input type="hidden" name="idxname" value="$LIST-NAME$">
102 <a href="$SEARCH-CGI$?idxname=$LIST-NAME$">Advanced</a>
103 </form>
104 </DefineVar>
105
106 <DefineVar chop>
107 THREAD-IDX-LINK
108 [<b><a href="$TIDXFNAME$">Thread&nbsp;Index</a></b>]
109 </DefineVar>
110
111 <DefineVar chop>
112 DATE-IDX-LINK
113 [<b><a href="$IDXFNAME$">Date&nbsp;Index</a></b>]
114 </DefineVar>
115
116 <!-- Main index page nav links if MULTIPG is ever used.
117      This variable could be reference by list-specific resource files
118      if MULTIPG is activated.
119   -->
120 <DefineVar>
121 MAIN-PAGE-LINKS
122 <hr size=1 noshade>
123 <table width="100%" border=0 cellpadding=0 cellspacing=0>
124 <tr align="center">
125 <th colspan=4><small>Page $PAGENUM$ of $NUMOFPAGES$</small></th>
126 <tr>
127 <td align="left"
128 ><small>[<a href="$PG(FIRST)$">First&nbsp;Page</a>]</small></td>
129 <td align="right"><small>$PGLINK(PREV)$</small></td>
130 <td align="left"><small>$PGLINK(NEXT)$</small></td>
131 <td align="right"><small>[<a href="$PG(LAST)$">Last&nbsp;Page</a>]</small></td>
132 </tr>
133 </table>
134 <hr size=1 noshade>
135 </DefineVar>
136
137 <!-- Thread index page nav links if MULTIPG ever used.
138      This variable could be reference by list-specific resource files
139      if MULTIPG is activated.
140   -->
141 <DefineVar>
142 THREAD-PAGE-LINKS
143 <hr size=1 noshade>
144 <table width="100%" border=0 cellpadding=0 cellspacing=0>
145 <tr align="center">
146 <th colspan=4><small>Page $PAGENUM$ of $NUMOFPAGES$</small></th>
147 <tr>
148 <td align="left"
149 ><small>[<a href="$PG(TFIRST)$">First&nbsp;Page</a>]</small></td>
150 <td align="right"><small>$PGLINK(TPREV)$</small></td>
151 <td align="left"><small>$PGLINK(TNEXT)$</small></td>
152 <td align="right"><small>[<a href="$PG(TLAST)$">Last&nbsp;Page</a>]</small></td>
153 </tr>
154 </table>
155 <hr size=1 noshade>
156 </DefineVar>
157
158 <!-- ================================================================== -->
159 <!--    General Resources                                               -->
160 <!-- ================================================================== -->
161
162 <!-- Since we specify resource settings everytime, no need to save
163      them in archive database.
164   -->
165 <NoSaveResources>
166
167 <!-- Arguments to content filters.
168      CAUTION: Verify options against security concerns and make
169               any changes accordingly.
170   -->
171 <MIMEArgs override>
172 m2h_external::filter;   inline useicon
173 m2h_text_plain::filter; attachcheck quote maxwidth=80
174 m2h_text_html::filter;  notitle
175 </MIMEArgs>
176
177 <!-- Stricter MSGSEP.  Not important if CONLEN active.
178      XXX: Should this strict setting exist or should we just use
179           MHonArc's default value for MSGSEP as the default?
180   -->
181 <MsgSep>
182 ^From \S+\s+\S+\s+\S+\s+\d+\s+\d+:\d+:\d+\s+\d+
183 </MsgSep>
184
185 <!-- Icons settings copied from documentation.  Works with
186      Apache server.  Icons not used in index, but attachment
187      filter is given useicon argument.  If Apache is not used,
188      or the icon URLs are different, this resource needs to
189      be changed or the useicon argument removed from
190      m2h_external::filter.
191   -->
192 <Icons>
193 application/*;[20x22]/icons/generic.png
194 application/msword;[20x22]/icons/layout.png
195 application/postscript;[20x22]/icons/ps.png
196 application/rtf;[20x22]/icons/layout.png
197 application/x-csh;[20x22]/icons/script.png
198 application/x-dvi;[20x22]/icons/dvi.png
199 application/x-gtar;[20x22]/icons/tar.png
200 application/x-gzip;[20x22]/icons/compressed.png
201 application/x-ksh;[20x22]/icons/script.png
202 application/x-latex;[20x22]/icons/tex.png
203 application/octet-stream;[20x22]/icons/binary.png
204 application/x-patch;[20x22]/icons/patch.png
205 application/pdf;[20x22]/icons/pdf.png
206 application/x-script;[20x22]/icons/script.png
207 application/x-sh;[20x22]/icons/script.png
208 application/x-tar;[20x22]/icons/tar.png
209 application/x-tex;[20x22]/icons/tex.png
210 application/x-zip-compressed;[20x22]/icons/compressed.png
211 application/zip;[20x22]/icons/compressed.png
212 audio/*;[20x22]/icons/sound1.png
213 chemical/*;[20x22]/icons/sphere2.png
214 image/*;[20x22]/icons/image2.png
215 message/external-body;[20x22]/icons/link.png
216 multipart/*;[20x22]/icons/layout.png
217 text/*;[20x22]/icons/text.png
218 video/*;[20x22]/icons/movie.png
219 */*;[20x22]/icons/generic.png
220 </Icons>
221
222 <!-- ================================================================== -->
223 <!--    Main Index                                                      -->
224 <!-- ================================================================== -->
225
226 <!-- Set sorting order of main index pages: Reverse chronological.  -->
227 <Sort>
228 <Reverse>
229
230 <!-- Show dates in local time. -->
231 <UseLocalTime>
232
233 <!-- Make date index the default page for the archive. -->
234 <IdxFName>
235 index.html
236 </IdxFName>
237
238 <MsgLocalDateFmt>
239 %B %d, %Y
240 </MsgLocalDateFmt>
241
242 <IdxPgBegin>
243 <!doctype html public "-//W3C//DTD HTML//EN">
244 <html>
245 <head>
246 <title>$IDXTITLE$</title>
247 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
248 <style> .nowrap { white-space: nowrap } </style>
249 </head>
250 <body>
251 <center>
252 <em>Archives are refreshed every 15 minutes - for details, please visit
253 <a href="http://lists.gnu.org/archive/html/">the main index</a>.</em>
254 <br>
255 You can also <a href="https://lists.gnu.org/archive/mbox/$LIST-NAME$/">download the archives in mbox format</a>.
256 <p>
257 <table border=0 cellspacing=2 cellpadding=0 bgcolor="#000000">
258 <tr><td><table border=0 bgcolor="#FFFFCC">
259 <tr><td><big><big><b>$IDXTITLE$</b></big></big></td></tr></table></tr></table>
260 <div class="nowrap">
261 <small>$THREAD-IDX-LINK$[<a href="../"
262 >Top</a>][<a href="$ALL-LISTS-URL$">All Lists</a>][<a
263 href="//lists.gnu.org/mailman/listinfo/$LIST-NAME$">$LIST-NAME$ info page</a>]</small>
264 </div>
265 $SEARCH-FORM$
266 </center>
267 </IdxPgBegin>
268
269 <ListBegin>
270 <table width="100%">
271 <tr valign="bottom">
272 <td align="left">$PREV-PERIOD-LINK$</td>
273 <td align="center"><small
274 >Last Modified: $MSGLOCALDATE(LAST;%a %b %d %Y %H:%M:%S %z)$<br>
275 Messages in reverse chronological order</small></td>
276 <td align="right">$NEXT-PERIOD-LINK$</td>
277 </tr>
278 </table>
279 <hr size="1" noshade>
280 <ul>
281 </ListBegin>
282
283 <!-- Date listing is done in day groups with the each day listed in bold
284      and messages for that date listed under it.
285   -->
286 <DayBegin>
287 <li><strong>$MSGLOCALDATE$</strong>
288 <ul>
289 </DayBegin>
290
291 <DayEnd>
292 </ul></li>
293 </DayEnd>
294
295 <LITemplate>
296 <li>$SUBJECT$, <i>$FROMNAME$</i>, <tt>$MSGLOCALDATE(CUR;%H:%M)$</tt></li>
297 </LITemplate>
298
299 <ListEnd>
300 </ul>
301 <hr size="1" noshade>
302 <table width="100%">
303 <tr valign="bottom">
304 <td align="left">$PREV-PERIOD-LINK$</td>
305 <td align="right">$NEXT-PERIOD-LINK$</td>
306 </tr>
307 </table>
308 </ListEnd>
309
310 <!-- ================================================================== -->
311 <!--    Thread Index                                                    -->
312 <!-- ================================================================== -->
313
314 <!-- Reverse thread order. -->
315 <TReverse>
316
317 <!-- Show no indicator of subject-based thread detection since most
318      people do not care.
319      NOTE: The blank line is important!
320   -->
321 <TSubjectBeg>
322
323 </TSubjectBeg>
324
325 <TIdxPgBegin>
326 <!doctype html public "-//W3C//DTD HTML//EN">
327 <html>
328 <head>
329 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
330 <title>$TIDXTITLE$</title>
331 </head>
332 <body>
333 <center>
334 <em>Archives are refreshed every 15 minutes - for details, please visit <a
335 href="http://lists.gnu.org/archive/html/">the main index</a>.</em>
336 <br>
337 You can also <a href="https://lists.gnu.org/archive/mbox/$LIST-NAME$/">download the archives in mbox format</a>.
338 <p>
339 <table border=0 cellspacing=2 cellpadding=0 bgcolor="#000000">
340 <tr><td><table border=0 bgcolor="#FFFFCC">
341 <tr><td><big><big><b>$TIDXTITLE$</b></big></big></td></tr></table></tr></table>
342 <div class="nowrap">
343 <small
344 >$DATE-IDX-LINK$[<a href="../"
345 >Top</a>][<a href="$ALL-LISTS-URL$">All Lists</a>]</small>
346 </div>
347 $SEARCH-FORM$
348 </center>
349 </TIdxPgBegin>
350
351 <THead>
352 <table width="100%">
353 <tr valign="bottom">
354 <td align="left">$TPREV-PERIOD-LINK$</td>
355 <td align="center"><small
356 >Last Modified: $MSGLOCALDATE(LAST;%a %b %d %Y %H:%M:%S %z)$<br>
357 Threads in reverse chronological order</small></td>
358 <td align="right">$TNEXT-PERIOD-LINK$</td>
359 </tr>
360 </table>
361 <hr size="1" noshade>
362 <ul>
363 </THead>
364
365 <TTopBegin>
366 <li><b>$SUBJECT$</b>, <i>$FROMNAME$</i>, <tt>$MSGLOCALDATE(CUR;%Y/%m/%d)$</tt>
367 </TTopBegin>
368
369 <TLiTxt>
370 <li><b>$SUBJECT$</b>, <i>$FROMNAME$</i>, <tt>$MSGLOCALDATE(CUR;%Y/%m/%d)$</tt>
371 </TLiTxt>
372
373 <TSingleTxt>
374 <li><b>$SUBJECT$</b>, <i>$FROMNAME$</i>, <tt>$MSGLOCALDATE(CUR;%Y/%m/%d)$</tt>
375 </TSingleTxt>
376
377 <TFoot>
378 </ul>
379 <hr size="1" noshade>
380 <table width="100%">
381 <tr valign="bottom">
382 <td align="left">$TPREV-PERIOD-LINK$</td>
383 <td align="right">$TNEXT-PERIOD-LINK$</td>
384 </tr>
385 </table>
386 </TFoot>
387
388 <!-- ================================================================== -->
389 <!--    Message Pages                                                   -->
390 <!-- ================================================================== -->
391
392 <ModTime>
393
394 <!-- We clip the subject title to 72 characters to prevent ugly pages
395      due to very long subject lines.  The full subject text will still
396      be shown in the formatted message header.
397   -->
398 <MsgPgBegin>
399 <!doctype html public "-//W3C//DTD HTML//EN">
400 <html>
401 <head>
402 <title>$SUBJECTNA:72$</title>
403 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
404 </head>
405 <body>
406 <center>
407 <table border=0 cellspacing=2 cellpadding=0 bgcolor="#000000">
408 <tr><td><table border=0 bgcolor="#FFFFCC">
409 <tr><td><big><b>$LIST-TITLE$</b></big></td></tr></table></tr></table>
410 <div class="nowrap">
411 <small>[<a href="../"
412 >Top</a>][<a href="$ALL-LISTS-URL$">All Lists</a>]</small>
413 </div>
414 $SEARCH-FORM$
415 </center>
416 </MsgPgBegin>
417
418 <TopLinks>
419 <hr>
420 $BUTTON(PREV)$$BUTTON(NEXT)$$BUTTON(TPREV)$$BUTTON(TNEXT)$[<a
421 href="$IDXFNAME$#$MSGNUM$">Date Index</a>][<a
422 href="$TIDXFNAME$#$MSGNUM$">Thread Index</a>]
423 </TopLinks>
424
425 <SubjectHeader>
426 <h2>$SUBJECTNA:72$</h2>
427 <hr>
428 <table border=0>
429 <tbody>
430 <tr>
431 <td align="right" valign="top">
432 <b>From</b>: </td>
433 <td align="left">
434 $FROMNAME$</td>
435 </tr>
436 </SubjectHeader>
437
438 <!-- Format message header in a table. -->
439
440 <FieldOrder>
441 subject
442 date
443 user-agent
444 </FieldOrder>
445
446 <Fieldsbeg>
447
448 </FieldsBeg>
449
450 <LabelBeg>
451 <tr>
452 <td align="right" valign="top">
453 </LabelBeg>
454
455 <LabelEnd>
456 : </td>
457 </LabelEnd>
458
459 <FldBeg>
460 <td align="left">
461 </FldBeg>
462
463 <FldEnd>
464 </td>
465 </tr>
466 </FldEnd>
467
468 <FieldsEnd>
469 </tbody>
470 </table>
471 </FieldsEnd>
472
473 <LabelStyles>
474 -default-:b
475 </LabelStyles>
476
477 <!-- Disable explicit follow-up/references section and use $TSLICE$ instead.
478   -->
479 <NoFolRefs>
480
481 <!-- Set TSLICE resource to represent default $TSLICE$ behavior and
482      mainly to set the maximum message page update ranges when messages
483      are added to the archive.  I.e.  The before and after values
484      should represent the largest before and after values we will use
485      with $TSLICE$.
486   -->
487 <TSlice>
488 10:10:1
489 </TSlice>
490
491 <!-- We set up slice formatting so current message in thread is not
492      hyperlinked and "greyed out".  We could probably use CSS to
493      do this, but <font> seems to still work with most popular
494      graphical browsers.
495   -->
496 <TSliceBeg>
497 <ul>
498 </TSliceBeg>
499
500 <TSliceTopBeginCur>
501 <li><font color="#666666"><strong>$SUBJECTNA$</strong>,
502 <em>$FROMNAME$</em></font>&nbsp;<b>&lt;=</b>
503 </TSliceTopBeginCur>
504
505 <TSliceLiTxtCur>
506 <li><font color="#666666"><strong>$SUBJECTNA$</strong>,
507 <em>$FROMNAME$</em></font>&nbsp;<b>&lt;=</b>
508 </TSliceLiTxtCur>
509
510 <TSliceSingleTxtCur>
511 <li><font color="#666666"><strong>$SUBJECTNA$</strong>,
512 <em>$FROMNAME$</em></font>&nbsp;<b>&lt;=</b>
513 </TSliceSingleTxtCur>
514
515 <TSliceEnd>
516 </ul>
517 </TSliceEnd>
518
519 <!-- Modify end of message body to include thread slice.  We also
520      include convenient next/prev-in-thread links since scanning
521      slice can be inconvenient for simple thread reading.
522   -->
523 <MsgBodyEnd>
524 <hr>
525 <form method="post" action="/mp/yyz.py" enctype="multipart/form-data">
526 <input type="hidden" name="a" value="$FROMADDRNAME$">
527 <input type="hidden" name="b" value="$SUBJECTNA$">
528 <input type="hidden" name="d" value="$MSGID$">
529 <input type="hidden" name="c" value="$FROMADDRDOMAIN$">
530 <center>reply via email to<br><input type="submit" value=" $FROMNAME$ "></center>
531 </form>
532 <hr>
533 <table width="100%">
534 <tr><td align="left">$BUTTON(TPREVIN)$</td>
535 <td align="center"><b>Current Thread</b></td>
536 <td align="right">$BUTTON(TNEXTIN)$</td></tr></table>
537 $TSLICE$
538 <hr>
539 </MsgBodyEnd>