Documentation Requirements

From GnuCash
Jump to: navigation, search

Purpose of this page is to collect the requirements, which must or should be met in case we want to change the documentation file format (source language). See Bug 722016 - We should change the Documentation file format.

Definitions

Input Format
The source format of the documentation files. Examples are DocBook, reStructuredText (reST) and Markdown. Contributors to the documention would be encouraged to use this format.
Output Format
Formats such as HTML, EPUB or MOBI that are produced by the documention flow.
Documentation Flow
An automated process that takes in documentation source files in a given input format and outputs processed files in various output formats.
MUST, SHOULD, MAY
As defined in RFC 2119.

Output Format Support

The documentation flow...

Final targets
1. Context sensitive Help
requires support of all important OS/desktop dependent help browsers
2. Web display
for referencing or to use search engines
3. Couch Reading
e-Readers and paper
Requirement Justification DocBook Support reST support
MUST support Yelp. Yelp is a primary HELP view for GNOME.
SHOULD support KHelpCenter. KHelpCenter is a primary HELP viewer for KDE.
MUST support HTML output. Required for presentation on GnuCash website.
MUST support EPUB output. A popular format for tablets and e-readers.
SHOULD support CHM output.
MUST support PDF output. Many people like to read long-form documentation in PDF.

Documentation Tooling

All tools used in the documentation flow...

Requirement Justification DocBook Support reST support
MUST have several years of active development. Project prefers to use proven tools.
MUST have a major community of users. Better chance for support/bug fixes in larger projects.

Input Format Requirements

The documentation input format...

Requirement Justification DocBook Support reST support
MUST support semantic markup. More consistent appearance across output formats.
MUST support reasonable version control. Allows maintainers to handle projects and diffs easily.
MUST support linking (cross-references) inside and between documents. A requirement for professional documentation.
SHOULD be able to generate a List of Figures, Equations, etc. Also required for professional documentation.
MUST support variable substitutions (also referred to as macros). Easier maintenance.

Internationalization

The documentation flow...

Requirement Justification DocBook Support reST support
MUST support internationalization. GnuCash has a world-wide user base.
MUST support non-latin writing. Many GnuCash users use non-latin languages.
Current state
it
used xml2po from gnome-doc-utils to create a po file. After several years without a translator, it got frozen because it became more and more "english with italian"
other languages
manually: Chapters (files) were copied from C and then section by section translated. Because we have many section ids, tools like KDiff3 can help while updating a translation.
Currently planned
Po_Based_Documentation_Translations by the W3C Recommendation Internationalization Tag Set (ITS) Version 2.0.
See also
Improve_Localization_Process
Other Approachs
Weblate, which is used since end of 2020 for source translation, suggests Sphinx for documentation. It uses reStructuredText as input.
The Linux Kernel has switched to rst. They use pandoc to convert from Docbook and I think Sphinx for processing the rst directly, and it looks to me like that would work for us too.[1]
GTK is in 2021 discussing to switch from GTK-doc to gi-docgen (gi: gobject-introspection) [2]
Development in gtk-doc
Perl was replaced by Python;
beside the on large projects slow Doxbook, a Markdown-Subset got supported.
general purpose documentation tools for C and C++ libraries
Doxygen
HotDoc
MarkDeep
  1. https://lists.gnucash.org/logs/2021/02/02.html#T17:04:59
  2. Emmanuele Bassi: halting problem :: Documentation changes
  3. Retrieved from "https://wiki.gnucash.org/wiki/index.php?title=Documentation_Requirements&oldid=18811"