Source

xemacsweb / About / Website.content

Full commit
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
%title%
The XEmacs Multiplying Website
%author%
Adrian Aichner
%main%

  <h1>The <a id="TMXW" name="TMXW">Multiplying</a> XEmacs Website</h1>
  <p><a href="#index">Goto</a> Index</p>


  <p>
    The site is currently hosted by
    <a href="http://www.tux.org/">
      <img src="http://www.tux.org/images/minibanner.gif"
           width="88"
           height="31"
           border="0"
           alt="Tux.Org Logo"/></a>.
  </p>

  <p>
    What may be overlooked is that it also lives on many computers of
    developers around the world.  That's what I call a multiplying
    website :-)</p>

  <p>
    This website started out as a copy of the XEmacs site hosted by <a
                                                                       href="http://www.tux.org/">tux.org</a>. Here is a
    list of key features the new site provides:</p>

  <ul>
    <li>
      <p>
        All site content is under CVS control.</p></li>
    <li>
      <p>
        CVS commits update all website mirrors automatically.</p></li>
    <li>
      <p>
        The XEmacs website is just another CVS working directory
        containing the latest revisions of files from the repository.
        Consequently all its ChangeLog files, .cvsignore files,
        genpage .content files, perl scripts, emacs-lisp files are
        also available via the website.</p></li>
    <li>
      <p>
        HTML document changes are validated against their DTD
        automatically.</p></li>
    <li>
      <p>
        <a href="../genpage/www/index.html">genpage</a>
        eases maintenance of a consistent look.</p></li>
    <li>
      <p>
        All intra-site links are relative to allow site mirroring and
        link-testing in developers' working directories.</p></li>
    <li>
      <p>
        Website development model is fully in line with the XEmacs
        development model.</p></li>
    <li>
      <p>
        Site update <a href="../logs/?M=D">logs</a> may also
        be available via HTTP, depending on the update method of the
        particular web-mirror you're visiting.</p></li>
  </ul>

  <hr />

  <h2>XEmacs <a id="XWCR" name="XWCR">Website</a> CVS Repository</h2>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    The XEmacs Website repository is hosted by
    <a href="http://alioth.debian.org/">Alioth.debian.org</a>
    and
    can be <a href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/?root=xemacs"
              >browsed</a> by anyone.</p>

  <h3><a id="ACA" name="ACA">Anonymous</a> CVS Access</h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    Sources can be checked out into a local working directory very
    easily and anonymously too:</p>

  <pre xml:space="preserve">
$ <strong>cvs -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/xemacs login</strong>
Logging in to :pserver:anonymous@cvs.alioth.debian.org:2401/cvsroot/xemacs
CVS password:<cite>&lt;press Enter or RETURN key&gt;</cite>

$ <strong>cvs -f -z3 -d :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/xemacs \
      checkout -P xemacsweb</strong>
cvs server: Updating xemacsweb
U xemacsweb/.cvsignore
&lt;lines deleted by Adrian&gt;
U xemacsweb/genpage/news.themes/slashdot.gpnewstheme

