Rebuild for 3.0.11 UNRELEASED.
[privoxy.git] / doc / webserver / developer-manual / documentation.html
index 0ab7ad1..4a6a974 100644 (file)
@@ -1,22 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
 <HTML
 ><HEAD
 ><TITLE
 >Documentation Guidelines</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
 REL="HOME"
 TITLE="Privoxy Developer Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
-TITLE="Quickstart to Privoxy Development"
-HREF="quickstart.html"><LINK
+TITLE="The CVS Repository"
+HREF="cvs.html"><LINK
 REL="NEXT"
 TITLE="Coding Guidelines"
 HREF="coding.html"><LINK
 REL="STYLESHEET"
 TYPE="text/css"
-HREF="../p_doc.css"></HEAD
+HREF="../p_doc.css"><META
+HTTP-EQUIV="Content-Type"
+CONTENT="text/html;
+charset=ISO-8859-1"></HEAD
 ><BODY
 CLASS="SECT1"
 BGCOLOR="#EEEEEE"
@@ -27,6 +31,7 @@ ALINK="#0000FF"
 ><DIV
 CLASS="NAVHEADER"
 ><TABLE
+SUMMARY="Header navigation table"
 WIDTH="100%"
 BORDER="0"
 CELLPADDING="0"
@@ -43,7 +48,8 @@ WIDTH="10%"
 ALIGN="left"
 VALIGN="bottom"
 ><A
-HREF="quickstart.html"
+HREF="cvs.html"
+ACCESSKEY="P"
 >Prev</A
 ></TD
 ><TD
@@ -57,6 +63,7 @@ ALIGN="right"
 VALIGN="bottom"
 ><A
 HREF="coding.html"
+ACCESSKEY="N"
 >Next</A
 ></TD
 ></TR
@@ -70,29 +77,29 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="DOCUMENTATION"
->4. Documentation Guidelines</A
+>3. Documentation Guidelines</A
 ></H1
 ><P
->    All formal documents are maintained in docbook SGML and located in the
-    <TT
+>    All formal documents are maintained in Docbook SGML and located in the
+    <SAMP
 CLASS="COMPUTEROUTPUT"
