[Lazarus] FPDoc tracker

Hans-Peter Diettrich DrDiettrich1 at aol.com
Fri Jul 15 16:53:38 CEST 2011


I'm about to write kind of a content management system for the Lazarus 
and FPC docs (FPDoc xml format). This system shall allow to track 
changes to the source documentation, so that updates can be applied e.g. 
to the FPDocs in other languages. I need such a CMS for updating my 
personal documentation, that is widely different from the "official" 
documentation. Another use may be the import of the Delphi 
documentation, that in D7 was near perfect. [as far as legal]

The idea behind this CMS is:

The CMS is based on LazDE (see lazarus/doceditor), with some adds to 
allow for remote control of the editor form(s).

Multiple versions of the docs are kept in separate directories, referred 
to as *primary* (SVN, English) and *secondary* versions. On start of the 
new project two instances of the LazDE editor form are shown, which 
allow to show corresponding files (by unit name) from two directories.

Another CMS form contains two file lists, which can be populated by 
selecting XML document directories (e.g. lazarus/docs/xml/), which then 
are scanned for all files, including subdirectories. A dblclick on an 
file opens both versions, from the two file lists, in the LazDE editor 
forms.

No technical problems, so far :-)

For the remaining functionality I need some inspiration, how changes to 
the docs can be tracked. One useful tool can be Git, which allows to 
switch quickly between revisions of the XML files, and (possibly) can 
allow to find commits with updates of the docs.

Since translated or otherwise modified docs do not correspond closely to 
the primary docs, I intend to track the "last compared" version of the 
primary docs along with every secondary doc file, so that a "What's New" 
feature can show all modifications to the primary files. For that 
purpose I need ideas, how changes can be detected at all.

One solution were another directory, holding all "old" versions of the 
primary files, so that these files can be compared to the current 
versions. The comparison can be improved by checksums or similar means, 
so that a direct file-by-file comparison can be avoided. Perhaps also a 
"diff" tool can be used to find and report all differences between the 
files in these directories?

Furthermore the found differences must be mapped into file, item, entry 
(etc.) references, which allow to navigate in the editor forms to every 
modified item. Here it should be possible to remember the exact doc 
entries, whose changes have been reflected (updated...) in the secondary 
files. Perhaps a ToDo list should be produced, from which all handled 
changes can be deleted? The list can contain all undocumented items as 
well...


Does there exist common interest in such a documentation tool?

Who can help to implement it, be by suggestion or concrete code?

DoDi





More information about the Lazarus mailing list