$ <strong>cd xemacsweb</strong>
$ <strong>make init</strong>
ln -s FAQ faq
cd genpage; make gp
&lt;lines deleted by Adrian&gt;
$
  </pre>

  <p>
    This is enough for people without write access to the CVS
    repository to make local changes for submission as patches or
    even to create a mirror site!</p>

  <h3><a id="CCAvS" name="CCAvS">CVS Commit Access via SSH</a></h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    Developers can commit their changes (after getting approval
    for the patch sent to
    <a href="mailto:xemacs-patches@xemacs.org">xemacs-patches@xemacs.org</a>)
    to the repository directly.</p>

  <!-- Produced by:
  c:\Hacking\cvs.alioth.debian.org\xemacs-builds\adrian\website\avail2table.pl -path XEmacs/xemacsweb ../../../CVSROOT/avail
  Id: avail2table.pl,v 1.4 2006-02-12 16:40:39 adrian Exp 
  at Sat Dec  5 12:25:02 2009 UTC -->
  <p>
    The repository at Alioth.debian.org went live at the end of 2009.
    Following users can commit their changes to
    the repository themselves, as of 2009-12-05 UTC.</p>

  <table border="1">
    <tbody>
      <tr>
        <!-- one of (td th) -->
        <td>acs-xemacs-guest</td>
        <td>apa-guest</td>
        <td>crestani-guest</td>
      </tr>
      <tr>
        <!-- one of (td th) -->
        <td>daiki-guest</td>
        <td>didier-guest</td>
        <td>jjames-guest</td>
      </tr>
      <tr>
        <!-- one of (td th) -->
        <td>sperber-guest</td>
        <td>sxemacs-guest</td>
        <td>unwelcome-guest</td>
      </tr>
      <tr>
        <!-- one of (td th) -->
        <td>viteno-guest</td>
      </tr>
    </tbody>
  </table>

  <p>
    Here is an example for an actual commit.  Your ssh identity
    will authenticate you as one of the above, if you're lucky
    :-)</p>

  <pre xml:space="preserve">
