############################################################
              GnuCash Docs README file
------------------------------------------------------------

This is the user documentation (docs) module for GnuCash. Written in
DocBook v4.5 (not 5.x series) they can be accessed under
* directly without any conversion:
** Linux: from Yelp (the Gnome help browser)

* after conversion:
** MacOs: html
** Windows: chm
** mobiles: mobi
** eBook readers: epub
** paper: pdf

If you wish to obtain a copy of the documentation in one of the latter formats,
see below under Other Formats.

Requirements
############
* cmake with
** ninja or
** make

* libxml2
* libxslt [Debian packed the required xsltproc in a separate package, 
           which depends on libxslt]
* docbook-xsl
* docbook-dtds
* yelp (for viewing)

Optional for translators:
* gnome-doc-utils (contains xml2po for the use of po editors like in the italian translation)

Additional Requirements for Generating Mobipocket:

* Calibre (https://www.calibre-ebook.com/)

Additional Requirements for Generating chm on Windows:

* MSYS2 (https://www.msys2.org/)
** MinGW32 or MinGW64
** cmake on MinGW32 or MinGW64 (not cmake for MSYS2)
** libxsl on MinGW32 or MinGW64 (not libxsl for MSYS2)
** docbook-xsl on MinGW32 or MinGW64 (not docbook-xsl for MSYS2)
* HTML Help Workshop (https://www.microsoft.com/en-us/download/details.aspx?id=21138 for Win XP - 8)
Microsoft stopped providing HTML Help Workshop installer files. You can download from WayBack Machine instead.
https://web.archive.org/web/20110712222004/http://msdn.microsoft.com:80/en-us/library/ms669985

They are installed by windows bootstrap scripts for GnuCash except HTML Help Workshop. See
  https://github.com/Gnucash/gnucash-on-windows/
for details.

Additonal Requirements for Generating PDF:

* Apache fop  >= 0.95

** FontBox
  from the Apache PDFBox [https://pdfbox.apache.org/download.cgi]
  can handle OpenType fonts, which are as default used for the russian PDF.
  Some distributions call it [lib]fontbox[-java].

Notes
#####

The GnuCash docs team is actively seeking contributors. Even if you
only have time for reviewing, editing or translating the existing docs this
can help. PLEASE let us know via IRC or the gnucash-devel mailing list what
you can work on or help with.

See also:
* https://wiki.gnucash.org/wiki/Documentation_Update_Instructions
* https://wiki.gnucash.org/wiki/Translation

Other Formats
#############

GnuCash-docs is written using docbook-xml. This allows it to be
outputted to alternative formats using external tools.

The documentation source can be converted into HTML, PDF, EPUB, or MOBI
format using such tools as xsltproc and fop.


Note: if you use external tools to render HTML, remember to bring the images
from figures and icons along with the final HTML. The browser will expect to find
the figures and images directory directly beneath the HTML directory as follows:
/path_to/gnucash-docs/html/
/path_to/gnucash-docs/html/figures/
/path_to/gnucash-docs/html/images/

--------------------------

You can generate the documentation in html, pdf, epub and mobi
using the build system that comes with the sources.

For cmake the commands are
  cd gnucash-docs
  mkdir build && cd build
  # If you don't need mobi
  cmake [options…]
  # or, if you need mobi
  cmake -DWITH_MOBI=ON [options…]

To generate the documentation in html format, run

  make html

To generate the documentation in pdf format, instead run

  make pdf

To generate the documentation in epub format, instead run

  make epub

To generate the documentation in mobi format, instead run

  make mobi
  (Note: mobi is generated from epub, so this generates epub files as well.)

If you only wish to generate a subset of the documentation, you can. However
the way to do so depends on the build system:

There are specific targets for each document. The target is of the form
<language>-<doc>-<type>.

For example to only generate the English concepts guide:

  make C-guide-html
  make C-guide-pdf
  make C-guide-epub
  make C-guide-mobi

depending on the output format you require.

In addition one could generate all documents in these formats for one language
at once by omitting the document specifier in the target.

For example:

  make C-html

will generate the html version of all documents in English. At the time of
writing this, there are two documents in English, namely guide and manual
so these two will be built.

* Running syntax checks by xmllint
-----------------
You can also run xmllint on all documents or a specific document with the command

  make check # for toplevel check
  make de-manual-check # for a cmake check for one specific document
                       # in this example - the German help manual

* XML/XSL-based tools:
----------------------

If you have xmlto installed, this can be used to convert to other formats
but problems have been experienced with PDF generation. If you output
an XML-FO format using xmlto, you could use FOP to convert to PDF - this
step requires Java. See man xmlto for more information.

Formats available with xmlto include:
dvi  fo  html  htmlhelp  html-nochunks  javahelp  man  
pdf  ps  txt   xhtml     xhtml-nochunks

The problems with pdf apply equally to dvi AND ps output. Each gives a
long error output ending with: ! Emergency stop.

manpage output only works if manpages are outlined in the XML. 
There are no manpages in gnucash-docs.

xmlto uses xsltproc - the same tool and the same stylesheets as the main
make and install.

Examples:

To convert the GnuCash Tutorial and Concepts Guide DocBook XML document 
to HTML and store the resulting HTML files in a separate directory use:

cd C/guide/
xmlto -o html-dir html index.docbook

(html-dir/ will be created if it does not already exist.)

To convert the GnuCash Help Manual DocBook XML document to a single 
HTML file in the current directory use:
cd C/manual/
xmlto html-nochunks index.docbook


Known Problems
##############

- See the full list: 
https://bugs.gnucash.org/buglist.cgi?quicksearch=product%3DDocumentation

- Please report any new problems to Gnucash's Bugzilla at 
https://bugs.gnucash.org/describecomponents.cgi?product=Documentation. Then
choose a component.

- Feel free to append your fixes and improvements also there or open a pull
request. Only docs about future features should go in branch master.
So here is the link for branch stable:
https://github.com/Gnucash/gnucash-docs/.

- With any problems you have, you can contact us in the following ways:

* quick questions via IRC
** en: irc://irc.gimp.net/gnucash 
: see https://wiki.gnucash.org/wiki/IRC

* translation related questions preferable via the local mailing lists
** de: https://lists.gnucash.org/mailman/listinfo/gnucash-de
** es: https://lists.gnucash.org/mailman/listinfo/gnucash-es
** fr: https://lists.gnucash.org/mailman/listinfo/gnucash-fr
** it: https://lists.gnucash.org/mailman/listinfo/gnucash-it
** nl: https://lists.gnucash.org/mailman/listinfo/gnucash-nl
** pt: https://lists.gnucash.org/mailman/listinfo/gnucash-br
: or your recent translator

* other user questions should go to
** en: https://lists.gnucash.org/mailman/listinfo/gnucash-user

* finally contributor questions via
** en: https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Thanks
your GnuCash Documentation Team


Original Author: 
Chris Lyttle
<chris@wilddev.net>