->doc/source</TT
+>doc/source/*</SAMP
 > directory. You will need
     <A
 HREF="http://www.docbook.org"
 TARGET="_top"
->docbook</A
-> and the docbook
-    stylesheets (or comparable alternatives), and either
-    <SPAN
+>Docbook</A
+>, the Docbook 
+    DTD's and the Docbook modular stylesheets (or comparable alternatives),
+    and either <SPAN
 CLASS="APPLICATION"
 >jade</SPAN
-> or <SPAN
+> or
+    <SPAN
 CLASS="APPLICATION"
 >openjade</SPAN
->
-    (recommended) installed in order to build docs from source. Currently
-    there is <A
+> (recommended) installed in order to
+    build docs from source. Currently there is <A
 HREF="../user-manual/index.html"
 TARGET="_top"
 ><I
@@ -107,67 +114,123 @@ TARGET="_top"
 CLASS="CITETITLE"
 >FAQ</I
 ></A
->, and,
-    of course this, the <I
+>, and, of
+    course this, the <I
 CLASS="CITETITLE"
 >developer-manual</I
-> in this
-    format. The <I
+> in this format.
+    The <I
 CLASS="CITETITLE"
 >README</I
->, is also now maintained 
-    as SGML. The <I
+>, <I
 CLASS="CITETITLE"
->README</I
-> in the top-level source 
-    directory is a generated file. <I
+>AUTHORS</I
+>,
+    <I
+CLASS="CITETITLE"
+>INSTALL</I
+>,
+    <I
+CLASS="CITETITLE"
+>privoxy.1</I
+> (man page), and
+    <I
+CLASS="CITETITLE"
+>config</I
+> files are also now maintained as Docbook
+    SGML. These files, when built, in the top-level source directory are
+    generated files! Also, the <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> <TT
+CLASS="FILENAME"
+>index.html</TT
+> (and a 
+    variation on this file, <TT
+CLASS="FILENAME"
+>privoxy-index.html</TT
+>, 
+    meant for inclusion with doc packages), are maintained as SGML as well.
+    <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
->DO NOT edit this
-    directly</I
->. Edit the SGML source!
+>DO NOT edit these directly</I
+></SPAN
+>. Edit the SGML source, or
+    contact someone involved in the documentation.
+    </P
+><P
+>     <TT
+CLASS="FILENAME"
+>config</TT
+> requires some special handling. The reason it
+     is maintained this way is so that the extensive comments in the file
+     mirror those in <I
+CLASS="CITETITLE"
+>user-manual</I
+>. But the conversion 
+     process requires going from SGML to HTML to text to special formatting 
+     required for the embedded comments. Some of this does not survive so
+     well. Especially some of the examples that are longer than 80 characters.
+     The build process for this file outputs to <TT
+CLASS="FILENAME"
+>config.new</TT
+>, 
+     which should be reviewed for errors and mis-formatting. Once satisfied
+     that it is correct, then it should be hand copied to
+     <TT
+CLASS="FILENAME"
+>config</TT
+>.
     </P
 ><P
->     Other, less formal documents (e.g. AUTHORS, LICENSE) are maintained as
-     plain text files in the toplevel source directory. At least for the 
-     time being.
+>     Other, less formal documents (e.g. <TT
+CLASS="FILENAME"
+>LICENSE</TT
+>) are
+     maintained as plain text files in the top-level source directory.
     </P
 ><P
 >     Packagers are encouraged to include this documentation. For those without
      the ability to build the docs locally, text versions of each are kept in
-     CVS. Or HTML versions can be downloaded from the <A
-HREF="http://www.privoxy.org"
-TARGET="_top"
->www.privoxy.org</A
-> website, which
-     should be fairly current. (This is only a temporary solution.)
+     CVS. HTML versions are also being kept in CVS under 
+     <TT
+CLASS="FILENAME"
+>doc/webserver/*</TT
+>. And PDF version are kept in 
+     <TT
+CLASS="FILENAME"
+>doc/pdf/*</TT
+>.
     </P
 ><P
 >     Formal documents are built with the Makefile targets of
-     <TT
+     <SAMP
 CLASS="COMPUTEROUTPUT"
->make dok</TT
+>make dok</SAMP
 >, or alternately
-     <TT
+     <SAMP
 CLASS="COMPUTEROUTPUT"
->make redhat-dok</TT
+>make redhat-dok</SAMP
 >. If you have problems,
      try both. The build process uses the document SGML sources in
-     <TT
+     <SAMP
 CLASS="COMPUTEROUTPUT"
->doc/source</TT
+>doc/source/*/*</SAMP
 > to update all text files in
-     <TT
+     <SAMP
 CLASS="COMPUTEROUTPUT"
->doc/text</TT
+>doc/text/</SAMP
 > and to update all HTML
-     documents in <TT
+     documents in <SAMP
 CLASS="COMPUTEROUTPUT"
->doc/webserver</TT
+>doc/webserver/</SAMP
 >.
     </P
 ><P
 >     Documentation writers should please make sure documents build
-     successfully before committing to CVS.
+     successfully before committing to CVS, if possible.
     </P
 ><P
 >     How do you update the webserver (i.e. the pages on privoxy.org)?
@@ -178,26 +241,30 @@ CLASS="COMPUTEROUTPUT"
 TYPE="1"
 ><LI
 ><P
->        First, build the docs by running <TT
+>        First, build the docs by running <SAMP
+CLASS="COMPUTEROUTPUT"
+>make
+        dok</SAMP
+> (or alternately <SAMP
 CLASS="COMPUTEROUTPUT"
 >make
-        dok</TT
-> (or alternately <TT
+        redhat-dok</SAMP
+>). For PDF docs, do <SAMP
 CLASS="COMPUTEROUTPUT"
 >make
-        redhat-dok</TT
->).                 
+        dok-pdf</SAMP
+>.
       </P
 ></LI
 ><LI
 ><P
->        Run <TT
+>        Run <SAMP
 CLASS="COMPUTEROUTPUT"
->make webserver</TT
+>make webserver</SAMP
 > which copies all
-        files from <TT
+        files from <SAMP
 CLASS="COMPUTEROUTPUT"
->doc/webserver</TT
+>doc/webserver</SAMP
 > to the
         sourceforge webserver via scp.
       </P
@@ -205,56 +272,81 @@ CLASS="COMPUTEROUTPUT"
 ></OL
 >
   </P