<strong>cvs -f -z3 -d :ext:apa-guest@cvs.alioth.debian.org:/cvsroot/xemacs \
commit -m '[AC] xemacsweb: Renovate Website Implementation Documentation' \
About/ChangeLog About/Website.content</strong>
Enter passphrase for RSA key 'Adrian Aichner &lt;adrian@xemacs.org&gt;':
**** Access allowed: Personal Karma exceeds Environmental Karma.
/cvsroot/xemacs/XEmacs/xemacsweb/About/ChangeLog,v  <--  About/ChangeLog
new revision: 1.228; previous revision: 1.227
/cvsroot/xemacs/XEmacs/xemacsweb/About/Website.content,v  <--  About/Website.content
new revision: 1.72; previous revision: 1.71
Processing log script arguments...
Mailing the commit message to xemacs-cvs@xemacs.org (from xemacs-cvs@xemacs.org)
Updating website as xemacweb@www.xemacs.org ...
  </pre>

  <p>
    This will cause all master websites (i.e. <a
    href="http://www.us.xemacs.org">http://www.us.xemacs.org</a>, as
    of 2009-12-05) to be updated and the affected files validated
    automatically!</p>

  <p>
    The result of a website update (make all) can be
    <a href="../logs/">viewed</a> in a newly created log
    file (containing the UTC time of the commit in its name --
    represented almost exactly according to ISO8601).</p>

  <p>
    If you have a track record of contributing to XEmacs or its
    website you may request to become a website developer by
    E-mail to <a
                 href="mailto:xemacs-webmaint@xemacs.org?subject=xemacsweb%20committer%20request"
                 >xemacs-webmaint@xemacs.org</a>.</p>

  <hr />

  <h2>Automatic <a id="AWU" name="AWU">Website</a> Update</h2>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    This is performed via the shared project accounts named
    <strong>xemacweb@www.xemacs.org</strong> (for <a
    href="http://www.xemacs.org/">http://www.xemacs.org/</a>).</p>

  <p>
    <a>Use alias <strong>web-update</strong> in any of these accounts
      to
      update the website from CVS manually, but only if the automatic
      update is broken.</a></p>

  <p>
    A loginfo entry for the <cite>xemacsweb</cite> module on
    Alioth.debian.org currently (2009-12-05) takes care of the
    automatic update of <a
    href="http://www.xemacs.org/">www.xemacs.org</a>, which involves a
    <cite>cvs update</cite>, followed by a <cite>make
      all</cite> run.</p>

  <p>
    Please note that a failing <cite>cvs update</cite> (e.g. due to a
    CVS conflict) will cause <cite>make all</cite> not to be run!  CVS
    conflicts on our master websites really need to be fixed
    anyway.</p>

  <p>
    Commits also cause a mail message to be sent to the list
    <a href="http://calypso.tux.org/pipermail/xemacs-cvs/">xemacs-cvs</a>@xemacs.org,
    which is one of the XEmacs
    <a href="<!-- _GP_ relPath(qq{Lists/index.html}) -->">mailing lists</a>.
  </p>

  <hr />

  <h2>Automatic <a id="AWV" name="AWV">Website</a> Validation</h2>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    Who could better validate XEmacs documentation than the master
    himself: XEmacs?  The strength is not so much in the completeness
    of validation as it is in the integration with the XEmacs/PSGML
    web authoring environment.</p>

  <p>
    A small lisp module,
    <a href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/batch-psgml-validate.el?view=markup&root=xemacs">xemacsweb/batch-psgml-validate.el</a>,
    utilizes <cite>PSGML</cite> to validate buffers, files, or directories,
    according to the DTD they contain.</p>

  <p>
    NB: An external validator like <a href="http://www.jclark.com/sp/">SP</a>
    may be used additionally in the future.</p>

  <hr />

  <h2><a id="Maclwg" name="Maclwg">Maintaining</a> a consistent look with genpage</h2>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    Whenever you think about changing <var>X</var>.html in this site,
    please check whether <var>X</var>.content exists as well.
    <strong>In such a case, any changes you
      make to X.html will be lost!</strong></p>

  <p>
    See <strong><a href="#GfC">Guidelines for
        Contributors</a></strong> for more information about
    creating and editing .content files.</p>

  <p>
    <a href="<!-- _GP_ relPath(qq{genpage/www/}) -->">genpage</a> is used
    to give a common look to HTML
    content in this site by wrapping it into HTML templates.
    Currently the only template in use is
    <a href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/template.html?view=markup&root=xemacs"
      >xemacsweb/template.html</a>.  genpage is run by the
    <a href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/Makefile?view=markup&root=xemacs"
      >xemacsweb/Makefile</a> according to the configuration
    defined in
    <a href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/genpage.conf?view=markup&root=xemacs"
      >xemacsweb/genpage.conf</a>.</p>

  <p>
    You may run this Makefile in your local xemacsweb working
    directory, provided you have <strong>XEmacs</strong> (including
    the <strong>PSGML</strong> package), <strong>perl5</strong> and
    <strong>GNU make</strong> installed.  genpage itself is found in
    xemacsweb/genpage/bin/genpage, but the Makefile knows that.  On
    Windows NT you will also need to install Cygwin for the Makefile
    to run.</p>

  <p>
    We currently use genpage version 1.0.7, imported on a vendor
    branch.  Local changes were necessary to make it work for the
    XEmacs site, and to make it work on Windows NT (see
    <a href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/genpage/ChangeLog?view=markup&root=xemacs"
      >xemacsweb/genpage/ChangeLog</a> for details).  These
    will need to be reviewed when a
    <a href="<!-- _GP_ relPath(qq{genpage/www/completenews.html}) -->"
      >newer version</a> of genpage ever gets imported.</p>

  <hr />

  <h2><a id="RLaMaO-sT" name="RLaMaO-sT">Relative</a> Links allow Mirroring and Off-site Testing</h2>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    Considerable work has been done to make all links <em>within</em>
    this website <em>relative</em>.  In particular, all uses of
    <strong>&lt;base
      href="..."&gt;</strong> were eliminated since they add
    another twist.  Relative links become relative to the URL
    specified by <strong>&lt;base href="..."&gt;</strong>, not
    relative to the location of the document they appear in.</p>

  <p>
    Special consideration had to be given to
    <a href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/template.html?view=markup&root=xemacs"
      >xemacsweb/template.html</a>.  This genpage template
    is used to provide a consistent look for the XEmacs site.  It
    wraps all HTML content of .content files in the xemacsweb
    directory hierarchy.  Any links template.html itself contains must
    be expanded relative to the directory of the content file.  This
    has been implemented by use of the
    <a href="../genpage/www/recipes/relPath.html">relPath</a> genpage recipe.
  </p>

  <hr />

  <h2><a id="GfC" name="GfC">Guidelines</a> for Contributors</h2>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    These rules serve the purpose of <em>minimizing
      work</em> and <em>accelerating the learning curve</em> for
    contributors.</p>

  <p>
    The goal is to provide a high-quality, consistent website, showing
    off the power of XEmacs and its contributors.</p>

  <p>
    NB: Expect the rules to evolve as they get reviewed by
    contributors.  These just came in handy while I moved the content
    over from www.xemacs.org -- Adrian.</p>

  <p>
    If you want to follow the discussions going on about this website
    you should subscribe yourself to the <strong>XEmacs Web
      Maintainers
      &lt;xemacs-webmaint@xemacs.org&gt;</strong> list by
    sending a request to <a href="mailto:xemacs-webmaint-request@xemacs.org"
      >xemacs-webmaint-request@xemacs.org</a> with the word
    <strong>subscribe</strong> being the body of the message.  This
    mailing list isn't archived anywhere currently.</p>

  <hr width="80%" />

  <h3><a id="C.cffnd" name="C.cffnd">Create</a> .content files for new documentation</h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    All new documents should be .content files to be processed by
    genpage.  Just create the new file in xemacsweb or any of its
    sub-directories and run <strong>make all</strong> in the top-level
    directory (xemacsweb).  This will generate a .html file by the
    same name and validate it using XEmacs/PSGML.</p>

  <p>
    Here is what a minimal .content file looks like:</p>

  <table border="1">
    <tbody>
      <tr>
        <!-- one of (TD TH) -->
        <td rowspan="1" colspan="1">
          <pre xml:space="preserve">
<!-- _GP_ qq{%title%} -->
Title of Your Document
<!-- _GP_ qq{%author%} -->
Your Name
<!-- _GP_ qq{%main%} -->
Any text including HTML tags.  This text will be embedded in the
specified genpage template.  It is equivalent to the contents of the
&lt;body&gt;...&lt;/body&gt; section of a corresponding HTML
document.</pre>
        </td>
      </tr>
    </tbody>
  </table>

  <p>
    When you need to avoid substitution of
    <a href="../genpage/www/index.html#7">genpage content tags</a> in
    .content files (like I did in the table
    above) you may use the following trick:</p>

  <pre xml:space="preserve">
&lt;!-- _GP_ qq{%title%} --&gt;
  </pre>

  <p>
    This genpage command returns the string-quoted genpage content tag
    as a string.</p>

  <hr width="80%" />

  <h3><a id="G.cffe.hd" name="G.cffe.hd">Generate</a> .content files from existing .html documents</h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    Use <a
      href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/html2content.pl?view=markup&root=xemacs"
      >xemacsweb/html2content.pl</a> to convert all .html
    files in a specified directory (recursively) to .content files.
    Existing .content files will not be overwritten.</p>

  <hr width="80%" />

  <h3><a id="E.cfix-mwXP" name="E.cfix-mwXP">Editing</a> .content files in xml-mode with XEmacs/PSGML</h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    This is the environment of choice for editing XEmacs website
    content.</p>

  <p>
    Add following SGML comment block to the end of your .content file,
    so that PSGML will be configured correctly to markup and indent
    the file.</p>

  <table border="1">
    <!-- one of (tbody tr) -->
    <tbody>
      <tr>
        <!-- one of (td th) -->
        <td>
          <pre xml:space="preserve">
&lt;!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:("../template.html" "html" "body" "table" "tr" "td")
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
--&gt;</pre>
        </td>
      </tr>
    </tbody>
  </table>

  <p>
    You'll have to manually adjust the relative path to the
    appropriate genpage template in
    <cite>sgml-parent-document</cite>.</p>

  <p>
    XEmacs/PSGML is also used by the automated process which validates
    all documents committed to the CVS repository.</p>

  <hr width="80%" />

  <h3>Use <a id="Ul-cHt" name="Ul-cHt">lower</a>-case HTML tags</h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    This is in preparation of a possible future migration to
    <cite>XML</cite>.</p>

  <hr width="80%" />

  <h3>Use <a id="Urlwp" name="Urlwp">relative</a> links wherever possible</h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    This makes site mirroring a free gift and allows developers to
    test intra-site links in their private working directories
    off-site.  Absolute links have to be used for resources which are
    not part of the xemacsweb CVS module and not available on all
    XEmacs website mirrors (e.g.
    <a href="http://list-archive.xemacs.org/">Mailing list archives</a>).</p>

  <hr width="80%" />

  <h3>Use logical vs. physical <a id="Ulv.pm" name="Ulv.pm">markup</a></h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    It is a HTML authoring commandment to prefer logical markups like
    &lt;blockquote&gt;</p>

  <blockquote>
    blockquote</blockquote>&lt;/blockquote&gt;,
  &lt;strong&gt;<strong>strong</strong>&lt;/strong&gt;,
  &lt;cite&gt;<cite>cite</cite>&lt;/cite&gt;,
  &lt;samp&gt;<samp>samp</samp>&lt;/samp&gt; over
  physical markup like &lt;br&gt;<br /> linebreak<br />
  &lt;br&gt;, &lt;b&gt;<b>bold</b>&lt;/b&gt;,
  &lt;i&gt;<i>italic</i>&lt;/i&gt;, or
  &lt;tt&gt;<tt>teletype</tt>&lt;/tt&gt;.

  <p>
    Use &lt;pre&gt;</p>

  <pre xml:space="preserve">
Retrieving newsgroup: nnml:xemacs-beta...
Fetching headers for nnml:xemacs-beta...
Fetching headers for nnml:xemacs-beta...done
Suppressing duplicates...
Suppressing duplicates...done
Generating summary...
Generating summary...done
Decoding base64...
Decoding base64... done</pre>

  <p>
    &lt;/pre&gt; to include long runs of program output like error
    message logs or backtraces.  Don't forget to quote HTML special
    characters in such excerpts!  In XEmacs this can be easily done
    with</p>

  <pre xml:space="preserve">M-x <strong>html-quote-region</strong></pre>

  <hr width="80%" />

  <h3>Use qq{<a id="Uqsnsigc" name="Uqsnsigc">string</a>}, not "string" in genpage commands</h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    All genpage commands (as opposed to genpage content tags) are
    embedded in HTML comments.  Whenever these commands are embedded
    inside an HTML attribute, embedded <cite>"</cite>s will produce an
    HTML validation error.</p>

  <p>
    Therefor, please use</p>

  <pre xml:space="preserve">
&lt;a href="&lt;!-- _GP_ relPath(<strong>qq{</strong>Develop/devTeam.html<strong>}</strong>) --&gt;"&gt;...</pre>

  <p>
    instead of</p>

  <pre xml:space="preserve">&lt;a href="&lt;!-- _GP_ relPath(<strong>"</strong>Develop/devTeam.html<strong>"</strong>) --&gt;"&gt;...</pre>

  <hr width="80%" />

  <h3><a id="ARA" name="ARA">Adding</a> Release Announcements</h3>
  <p><a href="#index">Goto</a> Index</p>

  <p>
    This step has been automated for the Stable and Beta XEmacs
    development branches.  See function
    <cite>release-mail-to-html</cite> in
    <a href="http://alioth.debian.org/scm/viewvc.php/XEmacs/xemacsweb/release-mail-to-html.el?view=markup&root=xemacs">xemacsweb/release-mail-to-html.el</a>.  A new
    .content file can be auto-generated by running</p>

  <p>
    The subject line and body content has to comply with the format
    agreed upon between the <cite>XEmacs Release Engineers</cite>.
    See xemacs-beta and xemacs-review for details.</p>

  <pre xml:space="preserve">
M-x <strong>release-mail-to-html</strong></pre>

  <p>
    Specify the name of the buffer containing a mail like this</p>

  <table border="1">
    <tbody>
      <tr>
        <!-- one of (TD TH) -->
        <td rowspan="1" colspan="1">
          <pre xml:space="preserve">
<strong>From:</strong> XEmacs Release Engineer &lt;martin@xemacs.org&gt;
<strong>Subject:</strong> XEmacs 21.2.36 is released.
<strong>To:</strong> XEmacs Beta Test &lt;xemacs-beta@xemacs.org&gt;
<strong>Date:</strong> Wed, 4 Oct 2000 19:45:46 +0900 (JST)
<strong>Message-ID:</strong> &lt;14811.2650.453628.696815@mule.m17n.org&gt;
<strong>Reply-To:</strong> martin@xemacs.org

C++ compiles are broken in this beta.  I plan to have them working
again in the next one, when we change Extbyte to be plain "char"
instead of "unsigned char".

Brief summary of changes to 21.2.36 "Notus"
...</pre>
        </td>
      </tr>
    </tbody>
  </table>

  <p>
    from the <cite>XEmacs Release Engineer</cite>.</p>

  <p>
    Save the buffer (automatically named
    <cite>release-number</cite>.content) in xemacsweb/Releases.</p>

  <p>
    Add references to this new files in xemacsweb/index.content and
    xemacsweb/Releases/index.content.</p>

  <p>
    Add the newly created
    xemacsweb/Releases/<cite>release-number</cite>.content file to CVS
    and commit it together with the other modified files.</p>

  <hr />

    <h1 id="index">Document Index</h1>
    <!-- This index was generated by c:\Users\AichnerAd\pl\HTMLindex.pl -headline -dtd xhtml -->
    <ul>
      <li><a href="#">Goto</a> Top</li>
      <li>The <a href="#TMXW">Multiplying</a> XEmacs Website</li>
      <li>XEmacs <a href="#XWCR">Website</a> CVS Repository</li>
      <li><a href="#ACA">Anonymous</a> CVS Access</li>
      <li><a href="#CCAvS">CVS Commit Access via SSH</a></li>
      <li>Automatic <a href="#AWU">Website</a> Update</li>
      <li>Automatic <a href="#AWV">Website</a> Validation</li>
      <li><a href="#Maclwg">Maintaining</a> a consistent look with genpage</li>
      <li><a href="#RLaMaO-sT">Relative</a> Links allow Mirroring and Off-site Testing</li>
      <li><a href="#GfC">Guidelines</a> for Contributors</li>
      <li><a href="#C.cffnd">Create</a> .content files for new documentation</li>
      <li><a href="#G.cffe.hd">Generate</a> .content files from existing .html documents</li>
      <li><a href="#E.cfix-mwXP">Editing</a> .content files in xml-mode with XEmacs/PSGML</li>
      <li>Use <a href="#Ul-cHt">lower</a>-case HTML tags</li>
      <li>Use <a href="#Urlwp">relative</a> links wherever possible</li>
      <li>Use logical vs. physical <a href="#Ulv.pm">markup</a></li>
      <li>Use qq{<a href="#Uqsnsigc">string</a>}, not "string" in genpage commands</li>
      <li><a href="#ARA">Adding</a> Release Announcements</li>
    </ul>
    <hr />
  <address><a href="mailto: adrian@xemacs.org">Adrian</a> Aichner</address>

  <!-- Keep this comment at the end of the file
  Local variables:
  mode: xml
  sgml-omittag:nil
  sgml-shorttag:nil
  sgml-namecase-general:nil
  sgml-general-insert-case:lower
  sgml-minimize-attributes:nil
  sgml-always-quote-attributes:t
  sgml-indent-step:2
  sgml-indent-data:t
  sgml-parent-document:("../template.html" "html" "body" "table" "tr" "td")
  sgml-exposed-tags:nil
  sgml-local-catalogs:nil
  sgml-local-ecat-files:nil
  End:
  -->