doc: Auto-generate API methods and classes documentation

There's work to do still for giving a prettier style on the documentation, for
instance splitting paragraphs correctly and printing the detailed description
of the methods as well.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
This commit is contained in:
Tiago Vignatti 2012-11-09 20:14:31 -02:00
parent a95aba7fca
commit c77ba6bebc
2 changed files with 52 additions and 16 deletions

View file

@ -32,10 +32,20 @@ en-US/ProtocolInterfaces.xml: $(top_srcdir)/protocol/wayland.xml $(srcdir)/proto
$(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-interfaces-to-docbook.xsl \ $(AM_V_GEN)$(XSLTPROC) $(srcdir)/protocol-interfaces-to-docbook.xsl \
$(top_srcdir)/protocol/wayland.xml > en-US/ProtocolInterfaces.xml $(top_srcdir)/protocol/wayland.xml > en-US/ProtocolInterfaces.xml
en-US/WaylandClientAPI.xml: $(top_builddir)/doc/doxygen/xml/wayland-client_8h.xml $(srcdir)/doxygen-to-publican.xsl # WaylandClientAPI.xml is generated after combining all xml in one single file
# with the exception of wayland-client_8h.xml that is omitted to not duplicate
# the output methods.
en-US/WaylandClientAPI.xml: $(top_builddir)/doc/doxygen/xml/index.xml $(srcdir)/doxygen-to-publican.xsl
$(AM_V_GEN)$(MKDIR_P) en-US/images $(AM_V_GEN)$(MKDIR_P) en-US/images
$(AM_V_GEN)mv $(top_srcdir)/doc/doxygen/xml/wayland-client_8h.xml \
$(top_srcdir)/doc/doxygen/
$(AM_V_GEN)$(XSLTPROC) $(top_srcdir)/doc/doxygen/xml/combine.xslt \
$(top_srcdir)/doc/doxygen/xml/index.xml > \
$(top_srcdir)/doc/doxygen/xml/clientAPI.xml
$(AM_V_GEN)mv $(top_srcdir)/doc/doxygen/wayland-client_8h.xml \
$(top_srcdir)/doc/doxygen/xml
$(AM_V_GEN)$(XSLTPROC) $(srcdir)/doxygen-to-publican.xsl \ $(AM_V_GEN)$(XSLTPROC) $(srcdir)/doxygen-to-publican.xsl \
$(top_builddir)/doc/doxygen/xml/wayland-client_8h.xml > en-US/WaylandClientAPI.xml $(top_builddir)/doc/doxygen/xml/clientAPI.xml > en-US/WaylandClientAPI.xml
# Copy the en_US source files into en-US destination # Copy the en_US source files into en-US destination
# This is required for out-of-source-tree build as publican does not allow us # This is required for out-of-source-tree build as publican does not allow us

View file

@ -13,12 +13,20 @@
<section id="sect-Library-Client"> <section id="sect-Library-Client">
<title>Client API</title> <title>Client API</title>
<para>Following is the Wayland library interface for clients <para>Following is the Wayland library classes for clients
(<emphasis>libwayland-client</emphasis>). Note that most of the (<emphasis>libwayland-client</emphasis>). Note that most of the
procedures are related with IPC, which is the main responsibility of procedures are related with IPC, which is the main responsibility of
the library. the library.
</para> </para>
<para>
<variablelist>
<xsl:apply-templates select="/doxygen/compounddef" />
</variablelist>
</para>
<para>And methods for the respective classes.</para>
<para> <para>
<variablelist> <variablelist>
<xsl:apply-templates select="/doxygen/compounddef/sectiondef/memberdef" /> <xsl:apply-templates select="/doxygen/compounddef/sectiondef/memberdef" />
@ -27,20 +35,38 @@
</section> </section>
</xsl:template> </xsl:template>
<xsl:template match="memberdef" >
<xsl:if test="@kind = 'function'">
<varlistentry>
<term> <!-- methods -->
<xsl:value-of select="name" /> <xsl:template match="memberdef" >
</term> <xsl:if test="@kind = 'function' and @static = 'no'">
<listitem> <varlistentry>
<para> <term>
<xsl:value-of select="briefdescription" /> <xsl:value-of select="name" />
</para> - <xsl:value-of select="briefdescription" />
</listitem> </term>
</varlistentry> <listitem>
</xsl:if> <para></para>
</listitem>
</varlistentry>
</xsl:if>
</xsl:template> </xsl:template>
<!-- classes -->
<xsl:template match="compounddef" >
<xsl:if test="@kind = 'class' ">
<varlistentry>
<term>
<xsl:value-of select="compoundname" />
<xsl:if test="briefdescription">
- <xsl:value-of select="briefdescription" />
</xsl:if>
</term>
<!-- TODO: the output text is not splitting paragraphs correctly -->
<listitem>
<para><xsl:value-of select="detaileddescription"/></para>
</listitem>
</varlistentry>
</xsl:if>
</xsl:template>
</xsl:stylesheet> </xsl:stylesheet>