New introduction and web reference guidelines, by Robert Stewart.

[SVN r53611]
This commit is contained in:
Daniel James 2009-06-03 22:48:11 +00:00
parent fbb60689b7
commit 8b3b668ec4

View File

@ -90,40 +90,36 @@
</dl> </dl>
</dd> </dd>
<dt><a href="#web">Web Reference Documentation</a></dt>
<dt><a href="#footnotes">Footnotes</a></dt> <dt><a href="#footnotes">Footnotes</a></dt>
</dl> </dl>
<h2><a name="introduction" id="introduction">Introduction</a></h2> <h2><a name="introduction" id="introduction">Introduction</a></h2>
<p>Boost itself does not require any specific documentation structure. The <p>Boost does not require any specific documentation structure.
C++ Standard, however, has very explicit requirements for the description However, there are some important considerations that
of library components (Section 17.3). So for Boost libraries likely to be influence content and structure. For example, many Boost
proposed for inclusion in the standard, it is highly desirable to structure libraries wind up being proposed for inclusion in the C++
documentation in a way that meets the requirements of the the standard. Standard, so writing them initially with text suitable for
Doing so eliminates the need to rewrite the documentation for inclusion in the Standard may be helpful. Also, Boost library
standardization.</p> documentation is often accessed via the World Wide Web,
including via search engines, so context is often important
for every page. Finally, Boost libraries should provide
additional documentation, such as introductory, tutorial,
example, and rationale content. With those things in mind, we
suggest the following guidelines for Boost library
documentation.</p>
<p>Library developers should remember that for a library to be accepted as <p>The documentation structure required for the standard is an
part of the C++ Standard Library, the proposal must include full wording. effective way to describe the technical specifications for a
The committee will not do that work for you.</p> library. Although terse, that format is familiar to many Boost
users and is far more precise than most ad hoc formats. Below
<p>Beyond that, the documentation structure required for the standard is an is a description of the Standard documentation structure. Note
effective way to communicate the technical specifications for a library. that Standard proposals must include full standardese wording,
Although terse, it is already familiar to many Boost users, and is far more which the committee will not do for you, to be accepted. That
precise than most ad hoc documentation structures.</p> level of detail is not expected of Boost library
documentation.</p>
<p>The following description is for the structure of documentation required
by the standard. Boost libraries should also provided additional
documentation, such as introductory, tutorial, example, and rationale
material.</p>
<p>Since the documentation is also intended to act as a web reference, it's a
good idea to add some extra information to individual pages, especially
detailed reference pages. Full C++ identifiers and required headers are
especially useful and often overlooked. Remember that individual pages might
be accessed directly from a search engine or link, so readers won't have seen
information from previous pages. In reference pages, it can be helpful to link
to relevant tutorial information.</p>
<h2><a name="standards-conforming" id="standards-conforming">Standards <h2><a name="standards-conforming" id="standards-conforming">Standards
Conforming</a> Documentation</h2> Conforming</a> Documentation</h2>
@ -398,6 +394,30 @@ void resize(size_type n, charT c);
give users a lot of insight into why a library is designed the way it is. give users a lot of insight into why a library is designed the way it is.
More importantly, it can help prevent "fixing" something that wasn't really More importantly, it can help prevent "fixing" something that wasn't really
broken as the library matures.</p> broken as the library matures.</p>
<h2 id="web">Web Reference Documentation</h2>
<p>Boost library documentation is often accessed via the World
Web. Using search engines, a page deep in the reference
content could be viewed without any further context.
Therefore, it is helpful to add extra context, such as the
following, to each page:</p>
<ul>
<li>Describe the enclosing namespace or use fully scoped
identifiers.
<li>Document required headers for each type or function.
<li>Link to relevant tutorial information.
<li>Link to related example code.
<li>Include the library name.
<li>Include navigation elements to the beginning of the
documentation.
</ul>
<p>It is also useful to consider the effectiveness of a
description in search engines. Terse or cryptic descriptions
are less likely to help the curious find a relevant function
or type.</p>
<h2><a name="footnotes" id="footnotes">Footnotes</a></h2> <h2><a name="footnotes" id="footnotes">Footnotes</a></h2>