Mattias Gaertner wrote:
On Thu, 02 Feb 2006 23:19:00 +0800
Funky Beast <[EMAIL PROTECTED]> wrote:
Mattias Gaertner wrote:
On Wed, 1 Feb 2006 08:38:38 +0200
Graeme Geldenhuys <[EMAIL PROTECTED]> wrote:
What's the difference between a "LazDoc xml Document" and a fpdoc xml?
What's the difference between CodeHelp and LazDE?
I've browse through the contents of all the Lazarus and FPCDocs
xml document files, each and every one. Lazarus documents currently
only has "element" items. While FPCDocs documents has
"element" and "topic" items.
Currently, the differences between LazDoc and LazDE is the methods
they used to read and write contents to an xml document.
LazDoc adopts a direct read and write methods via
CreateTextNode() and the element's Node.FirstChild.NodeValue from DOM.
This is OK if we are only reading and writing only Lazarus Documentations
as the contents are not heavily populated yet.
Reading:--
But if we use these methods to read an FPC xml document which i checked
out from fpcdocs trunk, their contents are heavily populated with a lot
of html tags within the contents. The problem for LazDoc's read method
will be that when it reads an html tag, it will consider it as a new item,
thus it can't completely read a description element full of html tags, which
are a norm in FPC documents, causing incomplete content.
LazDe on the other hand reads the contents by streaming it through DOM, and
the contents are read with the html tags intact for display. The resulted read
content can then be sent to any HTML viewer component for display without
further processing.
Thus CodeHelp adopts LazDe's method of reading.
Writing:--
LazDoc writes its content to xml elements with CreateTextNode() method.
So if there are html tags in the contents, the tags are converted to
some what wierd values, e.g. <b> tag will be written to the xml document
phisically as '<b>'. When you open that modified document with
LazDe or FPDE or any text editor, you will see '<b>' as part of
the content instead of the <b> tag. You can only see the <b> tag only
when viewed with LazDoc.
LazDe's method of writing doesn't have that effect.
Thus CodeHelp adopts LazDe's method of writing also.
CodeHelp attempts to provide:
-Tools to LazDoc for easy management of xml documents for both Lazarus and FPC.
(As Darius Blaszijk suggested on the other thread:
news://news.gmane.org:119/[EMAIL PROTECTED])
-Easy scalability for future expansions if new subitems needs to be added to
xml documents, as everything is centralized in one unit.
-Serves as a help-content search and collection tool.
-It will eventually be generating or formating html contents to be fed
to any html viewer for display.
Thus fulfilling your item no. 3:
- the parsing of the fpdoc xml item and showing as formatted text :-)
ideintf/helpintf.pas
HelpDatabases contains all help databases. A Help database can be for
example a TFPDocHTMLHelpDatabase.
Every lazarus package can register one or more help databases.
The IDE registers some default help databases: RTL, FCL, LCL and MainHelp.
MainHelp is currently a simple THTMLHelpDatabase.
The RTL help database is registered for all *.pas and *.pp files in the file
path '$(FPCSrcDir)/rtl' and all sub directories.
So, when the user presses F1 on an identifier, say 'TObject', the IDE
searches the declaration. It finds it in $(FPCSrcDir)/rtl/inc/objpash.inc
which belongs to $(FPCSrcDir)/rtl/linux/system.pp. Now the IDE searches a
help database with this unit and finds the RTL help db.
It then tells the help database to show the help for 'system.pp TObject'.
Because the RTL help db is a TFPDocHTMLHelpDatabase, it simply converts it
into an URL and starts a browser to show that page.
Thanks, then i'll have to digest helpintf.pas for the formating of
"SeeAlso" links in the xml documents.
Mattias
Funky Beast
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives