--- /dev/null
+Apache 2.0 is using ScanDoc to document the API's and global variables in
+the code. This will explain the basics of how to document using Scandoc.
+
+To start a scandoc block, use /**
+To end a scandoc block, use */
+
+In the middle of the block, there are multiple tags we can use:
+
+ Description of this functions purpose
+ @param parameter_name description
+ @tip Any information the programmer should know
+ @deffunc function prototype.
+
+The deffunc is not always necessary. ScanDoc does not have a full parser in
+it, so any prototype that use a macro in the return type declaration is too
+complex for scandoc. Those functions require a deffunc.
+
+An example:
+
+/**
+ * return the final element of the pathname
+ * @param pathname The path to get the final element of
+ * @return the final element of the path
+ * @tip Examples:
+ * <PRE>
+ * "/foo/bar/gum" -> "gum"
+ * "/foo/bar/gum/" -> ""
+ * "gum" -> "gum"
+ * "wi\\n32\\stuff" -> "stuff"
+ * </PRE>
+ * @deffunc const char * ap_filename_of_pathname(const char *pathname)
+ */
+
+At the top of the header file, we always include
+
+/**
+ * @package Name of library header
+ */
+
+ScanDoc uses a new html file for each package. The html files are named:
+
+Name of library header.html, so try to be concise with your names
+