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


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to