You want to do use gnome-doc-utils
for all your packages, since it would automate most of the
documentation build process, and it would enable translations using
PO files (with xml2po
from gnome-doc-utils
being used).
The steps slightly differ between creating new help documents for a package using gnome-doc-utils, or for porting old documentation to gnome-doc-utils.
These are only preliminary instructions; they will probably change (anyone volunteering to switch this over to DocBook, fix any remaining gnome-doc-utils issues [see below for caveats], etc?).
In each of cases, you start out with cd'ing into your package root
directory, and running shaunize
script provided with
gnome-doc-utils. In Gnome projects, shaunize
would probably be run
from autogen.sh scripts. If you don't have this script, look at
caveats below.
After initial run, you'll end up with gnome-doc-utils.make
linked
into your package top source directory. You'll probably get warnings
about further steps you need to take (like adding GNOME_DOC_INIT
to
configure.ac
). So, it's a good idea to do that right away: add call
to GNOME_DOC_INIT
into configure.ac
(or configure.in
).
Now, if you already have some documentation for your package, you want to switch that to using gnome-doc-utils. For the purposes of demonstrating the procedure, we'll assume that your documentation sits in $(top_srcdir)/help/.
If you anticipate to have more than one document in your package in the future, it would be wise to switch to directory layout Shaun proposes:
$(top_srcdir)/help/document1/C/ $(top_srcdir)/help/document2/C/ ...
OTOH, if you want to keep CVS history, you'll probably want to keep
your directory layout as it is. The only difference is in a moving
step (mkdir help/document1 && mv help/* help/document1
).
Now, you want to modify your help/Makefile.am
to use
gnome-doc-utils.make
. You'll should end up with the following
contents:
include $(top_srcdir)/gnome-doc-utils.make dist-hook: doc-dist-hook DOC_MODULE = document-name DOC_INCLUDES = DOC_LINGUAS =
Next, you want to put a template .OMF file for gnome-doc-utils to use
to build all other OMF files (for translations and C locale). You
should reuse your help/C/document-name.omf
to create
help/document-name.omf.in
. For gnome-hello, I ended up with the
following:
<?xml version="1.0" standalone="no"?> <omf> <resource> <subject category="GNOME|Tutorials"/> <type>manual</type> <relation seriesid="b57e7e48-be78-11d6-85a3-d094906a987c"/> </resource> </omf>
Note that all the other fields are populated by gnome-doc-utils based on the DocBook file itself, so no need to worry about that (what you actually care about here is category, and seriesid, which should be the same for all revisions of your document).
Now, you may remove any leftover build system files, such as
help/C/Makefile.am
, help/C/*.omf
etc, and remove any of these from
AC_OUTPUT
(in your configure.ac
). Be sure to also add
gnome-doc-utils.make
to your top-level DISTCLEAN_FILES
.
To add new documents to your help directory, use
shaunize --new-document DOCUMENT
.
This will
create ./help/DOCUMENT/Makefile.am
,
./help/DOCUMENT/DOCUMENT.omf.in
and ./help/DOCUMENT/C/DOCUMENT.xml
for you. These are only templates, and you'll want to modify them
to suit your requirements.
Also, you should add DOCUMENT
to SUBDIRS
in ./help/Makefile.am
(you may
need to create it), and
add ./help/DOCUMENT/Makefile
to AC_OUTPUT
call.
Until gnome-doc-utils
is updated to
include shaunize
script and needed template files, you
may grab all of them from kvota.net/hacks/shaunize/,
and manually copy them into your project directories.
To add new translations, simply put translated PO files into
help/lang/lang.po
, and
add lang
to DOC_LINGUAS
in help/Makefile.am
.
Note that gnome-doc-utils doesn't handle figures correctly yet, so
they'll be missing from your tarballs generated with make
dist
, and won't be installed either.
Another problem is that *.omf files are not yet removed
with make distclean
call, so make
distcheck
will probably fail for you.
If you don't have "shaunize" script (since your gnome-doc-utils version might not yet integrate it), you may create it with the following contents:
#!/bin/sh if [ ! -f gnome-doc-utils.make ]; then ln -s "`pkg-config --variable=datadir gnome-doc-utils`/gnome-doc-utils/gnome-doc-utils.make" fi
This will simply symlink gnome-doc-utils.make into your source directory, so you could make use of it in your Makefiles. You won't get the templates for adding new documents.