On Sat, 04 Feb 2006 01:31:34 +0800 Funky Beast <[EMAIL PROTECTED]> wrote:
> 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 must be improved. It should read/write valid fpdoc files. > 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. So, here they are the same. What's the difference? I mean, why write a new editor, instead of extending LazDE? > 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. Then LazDoc methods must be improved. > 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. You mean fpdoc, don't you? > (As Darius Blaszijk suggested on the other thread: > news://news.gmane.org:119/[EMAIL PROTECTED] > n) > > -Easy scalability for future expansions if new subitems needs to be added > to > xml documents, as everything is centralized in one unit. Why is scalability easy, if everything is in one unit? > -Serves as a help-content search and collection tool. Good. > -It will eventually be generating or formating html contents to be fed > to any html viewer for display. Nice. Will it use fpdoc's html generator? > 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. If you miss a feature, don't hesitate to ask. Mattias _________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
