Hi,

Disclaimer:
 :-)   Please note, this in only a testing release (not even beta yet) to
get some feedback on the DocView program and the layout of Free Pascal's
RTL and FCL help. I have rewritten the fpdoc IPF output writer from
scratch to improve the help layout.

At the url below, is an archive with DocView and RTL & FCL inf
help files. Linux 32bit only at the moment (sorry). You simply need to
double click the 'docview' executable and open one of the INF files.
There are install instructions if you wanted to integrate DocView with
Gnome Desktop (I still need to figure out KDE & Windows).

  http://opensoft.homeip.net/~graemeg/docview_2009-10-28.tar.bz2
  (file size: 1.6MB)

Any feedback you can give regarding the INF documentation layout or
DocView itself would be much appreciated.


IPF layout notes:
------------------

1) I like the PDF output and modeled fpdoc IPF output according to that.

2) extra Topics in units are reordered to appear after the unit's
Overview section.

3) I merged the "used units" and "Overview" sections into one help topic.

4) Enumerated types or constants listings are not formatted yet.
Neither is table output. These are next on my list.

5) I found that if I do a search for a keyword (example 'SysUtils')
and click on one of the return results, sometimes the topic page is
blank. That is because for example the "Overview" topic was in a
separate TOC node, one level down. To resolve this, I removed the
"overview" (general description) nodes in TOC and merged it with the
actual unit, section nodes in TOC treeview. I'll try and explain
visually.

eg: It used to be like this:

   FCL              <-- blank topic
     +- Overview
     +- unit 'SysUtils'   <-- blank topic
       +- Additional Topics here
       +- Units used
       +- Overview
       +- Constants & vars
       +- Procedures

...and I now made it like this...

   FCL               <-- overview is here
     +- unit 'SysUtils'    <-- units & overview is here
       +- Additional Topics here
       +- Constants & vars
       +- Procedures


DocView notes (and known problems)
----------------------------------

1) DocView is far from complete and still contains many bugs.  :-)
Normal disclaimers apply.

2) Some topics fail to load, but this is much less than before. I'm
working on fixing this.

3) Searching still needs to be improved slightly - to improve it's accuracy.

4) If no Index exists in the INF file, one will be created at runtime.

5) If Index exists (it might be small), so by default the INF's index
is merged with a manually created Index resulting in a more complete
one. This is a user selectable option.

6) TOC treeview tracks where you are as you browse topics.

7) I often found I wanted to know where in the docs I am without
switching to treeview. The status bar now shows your current location.

8) Hyperlinks are still a "hit & miss" feature. Mouse click location is not
always 100% accurate, so try clicking on the first half of a hyperlink
(words highlighted in blue). I only got basic hyperlinking working
last night in the RichTextView component.  :-)

9) Scrolling and Resizing is still sluggish.

10) History, Annotations and customizable Font resize/substitutions
are not implemented yet. All of these are almost done.


Nice DocView features so far:
-----------------------------

1) Merge help files at runtime using any of the following methods.
 a) From the command line:
      $ docview /path/to/file.inf+/path/to/2ndfile.inf

 b) Via a directory:
      $ docview /path/to/help/files/

 c) Via an environment variable:
      $ export BOOKSHELF=/opt/help/inf/
      $ docview BOOKSHELF

 d) Via a directory and file combo:
      $ docview /opt/fcl.inf+/path/to/more/help/


2) Show some command line options
  $ docview -h

3) Finding a topic ID doesn't work, but Searching does. eg:
  $ docview rtl.inf -s <keyword>

4) Pretty easy Lazarus integration without modifying Lazarus source
code. Similar instructions apply for MSEide integration.

5) Search text is highlighted after a search. This will be user
customizable (including the colour) in the future.

6) You can specify more advanced search text. eg:

   +GUID -String -Create

   This will find all help topics containing the word "GUID",
   but that doesn't contain the words "String" or "Create".

7) Help topics can be saved to a text file. Escaped or non-Escaped
text is user selectable via the docview.ini file. Soon I will have a
Settings dialog where all these options can be customized without
editing text files.


Lazarus integration:
--------------------
* I have setup an environment variable called FPCHELP which points
  to both rtl & fcl INF files. I could have used a directory as well.
* I then used option 3) above in the Lazarus External Tools and
  assigned it the keyboard shortcut Ctrl+F1
* Also part of the external tools setup. Tell Lazarus to pass the
  current token as a search term to DocView. See the screenshot
  included in the archive.
* Now while you are coding, press Ctrl+F1 to get help on the current
keyword. No internet required! :-)


I would appreciate any feedback you can give regarding DocView itself
(features you would like, etc..) and all importantly, the layout of
the FPC documentation.

I already received suggestions for FPC doc layout changes:
 * Related Topics as a listing in a unit's overview page.
 * Inheritance tree in overview page
 * Class Declaration as is shown in HTML output.


Have fun!  :)


-- 
Regards,
  - Graeme -


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

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

Reply via email to