+><P
+>   Finished docs should be occasionally submitted to CVS
+   (<TT
+CLASS="FILENAME"
+>doc/webserver/*/*.html</TT
+>) so that those without 
+   the ability to build them locally, have access to them if needed.
+   This is especially important just prior to a new release! Please
+   do this <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>after</I
+></SPAN
+> the <TT
+CLASS="LITERAL"
+>$VERSION</TT
+> and
+   other release specific data in <TT
+CLASS="FILENAME"
+>configure.in</TT
+> has been
+   updated (this is done just prior to a new release).
+  </P
 ><DIV
 CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
 NAME="SGML"
->4.1. Quickstart to Docbook and SGML</A
+>3.1. Quickstart to Docbook and SGML</A
 ></H2
 ><P
 > If you are not familiar with SGML, it is a markup language similar to HTML. 
- In fact, HTML is an SGML application. Both use <SPAN
+ Actually, not a mark up language per se, but a language used to define 
+ markup languages. In fact, HTML is an SGML application. Both will use
+ <SPAN
 CLASS="QUOTE"
 >"tags"</SPAN
->
- to format text and other content. SGML tags are much more varied, 
- and flexible, but do much of the same kinds of things. The tags, 
+> to format text and other content. SGML tags can be much
+ more varied, and flexible, but do much of the same kinds of things. The tags,
  or <SPAN
 CLASS="QUOTE"
 >"elements"</SPAN
->, are definable in SGML. There is no 
set <SPAN
+>, are definable in SGML. There is no set
+ <SPAN
 CLASS="QUOTE"
 >"standards"</SPAN
 >. Since we are using
  <SPAN
 CLASS="APPLICATION"
 >Docbook</SPAN
->, our tags are those that are 
defined by <SPAN
+>, our tags are those that are defined by 
+ <SPAN
 CLASS="APPLICATION"
 >Docbook</SPAN
->. Much of how the 
finish document is rendered is determined by the <SPAN
+>. Much of how the finish document is
+ rendered is determined by the <SPAN
 CLASS="QUOTE"
 >"stylesheets"</SPAN
 >.
- The stylesheets determine how each tag gets translated to HTML, or 
other formats.</P
+ The stylesheets determine how each tag gets translated to HTML, or other
+ formats.</P
 ><P
-> Tags in SGML need to be always <SPAN
+> Tags in Docbook SGML need to be always <SPAN
 CLASS="QUOTE"
 >"closed"</SPAN
->. If not, you 
- will likely generate errors. Example: 
- <TT
+>. If not, you
+ will likely generate errors. Example: <TT
 CLASS="LITERAL"
->&#60;title&#62;My Title&#60;/title&#62;</TT
->. They are 
- also case-insensitive, but we strongly suggest using all lower 
- case. This keeps compatibility with [Docbook] <SPAN
+>&#60;title&#62;My
+ Title&#60;/title&#62;</TT
+>. They are also case-insensitive, but we
+ strongly suggest using all lower case. This keeps compatibility with
+ [Docbook] <SPAN
 CLASS="APPLICATION"
 >XML</SPAN
 >.</P
@@ -303,110 +395,152 @@ CLASS="LITERAL"
 ><P
 > Some common elements that you likely will use: </P
 ><P
+>  <P
 ></P
 ><TABLE
 BORDER="0"
 ><TBODY
 ><TR
 ><TD
->  <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >&#60;para&#62;&#60;/para&#62;</I
+></SPAN
 >, paragraph delimiter. Most 
-  text needs to be within paragraph elements.
- </TD
+      text needs to be within paragraph elements (there are some exceptions).
   </TD
 ></TR
 ><TR
 ><TD
->  <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >&#60;emphasis&#62;&#60;/emphasis&#62;</I
->, stylesheets make this
- italics.
- </TD
+></SPAN
+>, the stylesheets
+      make this italics.
+    </TD
 ></TR
 ><TR
 ><TD
->  <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >&#60;filename&#62;&#60;/filename&#62;</I
+></SPAN
 >, files and directories.
- </TD
   </TD
 ></TR
 ><TR
 ><TD
->  <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >&#60;command&#62;&#60;/command&#62;</I
+></SPAN
 >, command examples.
- </TD
   </TD
 ></TR
 ><TR
 ><TD
->  <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
->&#60;literallayout&#62;&#60;/literllayout&#62;</I
+>&#60;literallayout&#62;&#60;/literallayout&#62;</I
+></SPAN
 >, like 
-  <TT
+      <TT
 CLASS="LITERAL"
 >&#60;pre&#62;</TT
 >, more or less.
- </TD
   </TD
 ></TR
 ><TR
 ><TD
->  <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
->&#60;itemizedlist&#62;&#60;/itemizdelist&#62;</I
+>&#60;itemizedlist&#62;&#60;/itemizedlist&#62;</I
+></SPAN
 >, list with bullets.
- </TD
   </TD
 ></TR
 ><TR
 ><TD
->  <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >&#60;listitem&#62;&#60;/listitem&#62;</I
+></SPAN
 >, member of the above.
- </TD
   </TD
 ></TR
 ><TR
 ><TD
->   <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >&#60;screen&#62;&#60;/screen&#62;</I
+></SPAN
 >, screen output, implies 
-   <TT
+      <TT
 CLASS="LITERAL"
 >&#60;literallayout&#62;</TT
 >.
- </TD
   </TD
 ></TR
 ><TR
 ><TD
->  <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >&#60;ulink url="example.com"&#62;&#60;/ulink&#62;</I
+></SPAN
 >, like 
-  HTML <TT
+      HTML <TT
 CLASS="LITERAL"
 >&#60;a&#62;</TT
 > tag.
- </TD
   </TD
 ></TR
 ><TR
 ><TD
->   <I
+>      <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >&#60;quote&#62;&#60;/quote&#62;</I
+></SPAN
 >, for, doh, quoting text. 
- </TD
   </TD
 ></TR
 ></TBODY
 ></TABLE
 ><P
 ></P
+></P
 ><P
 > Look at any of the existing docs for examples of all these and more.</P
+><P
+> You might also find <SPAN
+CLASS="QUOTE"
+>"<A
+HREF="http://opensource.bureau-cornavin.com/crash-course/index.html"
+TARGET="_top"
+>Writing Documentation
+ Using DocBook - A Crash Course</A
+>"</SPAN
+> useful.</P
 ></DIV
 ><DIV
 CLASS="SECT2"
@@ -414,7 +548,7 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="DOCSTYLE"
->4.2. <SPAN
+>3.2. <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > Documentation Style</A
@@ -438,8 +572,14 @@ CLASS="APPLICATION"
 ></LI
 ><LI
 ><P
->       Tags delimiting a block of text should be on their own line. 
-       Like:
+>       Tags delimiting a <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>block</I
+></SPAN
+> of text (even small
+       blocks) should be on their own line. Like:
        <P
 CLASS="LITERALLAYOUT"
 >&nbsp;&#60;para&#62;<br>
@@ -457,8 +597,9 @@ CLASS="LITERALLAYOUT"
 ></LI
 ><LI
 ><P
->      Tags should be nested and step indented like:
-       <P
+>      Tags should be nested and step indented for block text like: (except
+      in-line tags) 
+     <P
 CLASS="LITERALLAYOUT"
 >&nbsp;&#60;para&#62;<br>
 &nbsp;&nbsp;&#60;itemizedlist&#62;<br>
@@ -485,26 +626,28 @@ CLASS="LITERALLAYOUT"
 ><P
 >     Do not hesitate to make comments. Comments can either use the 
      &#60;comment&#62; element, or the &#60;!--  --&#62; style comment 
-     familiar from HTML.
+     familiar from HTML. (Note in Docbook v4.x &#60;comment&#62; is 
+     replaced by &#60;remark&#62;.)
     </P
 ></LI
 ><LI
 ><P
 >     We have an international audience. Refrain from slang, or English 
-     idiosyncrasies (too many to list :).
+     idiosyncrasies (too many to list :). Humor also does not translate 
+     well sometimes.
    </P
 ></LI
 ><LI
 ><P
 >    Try to keep overall line lengths in source files to 80 characters or less
-    for obvious reasons. This is not always possible, with lenghty URLs for
+    for obvious reasons. This is not always possible, with lengthy URLs for
     instance.
    </P
 ></LI
 ><LI
 ><P
 >    Our documents are available in differing formats. Right now, they 
-    are just plain text, and HTML, but PDF, and others is always a 
+    are just plain text, HTML, and PDF, but others are always a 
     future possibility. Be careful with URLs (&#60;ulink&#62;), and avoid 
     this mistake:
    </P
@@ -548,8 +691,8 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN173"
->4.3. Privoxy Custom Entities</A
+NAME="AEN217"
+>3.3. Privoxy Custom Entities</A
 ></H2
 ><P
 >  <SPAN
@@ -570,9 +713,12 @@ CLASS="QUOTE"
   that is used by multiple docs. This way we can write something once, and use
   it repeatedly without having to re-write the same content over and over again.
   If editing such a file, keep in mind that it should be
-  <I
+  <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >generic</I
+></SPAN
 >. That is the purpose; so it can be used in varying 
   contexts without additional modifications.
  </P
@@ -595,8 +741,8 @@ CLASS="APPLICATION"
 >Privoxy</SPAN
 > version string. You are strongly 
   encouraged to use these where possible. Some of these obviously 
-  require re-setting with each release. A sampling of custom entities are
-  listed below. See any of the main docs for examples.
+  require re-setting with each release (done by the Makefile). A sampling of
+  custom entities are listed below. See any of the main docs for examples.
  </P
 ><P
 >  <P
@@ -604,7 +750,7 @@ CLASS="APPLICATION"
 ><UL
 ><LI
 ><P
->    Re-cyclable <SPAN
+>    Re- <SPAN
 CLASS="QUOTE"
 >"boilerplate"</SPAN
 > text entities are defined like:
@@ -644,65 +790,80 @@ BORDER="0"
 ><TBODY
 ><TR
 ><TD
->    <I
+>    <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >p-version</I
+></SPAN
 >: the <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > 
     version string, e.g. <SPAN
 CLASS="QUOTE"
->"2.9.13"</SPAN
+>"3.0.11"</SPAN
 >.
    </TD
 ></TR
 ><TR
 ><TD
->    <I
+>    <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >p-status</I
+></SPAN
 >: the project status, either 
     <SPAN
 CLASS="QUOTE"
->"ALPHA"</SPAN
+>"alpha"</SPAN
 >, <SPAN
 CLASS="QUOTE"
->"BETA"</SPAN
+>"beta"</SPAN
 >, or <SPAN
 CLASS="QUOTE"
->"STABLE"</SPAN
+>"stable"</SPAN
 >.
    </TD
 ></TR
 ><TR
 ><TD
->    <I
+>    <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >p-not-stable</I
+></SPAN
 >: use to conditionally include 
     text in <SPAN
 CLASS="QUOTE"
 >"not stable"</SPAN
 > releases (e.g. <SPAN
 CLASS="QUOTE"
->"BETA"</SPAN
+>"beta"</SPAN
 >).
    </TD
 ></TR
 ><TR
 ><TD
->    <I
+>    <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >p-stable</I
+></SPAN
 >: just the opposite.
    </TD
 ></TR
 ><TR
 ><TD
->    <I
+>    <SPAN
+CLASS="emphasis"
+><I
 CLASS="EMPHASIS"
 >p-text</I
+></SPAN
 >: this doc is only generated as text.
    </TD
 ></TR
@@ -725,6 +886,7 @@ CLASS="NAVFOOTER"
 ><HR
 ALIGN="LEFT"
 WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
 WIDTH="100%"
 BORDER="0"
 CELLPADDING="0"
@@ -735,7 +897,8 @@ WIDTH="33%"
 ALIGN="left"
 VALIGN="top"
 ><A
-HREF="quickstart.html"
+HREF="cvs.html"
+ACCESSKEY="P"
 >Prev</A
 ></TD
 ><TD
@@ -744,6 +907,7 @@ ALIGN="center"
 VALIGN="top"
 ><A
 HREF="index.html"
+ACCESSKEY="H"
 >Home</A
 ></TD
 ><TD
@@ -752,6 +916,7 @@ ALIGN="right"
 VALIGN="top"
 ><A
 HREF="coding.html"
+ACCESSKEY="N"
 >Next</A
 ></TD
 ></TR
@@ -760,7 +925,7 @@ HREF="coding.html"
 WIDTH="33%"
 ALIGN="left"
 VALIGN="top"
->Quickstart to Privoxy Development</TD
+>The CVS Repository</TD
 ><TD
 WIDTH="34%"
 ALIGN="center"