Chris Kirkpatrick wrote:
>>
> I have used the 'topic' tag in FPDoc to produce some general 'How-To'
> sections (see the documentation for StdCtrls, DBCtrls for examples)

This is exactly what I was thinking of doing as well.

Thinking about this a bit more and what could apply to my own applications context sensitive help. He is the requirements I have for application (not source code / class) documentation.

 * Must be in a text format so it can be tracked by
   SCM systems.
 * Must be able to apply for easy amendments via
   patches from the community.
 * Must be flexible enough to various output formats
   can be generated.
 * Must be usable for online and offline viewing.
 * Must not have a huge tool-chain requirement to view,
   edit and generate documentation.
 * Possible archive format (single file) deployment.

So this immediately drops DocBook and LaTeX formats (sorry Michael) because they require large tool-chains to be installed before you can generate documentation output.

fpdoc format might not be ideal, because it is design specifically to document source code - classes and units etc.. Not application screens.

Wiki's are only online. You cannot edit documentation offline and submit a patch. Wiki pages are stored in a database (90% of the time).

Possible solution
-----------------
AsciiDoc or Markdown syntax. I first time I saw this used, was in the Git project. All documentation is written in AsciiDoc syntax.

AsciiDoc or Markdown on it's own is very much like a standard readme.txt document. Everything is in ascii art format with very little formatting tags. Just reading the raw AsciiDoc or Markdown text is possible, without even generating a specific output format.

Because it is text, it works very well in SCM systems.

There are tools (similar to DocBook and LaTeX) to generate various other output formats (man pages, pdf's, HTML, LaTeX etc.) from the raw syntax, but again it has a relatively large tool-chain requirement and doesn't come standard with most OSes. Good news is that AsciiDoc or Markdown syntax is very easy to parse, so it shouldn't take a lot of work to write our own document generator for markdown syntax. Similar as what fpdoc does for it's format. We can even include a AsciiDoc syntax highlighter in Lazarus, so you can use Lazarus IDE to write the documentation. No extra "document editors" required.

Here is an example of AsciiDoc used to document the git-annotate command. This is the actual git-annotate (raw syntax) documentation.

As you can see, the AsciiDoc syntax hardly has any formatting tags, so you can read it as-is without problems.

It would even be possible to write a "on-the-fly" generator, so when the user clicks the help button, the .txt help file is loaded and generates say an HTML format in memory and viewed with an HTML component in a window. No external web browsers or viewers required.

------------------[ git-annotate.txt ]------------------------
git-annotate(1)
===============

NAME
----
git-annotate - Annotate file lines with commit information

SYNOPSIS
--------
'git annotate' [options] file [revision]

DESCRIPTION
-----------
Annotates each line in the given file with information from the commit
which introduced the line. Optionally annotates from a given revision.

The only difference between this command and linkgit:git-blame[1] is that
they use slightly different output formats, and this command exists only
for backward compatibility to support existing scripts, and provide a more
familiar command name for people coming from other SCM systems.

OPTIONS
-------
include::blame-options.txt[]

SEE ALSO
--------
linkgit:git-blame[1]

AUTHOR
------
Written by Ryan Anderson <r...@michonline.com>.

GIT
---
Part of the linkgit:git[1] suite
--------------------[ end ]------------------------


This format should be just as easily applicable for any Lazarus based application that you write. So the same help format and "viewer" can be used in LCL based applications. We could even package the .txt help into a ZIP archive using TZipper or TZipFile so a single archive can be distributed with your application. And the help can be read directly from the help archive.

Your thoughts in this?

Regards,
  - Graeme -

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://opensoft.homeip.net/fpgui/


--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to