diff options
author | Brent Smith <gnome@nextreality.net> | 2006-02-06 05:37:45 +0000 |
---|---|---|
committer | Brent Smith <bmsmith@src.gnome.org> | 2006-02-06 05:37:45 +0000 |
commit | 59d964ce7752d9f40479d7afe3e87aa88a3663a6 (patch) | |
tree | 90e391eb39e85c06dc3401969df1862238346386 | |
parent | ad688b69ca3733d89de5d6d07fafba083506ca2b (diff) | |
download | gnome-doc-utils-59d964ce7752d9f40479d7afe3e87aa88a3663a6.tar.gz |
Created some documentation for the build utilities; based the documents
2006-02-05 Brent Smith <gnome@nextreality.net>
* doc/gnome-doc-make/C/gnome-doc-make.xml:
Created some documentation for the build utilities; based the
documents off the GnomeDocUtilsMigrationHowTo page on the wiki
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | doc/gnome-doc-make/C/gnome-doc-make.xml | 578 |
2 files changed, 572 insertions, 12 deletions
@@ -1,3 +1,9 @@ +2006-02-05 Brent Smith <gnome@nextreality.net> + + * doc/gnome-doc-make/C/gnome-doc-make.xml: + Created some documentation for the build utilities; based the + documents off the GnomeDocUtilsMigrationHowTo page on the wiki + 2006-01-31 Shaun McCance <shaunm@gnome.org> * xslt/docbook/html/db2html-block.xsl: diff --git a/doc/gnome-doc-make/C/gnome-doc-make.xml b/doc/gnome-doc-make/C/gnome-doc-make.xml index bafb75f..0095301 100644 --- a/doc/gnome-doc-make/C/gnome-doc-make.xml +++ b/doc/gnome-doc-make/C/gnome-doc-make.xml @@ -1,43 +1,597 @@ -<?xml version='1.0' encoding='utf-8'?><!-- -*- indent-tabs-mode: nil -*- --> +<?xml version="1.0" encoding="UTF-8"?> +<!-- -*- indent-tabs-mode: nil -*- --> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" -"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [ -]> - +"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> <article id="index" lang="en"> <articleinfo> <title>GNOME Documentation Build Utilities</title> + + <abstract role="description"> + <para>The GNOME Documentation Build Utilities were created to make it + easier for application developers to include and create documentation in + their releases.</para> + </abstract> + <copyright> <year>2004</year> + <holder>Shaun McCance</holder> </copyright> + <publisher> <publishername>GNOME Documentation Project</publishername> </publisher> - <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/> + + <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude" /> + <authorgroup> - <author> + <author role="maintainer"> <firstname>Shaun</firstname> + <surname>McCance</surname> - <affiliation> + + <affiliation> <orgname>GNOME Documentation Project</orgname> - </affiliation> - <email>shaunm@gnome.org</email> + </affiliation> + + <email>shaunm@gnome.org</email> + </author> + + <author> + <firstname>Brent</firstname> + + <surname>Smith</surname> + + <affiliation> + <orgname>GNOME Documentation Project</orgname> + </affiliation> + + <email>gnome@nextreality.net</email> </author> </authorgroup> + <revhistory> <revision> <revnumber>0.1</revnumber> + <date>2004-07-08</date> </revision> + + <revision> + <revnumber>0.2</revnumber> + + <date>2006-02-04</date> + </revision> </revhistory> </articleinfo> - <section id="intro"> + <section> <title>Introduction</title> - <para>Foo</para> + <para>The GNOME Documentation Build Utilities were created to make it + easier for application developers to include and create documentation in + their releases.</para> + + <para>There are several advantages to using gnome-doc-utils in your + application:</para> + + <para> + <orderedlist> + <listitem> + <para>Translation is made much easier through the use of + <application>xml2po</application>, which generates standard + <filename>.po</filename> files from docbook/xml.</para> + </listitem> + + <listitem> + <para>OMF file creation is automated from a template file for all + translated languages.</para> + </listitem> + + <listitem> + <para>Installation of documentation is automated.</para> + </listitem> + </orderedlist> + </para> + + <para>GNOME Documentation Build Utilities are named + <application>gnome-doc-utils</application> on the GNOME CVS server, so we + will refer to them in this manner throughout the rest of this + document.</para> </section> - <include href="make-ref.xml" xmlns="http://www.w3.org/2001/XInclude"/> + <section> + <title>Migrating to GNOME Documentation Build Utilities</title> + + <para>Many applications use an older method of including documentation. It + is our intention that these applications switch over to gnome-doc-utils to + provide a uniform method for building and installing documentation. The + following instructions should help you to set up new documentation or port + existing documentation to gnome-doc-utils.</para> + + <section> + <title>Requirements</title> + + <para>Make sure you're using recent + <application>gnome-common</application> (from 2005-07-19 or later) if + you're using <filename>gnome-autogen.sh</filename>, or call + <application>gnome-doc-prepare</application> in your + <filename>autogen.sh</filename> by hand.</para> + </section> + + <section> + <title>Setting up <filename>help/Makefile.am</filename></title> + + <para>The standard location for documentation is in a subdir named + <filename>help/</filename> in your directory structure. This name is not + mandatory, although it is recommended. There should also be a + <filename>help/C/</filename> subdirectory which contains the help + document as <literal>document-name.xml</literal>.</para> + + <para>In the <filename>help</filename> directory, create a file named + <filename>Makefile.am</filename>. Define the following variables inside + the file:</para> + + <para><programlisting>include $(top_srcdir)/gnome-doc-utils.make +dist-hook: doc-dist-hook + +DOC_MODULE = document-name +DOC_ENTITIES = legal.xml +DOC_INCLUDES = filename.c +DOC_FIGURES = figures/main_window.png \ + figures/open_document.png + +DOC_LINGUAS = es sr uk</programlisting>Here is a brief description of what + each variable does:</para> + + <para> + <variablelist> + <varlistentry> + <term>DOC_MODULE</term> + + <listitem> + <para>The name of the help document to build. This is the + filename without the <literal>.xml</literal> extension. You + should have help/C/$DOC_MODULE.xml</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>DOC_ENTITIES</term> + + <listitem> + <para>List any files included in the help document using system + entities.</para> + + <para>Example: <code><!ENTITY SYSTEM + "chapter1.xml"></code></para> + </listitem> + </varlistentry> + + <varlistentry> + <term>DOC_INCLUDES</term> + + <listitem> + <para>List any files that are included with the <ulink + url="???">Xinclude</ulink> specification.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>DOC_FIGURES</term> + + <listitem> + <para>List all the figures that are referenced in the help + document.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>DOC_LINGUAS</term> + + <listitem> + <para>List all the language codes for the languages in which the + document is currently translated.</para> + </listitem> + </varlistentry> + </variablelist> + </para> + </section> + + <section> + <title>Setting Up <filename>help/document-name.omf.in</filename></title> + + <para>GNOME Documentation Build Utilities require a template OMF file be + installed at <filename>help/document-name.omf.in</filename>. This file + contains a stripped down version of a Scrollkeeper OMF file. If you are + porting documentation, you can modify your existing OMF file (and rename + it) to meet these requirements.</para> + + <para><emphasis>PLEASE</emphasis> remember to change the documentation + license if you are not using the GFDL. The GNOME documentation project + does not endorse or recommend the use of this license without + understanding the full implications of doing so.</para> + + <example id="example-omf-template"> + <title>Example of a OMF file template</title> + + <programlisting><?xml version="1.0" standalone="no"?> +<omf> + <resource> + <subject category="GNOME|Tutorials"/> + <type>manual</type> + <relation seriesid="b57e7e48-be78-11d6-85a3-d094906a987c"/> + <rights type="GNU FDL" license.version="1.1" holder="Shaun McCance"/> + </resource> +</omf></programlisting> + </example> + + <para> + <warning> + <para>If you are porting documentation to gnome-doc-utils, use the + the same <code>seriesid</code> attribute on the + <code>relation</code> element as defined in your old OMF file. This + will ensure that when the new documentation gets installed, it will + get replace the older version of the document.</para> + </warning> + </para> + + <para>GNOME Documentation Build Utilities will create a + <filename>document-name-C.omf</filename> and an additional + <filename>document-name-<locale>.omf</filename> for each language + code defined in the DOC_LINGUAS variable in + <filename>Makefile.am</filename>. Depending on certain elements present + in the help document, gnome-doc-utils will generate additional elements + in the OMF file. For more information on this, please see the next + section, <xref linkend="settingup-document-name.xml" />.</para> + + <para>Where the documentation shows up in + <application>Yelp</application> depends on the category that you defined + in the <code>subject</code> element. You can see a list of valid + scrollkeeper categories at <ulink + url="http://scrollkeeper.sourceforge.net/documentation/categories.html">http://scrollkeeper.sourceforge.net/documentation/categories.html</ulink>.</para> + + <para>You can also get more information about what each element does by + referring to the <ulink + url="http://scrollkeeper.sourceforge.net/documentation/writing_scrollkeeper_omf_files/ar01s04.html#skomf-category">scrollkeeper + docs</ulink>.</para> + </section> + + <section> + <title>Setting up <filename + id="settingup-document-name.xml">help/C/document-name.xml</filename></title> + + <para>Create or move your help document to the location + <filename>help/C/document-name.xml</filename> (replacing + <literal>document-name</literal> with the actual document's name of + course).</para> + + <para>Then you will need to add the following elements/attributes to the + help document so that gnome-doc-utils will be able to populate the + autogenerated OMF files with the correct information. For more + information about where these elements should appear in the document, + you can refer to the excellent site <ulink + url="http://www.docbook.org/tdg/en/html/">http://www.docbook.org/tdg/en/html/</ulink>.<variablelist> + <varlistentry> + <term><abstract role="description">This application + is...</abstract></term> + + <listitem> + <para>Include this element in the + <code><articleinfo></code> section of your help document. + Gnome-doc-utils will use this information to create a + <code><description></code> element in the generated OMF + file.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><author>...</author></term> + + <listitem> + <para>Include this element (as well as firstname and surname + elements as children) in the <code><authorgroup></code> + section under the <code><articleinfo></code> element. + Gnome-doc-utils will use this information to create the + <code><creator></code> element in the generated OMF + file.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><author>, <corpauthor>, <editor>, + <othercredit>, or <publisher> with the attribute + role="maintainer"</term> + + <listitem> + <para>Include the attribute <code>role="maintainer"</code> on + one of these elements so that gnome-docs-utils creates a + <code><maintainer></code> element in the generated OMF + file.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><title> element of the <article> or + <articleinfo></term> + + <listitem> + <para>Gnome-doc-utils uses the contents of this element to + create the <code><title></code> element in the generated + OMF file.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><date> element in the last <revision> in your + <revhistory></term> + + <listitem> + <para>Gnome-doc-utils uses the contents of this element to + create the <code><date></code> element in the generated + OMF file.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><revnumber> element in the last <revision> in + your <revhistory></term> + + <listitem> + <para>Gnome-doc-utils uses the contents of this element to + create the <code><version></code> element in the generated + OMF file.</para> + </listitem> + </varlistentry> + </variablelist></para> + + <example id="example-omf-docbook"> + <title>Example of DocBook file with required elements</title> + + <para> + <programlisting><?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" +"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ + <!ENTITY legal SYSTEM "legal.xml"> + <!ENTITY appversion "1.0"> + <!ENTITY manrevision "1.0"> + <!ENTITY date "February 2006"> + <!ENTITY app "<application>My application</application>"> + <!ENTITY appname "My GNOME App"> +]> + +<article id="index" lang="en"> + <articleinfo> + <title>&appname; Manual</title> + <abstract role="description"> + <para>&appname; is a program that ...</para> + </abstract> + <copyright> + <year>2006</year> + <holder>Brent Smith</holder> + </copyright> + <publisher> + <publishername> GNOME Documentation Project </publishername> + </publisher> + + &legal; + + <authorgroup> + <author role="maintainer"> + <firstname>Brent</firstname> + <surname>Smith</surname> + <affiliation><orgname>GNOME Documentation Project</orgname></affiliation> + </author> + </authorgroup> + + <revhistory> + <revision> + <revnumber>&appname; Manual &manrevision;</revnumber> + <date>2006-02-04</date> + </revision> + </revhistory> + + <releaseinfo>This manual describes version &appversion; of &appname;</releaseinfo> + </articleinfo> + <section> + <title>Introduction</title> + <para>Foo</para> + </section> +</article></programlisting> + </para> + </example> + + <para>The example in <xref linkend="example-omf-autogen" /> produces the + following omf file, when using the + <filename>document-name.omf.in</filename> file listed in <xref + linkend="example-omf-template" />.</para> + + <example id="example-omf-autogen"> + <title>OMF file autogenerated by gnome-doc-utils</title> + + <screen><?xml version="1.0" encoding="utf-8"?> +<omf> + <resource> + <creator>(Brent Smith)</creator> + <maintainer>(Brent Smith)</maintainer> + <title>My GNOME App Manual</title> + <date>2006-02-04</date> + <version identifier="My GNOME App Manual 1.0" date="2006-02-04"/> + <subject category="GNOME|Tutorials"/> + <description> + My GNOME App is a program that ... + </description> + <type>manual</type> + <format mime="" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/> + <identifier url="file:///opt/gnome2/share/gnome/help/test/C/test.xml"/> + <language code="C"/> + <relation seriesid="b57e7e48-be78-11d6-85a3-d094906a987c"/> + <rights type="GNU FDL" license.version="1.1" holder="Shaun McCance"/> + </resource> +</omf> +</screen> + </example> + </section> + + <section> + <title>Removing Leftover Files</title> + + <para>If you are porting old documentation to gnome-doc-utils, then it + is recommended that you remove old + <filename>help/C/Makefile.am</filename> files, as well as any language + specific OMF files, such as <filename>help/C/document-name-C.omf or + <filename>help/<locale>/Makefile.am</filename>.</filename></para> + </section> + + <section> + <title>Adding New Files</title> + + <para>If you don't already have one, create a <filename>m4</filename> + directory in the toplevel directory, and create a + <filename>m4/.cvsignore</filename> file. Add both of these files to + CVS.</para> + + <para>Add a <filename>help/ChangeLog</filename>, analagous to + <filename>po/ChangeLog</filename>, which is used to track translations + and modifications to the help document. Also add this file to + CVS.</para> + + <para>Since gnome-doc-utils autogenerates <filename>.omf</filename> + files for each locale for which the help document is translated, you + will probably want to create and add a + <filename>help/.cvsignore</filename> and add this file to CVS.</para> + </section> + + <section> + <title>Modifying <filename>configure.ac</filename></title> + + <para>The following commands should be set in the + <filename>configure.ac</filename> file.<orderedlist> + <listitem> + <para>Add <filename>help/Makefile</filename> to + <function>AC_CONFIG_FILES</function> (or + <function>AC_OUTPUT</function> if you still use the old + method)</para> + </listitem> + + <listitem> + <para><function>AC_CONFIG_MACRO_DIR</function>(<parameter>[m4]</parameter>)</para> + </listitem> + + <listitem> + <para> + <function>GNOME_DOC_INIT</function> + </para> + </listitem> + </orderedlist></para> + </section> + + <section> + <title>Modifying the Toplevel <filename>Makefile.am</filename></title> + + <para>The following modifications should be made to the toplevel + <filename>Makefile.am</filename> file.</para> + + <orderedlist> + <listitem> + <para>Add gnome-doc-utils.make to + <varname>EXTRA_DIST</varname>.</para> + </listitem> + + <listitem> + <para>Add gnome-doc-utils.make to + <varname>DISTCLEANFILES</varname>.</para> + </listitem> + + <listitem> + <para>Add <code>--disable-scrollkeeper</code> to + <varname>DISTCHECK_CONFIGURE_FLAGS</varname>.</para> + </listitem> + + <listitem> + <para>Add m4 to EXTRA_DIST in the top-level Makefile.am</para> + + <note> + <para>You must remember to add <filename>m4</filename> to + <varname>EXTRA_DIST</varname> insite the top-level + <filename>Makefile.am</filename>, otherwise the directory won't be + added to the package and configure will fail (to catch this, you + must do <command>make distcheck</command> after <command>make + check</command>).</para> + </note> + </listitem> + </orderedlist> + </section> + + <section> + <title>Modifying the <filename>.cvsignore</filename> files</title> + + <para>Certain files are generated during the build process that you want + CVS to ignore when creating diffs and doing other functions. To make CVS + ignore these files:</para> + + <orderedlist> + <listitem> + <para>Add <filename>gnome-doc-utils.make</filename> to the top-level + <filename>.cvsignore</filename></para> + </listitem> + + <listitem> + <para>Add <filename>*.omf</filename> to the + <filename>help/.cvsignore</filename> file</para> + </listitem> + </orderedlist> + </section> + + <section> + <title>Testing</title> + + <para>To test and see if everything works:</para> + + <screen><prompt>$</prompt> <command>make && make check</command></screen> + </section> + + <section> + <title>Additional Steps</title> + + <para>There are just a few more steps to follow to finish migrating to + <application>gnome-doc-utils</application>:</para> + + <orderedlist> + <listitem> + <para>Add a <application>gnome-doc-utils</application> dependency + for your module in the <application>jhbuild</application> + moduleset.</para> + </listitem> + + <listitem> + <para>Migrate existing translations as described on <ulink + url="http://live.gnome.org/GnomeDocUtilsTranslationMigration">GnomeDocUtilsTranslationMigration</ulink> + (or just ask translators to do that for their own languages, since + this may be harder to do)</para> + </listitem> + + <listitem> + <para>Change status of your module on <ulink + url="http://live.gnome.org/GnomeDocUtilsMigration">GnomeDocUtilsMigration</ulink> + (if applicable).</para> + </listitem> + </orderedlist> + </section> + + <section> + <title>Let Us Know About it!</title> + + <para>We would definitely like to know if you port your documentation to gnome-doc-utils, so + please send an email to the following mailing lists if you have converted (or started) using + <application>gnome-doc-utils</application> to manage your documentation.</para> + + <para>Let <ulink + url="mailto:gnome-doc-list@gnome.org">gnome-i18n@gnome.org</ulink> and <ulink + url="mailto:gnome-doc-list@gnome.org">gnome-doc-list@gnome.org</ulink> know + about it!</para> + </section> + </section> + <include href="make-ref.xml" xmlns="http://www.w3.org/2001/XInclude" /> </article> |