rebuild docs
[privoxy.git] / doc / webserver / developer-manual / documentation.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
2 <HTML
3 ><HEAD
4 ><TITLE
5 >Documentation Guidelines</TITLE
6 ><META
7 NAME="GENERATOR"
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
9 REL="HOME"
10 TITLE="Privoxy Developer Manual"
11 HREF="index.html"><LINK
12 REL="PREVIOUS"
13 TITLE="The Git Repository"
14 HREF="git.html"><LINK
15 REL="NEXT"
16 TITLE="Coding Guidelines"
17 HREF="coding.html"><LINK
18 REL="STYLESHEET"
19 TYPE="text/css"
20 HREF="../p_doc.css"><META
21 HTTP-EQUIV="Content-Type"
22 CONTENT="text/html;
23 charset=ISO-8859-1"></HEAD
24 ><BODY
25 CLASS="SECT1"
26 BGCOLOR="#EEEEEE"
27 TEXT="#000000"
28 LINK="#0000FF"
29 VLINK="#840084"
30 ALINK="#0000FF"
31 ><DIV
32 CLASS="NAVHEADER"
33 ><TABLE
34 SUMMARY="Header navigation table"
35 WIDTH="100%"
36 BORDER="0"
37 CELLPADDING="0"
38 CELLSPACING="0"
39 ><TR
40 ><TH
41 COLSPAN="3"
42 ALIGN="center"
43 >Privoxy Developer Manual</TH
44 ></TR
45 ><TR
46 ><TD
47 WIDTH="10%"
48 ALIGN="left"
49 VALIGN="bottom"
50 ><A
51 HREF="git.html"
52 ACCESSKEY="P"
53 >Prev</A
54 ></TD
55 ><TD
56 WIDTH="80%"
57 ALIGN="center"
58 VALIGN="bottom"
59 ></TD
60 ><TD
61 WIDTH="10%"
62 ALIGN="right"
63 VALIGN="bottom"
64 ><A
65 HREF="coding.html"
66 ACCESSKEY="N"
67 >Next</A
68 ></TD
69 ></TR
70 ></TABLE
71 ><HR
72 ALIGN="LEFT"
73 WIDTH="100%"></DIV
74 ><DIV
75 CLASS="SECT1"
76 ><H1
77 CLASS="SECT1"
78 ><A
79 NAME="DOCUMENTATION"
80 >3. Documentation Guidelines</A
81 ></H1
82 ><P
83 >    All formal documents are maintained in Docbook SGML and located in the
84     <SAMP
85 CLASS="COMPUTEROUTPUT"
86 >doc/source/*</SAMP
87 > directory. You will need
88     <A
89 HREF="http://www.docbook.org"
90 TARGET="_top"
91 >Docbook</A
92 >, the Docbook
93     DTD's and the Docbook modular stylesheets (or comparable alternatives),
94     and either <SPAN
95 CLASS="APPLICATION"
96 >jade</SPAN
97 > or
98     <SPAN
99 CLASS="APPLICATION"
100 >openjade</SPAN
101 > (recommended) installed in order to
102     build docs from source. Currently there is <A
103 HREF="../user-manual/index.html"
104 TARGET="_top"
105 ><I
106 CLASS="CITETITLE"
107 >user-manual</I
108 ></A
109 >,
110     <A
111 HREF="../faq/index.html"
112 TARGET="_top"
113 ><I
114 CLASS="CITETITLE"
115 >FAQ</I
116 ></A
117 >, and, of
118     course this, the <I
119 CLASS="CITETITLE"
120 >developer-manual</I
121 > in this format.
122     The <I
123 CLASS="CITETITLE"
124 >README</I
125 >, <I
126 CLASS="CITETITLE"
127 >AUTHORS</I
128 >,
129     <I
130 CLASS="CITETITLE"
131 >INSTALL</I
132 >,
133     <I
134 CLASS="CITETITLE"
135 >privoxy.1</I
136 > (man page), and
137     <I
138 CLASS="CITETITLE"
139 >config</I
140 > files are also now maintained as Docbook
141     SGML. These files, when built, in the top-level source directory are
142     generated files! Also, the <SPAN
143 CLASS="APPLICATION"
144 >Privoxy</SPAN
145 > <TT
146 CLASS="FILENAME"
147 >index.html</TT
148 > (and a
149     variation on this file, <TT
150 CLASS="FILENAME"
151 >privoxy-index.html</TT
152 >,
153     meant for inclusion with doc packages), are maintained as SGML as well.
154     <SPAN
155 CLASS="emphasis"
156 ><I
157 CLASS="EMPHASIS"
158 >DO NOT edit these directly</I
159 ></SPAN
160 >. Edit the SGML source, or
161     contact someone involved in the documentation.
162     </P
163 ><P
164 >     <TT
165 CLASS="FILENAME"
166 >config</TT
167 > requires some special handling. The reason it
168      is maintained this way is so that the extensive comments in the file
169      mirror those in <I
170 CLASS="CITETITLE"
171 >user-manual</I
172 >. But the conversion
173      process requires going from SGML to HTML to text to special formatting
174      required for the embedded comments. Some of this does not survive so
175      well. Especially some of the examples that are longer than 80 characters.
176      The build process for this file outputs to <TT
177 CLASS="FILENAME"
178 >config.new</TT
179 >,
180      which should be reviewed for errors and mis-formatting. Once satisfied
181      that it is correct, then it should be hand copied to
182      <TT
183 CLASS="FILENAME"
184 >config</TT
185 >.
186     </P
187 ><P
188 >     Other, less formal documents (e.g. <TT
189 CLASS="FILENAME"
190 >LICENSE</TT
191 >) are
192      maintained as plain text files in the top-level source directory.
193     </P
194 ><P
195 >     Packagers are encouraged to include this documentation. For those without
196      the ability to build the docs locally, text versions of each are kept in
197      Git. HTML versions are also being kept in Git under
198      <TT
199 CLASS="FILENAME"
200 >doc/webserver/*</TT
201 >.
202     </P
203 ><P
204 >     Formal documents are built with the Makefile targets of
205      <SAMP
206 CLASS="COMPUTEROUTPUT"
207 >make dok</SAMP
208 >.
209      The build process uses the document SGML sources in
210      <SAMP
211 CLASS="COMPUTEROUTPUT"
212 >doc/source/*/*</SAMP
213 > to update all text files in
214      <SAMP
215 CLASS="COMPUTEROUTPUT"
216 >doc/text/</SAMP
217 > and to update all HTML
218      documents in <SAMP
219 CLASS="COMPUTEROUTPUT"
220 >doc/webserver/</SAMP
221 >.
222     </P
223 ><P
224 >     Documentation writers should please make sure documents build
225      successfully before committing to Git, if possible.
226     </P
227 ><P
228 >     How do you update the webserver (i.e. the pages on privoxy.org)?
229     </P
230 ><P
231 ></P
232 ><OL
233 TYPE="1"
234 ><LI
235 ><P
236 >        First, build the docs by running <SAMP
237 CLASS="COMPUTEROUTPUT"
238 >make
239         dok</SAMP
240 >.
241       </P
242 ></LI
243 ><LI
244 ><P
245 >        Run <SAMP
246 CLASS="COMPUTEROUTPUT"
247 >make webserver</SAMP
248 > which copies all
249         files from <SAMP
250 CLASS="COMPUTEROUTPUT"
251 >doc/webserver</SAMP
252 > to the
253         sourceforge webserver via scp.
254       </P
255 ></LI
256 ></OL
257 ><P
258 >   Finished docs should be occasionally submitted to Git
259    (<TT
260 CLASS="FILENAME"
261 >doc/webserver/*/*.html</TT
262 >) so that those without
263    the ability to build them locally, have access to them if needed.
264    This is especially important just prior to a new release! Please
265    do this <SPAN
266 CLASS="emphasis"
267 ><I
268 CLASS="EMPHASIS"
269 >after</I
270 ></SPAN
271 > the <TT
272 CLASS="LITERAL"
273 >$VERSION</TT
274 > and
275    other release specific data in <TT
276 CLASS="FILENAME"
277 >configure.in</TT
278 > has been
279    updated (this is done just prior to a new release).
280   </P
281 ><DIV
282 CLASS="SECT2"
283 ><H2
284 CLASS="SECT2"
285 ><A
286 NAME="SGML"
287 >3.1. Quickstart to Docbook and SGML</A
288 ></H2
289 ><P
290 > If you are not familiar with SGML, it is a markup language similar to HTML.
291  Actually, not a mark up language per se, but a language used to define
292  markup languages. In fact, HTML is an SGML application. Both will use
293  <SPAN
294 CLASS="QUOTE"
295 >"tags"</SPAN
296 > to format text and other content. SGML tags can be much
297  more varied, and flexible, but do much of the same kinds of things. The tags,
298  or <SPAN
299 CLASS="QUOTE"
300 >"elements"</SPAN
301 >, are definable in SGML. There is no set
302  <SPAN
303 CLASS="QUOTE"
304 >"standards"</SPAN
305 >. Since we are using
306  <SPAN
307 CLASS="APPLICATION"
308 >Docbook</SPAN
309 >, our tags are those that are defined by
310  <SPAN
311 CLASS="APPLICATION"
312 >Docbook</SPAN
313 >. Much of how the finish document is
314  rendered is determined by the <SPAN
315 CLASS="QUOTE"
316 >"stylesheets"</SPAN
317 >.
318  The stylesheets determine how each tag gets translated to HTML, or other
319  formats.</P
320 ><P
321 > Tags in Docbook SGML need to be always <SPAN
322 CLASS="QUOTE"
323 >"closed"</SPAN
324 >. If not, you
325  will likely generate errors. Example: <TT
326 CLASS="LITERAL"
327 >&#60;title&#62;My
328  Title&#60;/title&#62;</TT
329 >. They are also case-insensitive, but we
330  strongly suggest using all lower case. This keeps compatibility with
331  [Docbook] <SPAN
332 CLASS="APPLICATION"
333 >XML</SPAN
334 >.</P
335 ><P
336 > Our documents use <SPAN
337 CLASS="QUOTE"
338 >"sections"</SPAN
339 > for the most part. Sections
340  will be processed into HTML headers (e.g. <TT
341 CLASS="LITERAL"
342 >h1</TT
343 > for
344  <TT
345 CLASS="LITERAL"
346 >sect1</TT
347 >). The <SPAN
348 CLASS="APPLICATION"
349 >Docbook</SPAN
350 > stylesheets
351  will use these to also generate the Table of Contents for each doc. Our
352  TOC's are set to a depth of three. Meaning <TT
353 CLASS="LITERAL"
354 >sect1</TT
355 >,
356  <TT
357 CLASS="LITERAL"
358 >sect2</TT
359 >, and <TT
360 CLASS="LITERAL"
361 >sect3</TT
362 > will have TOC
363  entries, but <TT
364 CLASS="LITERAL"
365 >sect4</TT
366 > will not. Each section requires
367  a <TT
368 CLASS="LITERAL"
369 >&#60;title&#62;</TT
370 > element, and at least one
371  <TT
372 CLASS="LITERAL"
373 >&#60;para&#62;</TT
374 >. There is a limit of five section
375  levels in Docbook, but generally three should be sufficient for our
376  purposes.</P
377 ><P
378 > Some common elements that you likely will use:</P
379 ><P
380 ></P
381 ><TABLE
382 BORDER="0"
383 ><TBODY
384 ><TR
385 ><TD
386 >      <SPAN
387 CLASS="emphasis"
388 ><I
389 CLASS="EMPHASIS"
390 >&#60;para&#62;&#60;/para&#62;</I
391 ></SPAN
392 >, paragraph delimiter. Most
393       text needs to be within paragraph elements (there are some exceptions).
394     </TD
395 ></TR
396 ><TR
397 ><TD
398 >      <SPAN
399 CLASS="emphasis"
400 ><I
401 CLASS="EMPHASIS"
402 >&#60;emphasis&#62;&#60;/emphasis&#62;</I
403 ></SPAN
404 >, the stylesheets
405       make this italics.
406     </TD
407 ></TR
408 ><TR
409 ><TD
410 >      <SPAN
411 CLASS="emphasis"
412 ><I
413 CLASS="EMPHASIS"
414 >&#60;filename&#62;&#60;/filename&#62;</I
415 ></SPAN
416 >, files and directories.
417     </TD
418 ></TR
419 ><TR
420 ><TD
421 >      <SPAN
422 CLASS="emphasis"
423 ><I
424 CLASS="EMPHASIS"
425 >&#60;command&#62;&#60;/command&#62;</I
426 ></SPAN
427 >, command examples.
428     </TD
429 ></TR
430 ><TR
431 ><TD
432 >      <SPAN
433 CLASS="emphasis"
434 ><I
435 CLASS="EMPHASIS"
436 >&#60;literallayout&#62;&#60;/literallayout&#62;</I
437 ></SPAN
438 >, like
439       <TT
440 CLASS="LITERAL"
441 >&#60;pre&#62;</TT
442 >, more or less.
443     </TD
444 ></TR
445 ><TR
446 ><TD
447 >      <SPAN
448 CLASS="emphasis"
449 ><I
450 CLASS="EMPHASIS"
451 >&#60;itemizedlist&#62;&#60;/itemizedlist&#62;</I
452 ></SPAN
453 >, list with bullets.
454     </TD
455 ></TR
456 ><TR
457 ><TD
458 >      <SPAN
459 CLASS="emphasis"
460 ><I
461 CLASS="EMPHASIS"
462 >&#60;listitem&#62;&#60;/listitem&#62;</I
463 ></SPAN
464 >, member of the above.
465     </TD
466 ></TR
467 ><TR
468 ><TD
469 >      <SPAN
470 CLASS="emphasis"
471 ><I
472 CLASS="EMPHASIS"
473 >&#60;screen&#62;&#60;/screen&#62;</I
474 ></SPAN
475 >, screen output, implies
476       <TT
477 CLASS="LITERAL"
478 >&#60;literallayout&#62;</TT
479 >.
480     </TD
481 ></TR
482 ><TR
483 ><TD
484 >      <SPAN
485 CLASS="emphasis"
486 ><I
487 CLASS="EMPHASIS"
488 >&#60;ulink url="example.com"&#62;&#60;/ulink&#62;</I
489 ></SPAN
490 >, like
491       HTML <TT
492 CLASS="LITERAL"
493 >&#60;a&#62;</TT
494 > tag.
495     </TD
496 ></TR
497 ><TR
498 ><TD
499 >      <SPAN
500 CLASS="emphasis"
501 ><I
502 CLASS="EMPHASIS"
503 >&#60;quote&#62;&#60;/quote&#62;</I
504 ></SPAN
505 >, for, doh, quoting text.
506     </TD
507 ></TR
508 ></TBODY
509 ></TABLE
510 ><P
511 ></P
512 ><P
513 > Look at any of the existing docs for examples of all these and more.</P
514 ><P
515 > You might also find
516  
517  <SPAN
518 CLASS="QUOTE"
519 >"<A
520 HREF="https://web.archive.org/web/20160315230758/http://opensource.bureau-cornavin.com/crash-course/index.html"
521 TARGET="_top"
522 > Writing Documentation Using DocBook - A Crash Course</A
523 >"</SPAN
524 > useful.</P
525 ></DIV
526 ><DIV
527 CLASS="SECT2"
528 ><H2
529 CLASS="SECT2"
530 ><A
531 NAME="DOCSTYLE"
532 >3.2. <SPAN
533 CLASS="APPLICATION"
534 >Privoxy</SPAN
535 > Documentation Style</A
536 ></H2
537 ><P
538 >    It will be easier if everyone follows a similar writing style. This
539     just makes it easier to read what someone else has written if it
540     is all done in a similar fashion.
541    </P
542 ><P
543 >    Here it is:
544    </P
545 ><P
546 ></P
547 ><UL
548 ><LI
549 ><P
550 >       All tags should be lower case.
551       </P
552 ></LI
553 ><LI
554 ><P
555 >       Tags delimiting a <SPAN
556 CLASS="emphasis"
557 ><I
558 CLASS="EMPHASIS"
559 >block</I
560 ></SPAN
561 > of text (even small
562        blocks) should be on their own line. Like:
563      </P
564 ><P
565 CLASS="LITERALLAYOUT"
566 >&nbsp;&#60;para&#62;<br>
567 &nbsp;&nbsp;Some&nbsp;text&nbsp;goes&nbsp;here.<br>
568 &nbsp;&#60;/para&#62;</P
569 ><P
570 >       Tags marking individual words, or few words, should be in-line:
571      </P
572 ><P
573 CLASS="LITERALLAYOUT"
574 >&nbsp;&nbsp;Just&nbsp;to&nbsp;&#60;emphasis&#62;emphasize&#60;/emphasis&#62;,&nbsp;some&nbsp;text&nbsp;goes&nbsp;here.</P
575 ></LI
576 ><LI
577 ><P
578 >      Tags should be nested and step indented for block text like: (except
579       in-line tags)
580     </P
581 ><P
582 CLASS="LITERALLAYOUT"
583 >&nbsp;&#60;para&#62;<br>
584 &nbsp;&nbsp;&#60;itemizedlist&#62;<br>
585 &nbsp;&nbsp;&nbsp;&#60;para&#62;<br>
586 &nbsp;&nbsp;&nbsp;&nbsp;&#60;listitem&#62;<br>
587 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Some&nbsp;text&nbsp;goes&nbsp;here&nbsp;in&nbsp;our&nbsp;list&nbsp;example.<br>
588 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#60;/listitem&#62;<br>
589 &nbsp;&nbsp;&nbsp;&#60;/para&#62;<br>
590 &nbsp;&nbsp;&#60;/itemizedlist&#62;<br>
591 &nbsp;&#60;/para&#62;</P
592 ><P
593 >      This makes it easier to find the text amongst the tags ;-)
594     </P
595 ></LI
596 ><LI
597 ><P
598 >     Use white space to separate logical divisions within a document,
599      like between sections. Running everything together consistently
600      makes it harder to read and work on.
601     </P
602 ></LI
603 ><LI
604 ><P
605 >     Do not hesitate to make comments. Comments can either use the
606      &#60;comment&#62; element, or the &#60;!--  --&#62; style comment
607      familiar from HTML. (Note in Docbook v4.x &#60;comment&#62; is
608      replaced by &#60;remark&#62;.)
609     </P
610 ></LI
611 ><LI
612 ><P
613 >     We have an international audience. Refrain from slang, or English
614      idiosyncrasies (too many to list :). Humor also does not translate
615      well sometimes.
616    </P
617 ></LI
618 ><LI
619 ><P
620 >    Try to keep overall line lengths in source files to 80 characters or less
621     for obvious reasons. This is not always possible, with lengthy URLs for
622     instance.
623    </P
624 ></LI
625 ><LI
626 ><P
627 >    Our documents are available in differing formats. Right now, they
628     are just plain text and/or HTML, but others are always a
629     future possibility. Be careful with URLs (&#60;ulink&#62;), and avoid
630     this mistake:
631    </P
632 ><P
633 >     My favorite site is &#60;ulink url="http://example.com"&#62;here&#60;/ulink&#62;.
634    </P
635 ><P
636 >     This will render as <SPAN
637 CLASS="QUOTE"
638 >"My favorite site is here"</SPAN
639 >, which is
640      not real helpful in a text doc. Better like this:
641    </P
642 ><P
643 >     My favorite site is &#60;ulink url="http://example.com"&#62;example.com&#60;/ulink&#62;.
644    </P
645 ></LI
646 ><LI
647 ><P
648 >    All documents should be spell checked occasionally.
649     <SPAN
650 CLASS="APPLICATION"
651 >aspell</SPAN
652 > can check SGML with the
653     <TT
654 CLASS="LITERAL"
655 >-H</TT
656 > option. (<SPAN
657 CLASS="APPLICATION"
658 >ispell</SPAN
659 > I think
660     too.)
661    </P
662 ></LI
663 ></UL
664 ></DIV
665 ><DIV
666 CLASS="SECT2"
667 ><H2
668 CLASS="SECT2"
669 ><A
670 NAME="AEN203"
671 >3.3. Privoxy Custom Entities</A
672 ></H2
673 ><P
674 >  <SPAN
675 CLASS="APPLICATION"
676 >Privoxy</SPAN
677 > documentation is using
678   a number of customized <SPAN
679 CLASS="QUOTE"
680 >"entities"</SPAN
681 > to facilitate
682   documentation maintenance.
683  </P
684 ><P
685 >  We are using a set of <SPAN
686 CLASS="QUOTE"
687 >"boilerplate"</SPAN
688 > files with generic text,
689   that is used by multiple docs. This way we can write something once, and use
690   it repeatedly without having to re-write the same content over and over again.
691   If editing such a file, keep in mind that it should be
692   <SPAN
693 CLASS="emphasis"
694 ><I
695 CLASS="EMPHASIS"
696 >generic</I
697 ></SPAN
698 >. That is the purpose; so it can be used in varying
699   contexts without additional modifications.
700  </P
701 ><P
702 >  We are also using what <SPAN
703 CLASS="APPLICATION"
704 >Docbook</SPAN
705 > calls
706   <SPAN
707 CLASS="QUOTE"
708 >"internal entities"</SPAN
709 >. These are like variables in
710   programming. Well, sort of. For instance, we have the
711   <TT
712 CLASS="LITERAL"
713 >p-version</TT
714 > entity that contains the current
715   <SPAN
716 CLASS="APPLICATION"
717 >Privoxy</SPAN
718 > version string. You are strongly
719   encouraged to use these where possible. Some of these obviously
720   require re-setting with each release (done by the Makefile). A sampling of
721   custom entities are listed below. See any of the main docs for examples.
722  </P
723 ><P
724 ></P
725 ><UL
726 ><LI
727 ><P
728 >    Re- <SPAN
729 CLASS="QUOTE"
730 >"boilerplate"</SPAN
731 > text entities are defined like:
732    </P
733 ><P
734 >    <TT
735 CLASS="LITERAL"
736 >&#60;!entity supported SYSTEM "supported.sgml"&#62;</TT
737 >
738    </P
739 ><P
740 >     In this example, the contents of the file,
741      <TT
742 CLASS="FILENAME"
743 >supported.sgml</TT
744 > is available for inclusion anywhere
745      in the doc. To make this happen, just reference the now defined
746      entity: <TT
747 CLASS="LITERAL"
748 >&#38;supported;</TT
749 > (starts with an ampersand
750      and ends with a semi-colon), and the contents will be dumped into
751      the finished doc at that point.
752    </P
753 ></LI
754 ><LI
755 ><P
756 >    Commonly used <SPAN
757 CLASS="QUOTE"
758 >"internal entities"</SPAN
759 >:
760   </P
761 ><P
762 ></P
763 ><TABLE
764 BORDER="0"
765 ><TBODY
766 ><TR
767 ><TD
768 >    <SPAN
769 CLASS="emphasis"
770 ><I
771 CLASS="EMPHASIS"
772 >p-version</I
773 ></SPAN
774 >: the <SPAN
775 CLASS="APPLICATION"
776 >Privoxy</SPAN
777 >
778     version string, e.g. <SPAN
779 CLASS="QUOTE"
780 >"3.0.27"</SPAN
781 >.
782    </TD
783 ></TR
784 ><TR
785 ><TD
786 >    <SPAN
787 CLASS="emphasis"
788 ><I
789 CLASS="EMPHASIS"
790 >p-status</I
791 ></SPAN
792 >: the project status, either
793     <SPAN
794 CLASS="QUOTE"
795 >"alpha"</SPAN
796 >, <SPAN
797 CLASS="QUOTE"
798 >"beta"</SPAN
799 >, or <SPAN
800 CLASS="QUOTE"
801 >"stable"</SPAN
802 >.
803    </TD
804 ></TR
805 ><TR
806 ><TD
807 >    <SPAN
808 CLASS="emphasis"
809 ><I
810 CLASS="EMPHASIS"
811 >p-not-stable</I
812 ></SPAN
813 >: use to conditionally include
814     text in <SPAN
815 CLASS="QUOTE"
816 >"not stable"</SPAN
817 > releases (e.g. <SPAN
818 CLASS="QUOTE"
819 >"beta"</SPAN
820 >).
821    </TD
822 ></TR
823 ><TR
824 ><TD
825 >    <SPAN
826 CLASS="emphasis"
827 ><I
828 CLASS="EMPHASIS"
829 >p-stable</I
830 ></SPAN
831 >: just the opposite.
832    </TD
833 ></TR
834 ><TR
835 ><TD
836 >    <SPAN
837 CLASS="emphasis"
838 ><I
839 CLASS="EMPHASIS"
840 >p-text</I
841 ></SPAN
842 >: this doc is only generated as text.
843    </TD
844 ></TR
845 ></TBODY
846 ></TABLE
847 ><P
848 ></P
849 ></LI
850 ></UL
851 ><P
852 >  There are others in various places that are defined for a specific
853   purpose. Read the source!
854  </P
855 ></DIV
856 ></DIV
857 ><DIV
858 CLASS="NAVFOOTER"
859 ><HR
860 ALIGN="LEFT"
861 WIDTH="100%"><TABLE
862 SUMMARY="Footer navigation table"
863 WIDTH="100%"
864 BORDER="0"
865 CELLPADDING="0"
866 CELLSPACING="0"
867 ><TR
868 ><TD
869 WIDTH="33%"
870 ALIGN="left"
871 VALIGN="top"
872 ><A
873 HREF="git.html"
874 ACCESSKEY="P"
875 >Prev</A
876 ></TD
877 ><TD
878 WIDTH="34%"
879 ALIGN="center"
880 VALIGN="top"
881 ><A
882 HREF="index.html"
883 ACCESSKEY="H"
884 >Home</A
885 ></TD
886 ><TD
887 WIDTH="33%"
888 ALIGN="right"
889 VALIGN="top"
890 ><A
891 HREF="coding.html"
892 ACCESSKEY="N"
893 >Next</A
894 ></TD
895 ></TR
896 ><TR
897 ><TD
898 WIDTH="33%"
899 ALIGN="left"
900 VALIGN="top"
901 >The Git Repository</TD
902 ><TD
903 WIDTH="34%"
904 ALIGN="center"
905 VALIGN="top"
906 >&nbsp;</TD
907 ><TD
908 WIDTH="33%"
909 ALIGN="right"
910 VALIGN="top"
911 >Coding Guidelines</TD
912 ></TR
913 ></TABLE
914 ></DIV
915 ></BODY
916 ></HTML
917 >