zeek/doc/scripts
Jon Siwek ceaba8077b Fixes related to make doc handling of script summary text (##! comments)
- Summary comments (##!) can now be placed at the beginning of
BiF files (but still outside C segments).  An issue was fixed where
these comments would mistakenly be transferred into the generated
.func_def file and cause a compile error. I completely removed writing
any opt_ws value into the .func_def file because it was currently not
writing anything besides whitespace.

- The generation of reST for the collecting of "groups" of policy
script documentation now happens at build time of `make doc` through the
use of a helper script rather than doing this at configure time so that
changes to summary text will always be reflected in the documentation.
2011-05-02 15:34:34 -05:00
..
source Overhaul of "doc" build target for generating policy script documentation. 2011-04-26 22:13:04 -05:00
CMakeLists.txt Fixes related to make doc handling of script summary text (##! comments) 2011-05-02 15:34:34 -05:00
conf.py.in Move stuff related to policy script documentation from doc/ to doc/scripts/ 2011-04-20 21:11:32 -05:00
example.bro Move stuff related to policy script documentation from doc/ to doc/scripts/ 2011-04-20 21:11:32 -05:00
group_index_generator.py Fixes related to make doc handling of script summary text (##! comments) 2011-05-02 15:34:34 -05:00
README Overhaul of "doc" build target for generating policy script documentation. 2011-04-26 22:13:04 -05:00

This directory contains scripts and templates that can be used to automate
the generation of Bro script documentation.  Several build targets are defined
by CMake:

``restdoc``

    This target uses Bro to parse policy scripts in order to generate
    reStructuredText (reST) documentation from them.  The list of scripts
    for which to generate reST documentation is defined in the
    ``CMakeLists.txt`` file in this directory.  Script documentation is
    rebuild automatically if the policy script from which it is derived
    or the Bro binary becomes out of date

    The resulting output from this target can be found in the CMake
    ``build/`` directory inside ``reST`` (a symlink to
    ``doc/scripts/rest_output``).

``doc``

    This target depends on a Python interpreter (>=2.5) and
    `Sphinx <http://sphinx.pocoo.org/>`_ being installed.  Sphinx can be
    installed like::

        > sudo easy_install sphinx

    This target will first build ``restdoc`` target and then copy the
    resulting reST files as an input directory to Sphinx.

    After completion, HTML documentation can be located in the CMake
    ``build/`` directory inside ``html`` (a symlink to
    ``doc/scripts/out/html``)

``restclean``

    This target removes any reST documentation that has been generated so far.

``docclean``

    This target removes Sphinx inputs and outputs from the CMake ``build/`` dir.

To schedule a script to be documented, edit ``CMakeLists.txt`` inside this
directory add a call to the ``rest_target()`` macro.  Calling that macro
with a group name for the script is optional, but if not given, the only
link to the script will be in the master TOC tree for all policy scripts.

When adding a new logical grouping for generated scripts, create a new
reST document in ``source/<group_name>.rst`` and add some default
documentation for the group.  References to (and summaries of) documents
associated with the group get appended to this file during the
``make doc`` process.

The Sphinx source tree template in ``source/`` can be modified to add more
common/general documentation, style sheets, JavaScript, etc.  The Sphinx
config file is produced from ``conf.py.in``, so that can be edited to change
various Sphinx options, like setting the default HTML rendering theme.
There is also a custom Sphinx domain implemented in ``source/ext/bro.py``
which adds some reST directives and roles that aid in generating useful
index entries and cross-references.

See ``example.bro`` for an example of how to document a Bro script such that
``make doc`` will be able to produce reST/HTML documentation for it.