DocBook XML [DEPRECATED] ======================== .. attention:: This section describes the deprecated DocBook XML toolchain. Please do not create new DocBook XML template files. Please consider converting existing DocBook XML templates files to Sphinx/reStructuredText. Converting DocBook to Sphinx ---------------------------- Over time, we expect all of the documents under ``Documentation/DocBook`` to be converted to Sphinx and reStructuredText. For most DocBook XML documents, a good enough solution is to use the simple ``Documentation/sphinx/tmplcvt`` script, which uses ``pandoc`` under the hood. For example:: $ cd Documentation/sphinx $ ./tmplcvt ../DocBook/in.tmpl ../out.rst Then edit the resulting rst files to fix any remaining issues, and add the document in the ``toctree`` in ``Documentation/index.rst``. Components of the kernel-doc system ----------------------------------- Many places in the source tree have extractable documentation in the form of block comments above functions. The components of this system are: - ``scripts/kernel-doc`` This is a perl script that hunts for the block comments and can mark them up directly into reStructuredText, DocBook, man, text, and HTML. (No, not texinfo.) - ``Documentation/DocBook/*.tmpl`` These are XML template files, which are normal XML files with special place-holders for where the extracted documentation should go. - ``scripts/docproc.c`` This is a program for converting XML template files into XML files. When a file is referenced it is searched for symbols exported (EXPORT_SYMBOL), to be able to distinguish between internal and external functions. It invokes kernel-doc, giving it the list of functions that are to be documented. Additionally it is used to scan the XML template files to locate all the files referenced herein. This is used to generate dependency information as used by make. - ``Makefile`` The targets 'xmldocs', 'psdocs', 'pdfdocs', and 'htmldocs' are used to build DocBook XML files, PostScript files, PDF files, and html files in Documentation/DocBook. The older target 'sgmldocs' is equivalent to 'xmldocs'. - ``Documentation/DocBook/Makefile`` This is where C files are associated with SGML templates. How to use kernel-doc comments in DocBook XML template files ------------------------------------------------------------ DocBook XML template files (\*.tmpl) are like normal XML files, except that they can contain escape sequences where extracted documentation should be inserted. ``!E<filename>`` is replaced by the documentation, in ``<filename>``, for functions that are exported using ``EXPORT_SYMBOL``: the function list is collected from files listed in ``Documentation/DocBook/Makefile``. ``!I<filename>`` is replaced by the documentation for functions that are **not** exported using ``EXPORT_SYMBOL``. ``!D<filename>`` is used to name additional files to search for functions exported using ``EXPORT_SYMBOL``. ``!F<filename> <function [functions...]>`` is replaced by the documentation, in ``<filename>``, for the functions listed. ``!P<filename> <section title>`` is replaced by the contents of the ``DOC:`` section titled ``<section title>`` from ``<filename>``. Spaces are allowed in ``<section title>``; do not quote the ``<section title>``. ``!C<filename>`` is replaced by nothing, but makes the tools check that all DOC: sections and documented functions, symbols, etc. are used. This makes sense to use when you use ``!F`` or ``!P`` only and want to verify that all documentation is included. |