[fpc-devel] FPDoc and Lazarus

Michael Van Canneyt michael at freepascal.org
Sat Sep 3 15:03:46 CEST 2011



On Sat, 3 Sep 2011, Hans-Peter Diettrich wrote:

> Currently I'm working on the LCL documentation, on Win7, using 
> Lazarus\docs\html\build_lcl_docs.lpr on Win7. Here I ran into some problems:
>
> There's something wrong with table row spacing, in all fpdoc generated HTML 
> files. All fpdoc generated tables (lists of types, classes...) have excess 
> whitspace between the rows (about 2 lines each), which makes the tables hard 
> to read (using Firefox). A look at the source code reveals e.g.:
>
> <h2>Declaration</h2>
> <p>Source position: controls.pp line 148</p>
> <table cellpadding="0" cellspacing="0">
> <tr>
> <td><p><tt><span class="code"><span class="kw">type </span>TAlign<span 
> class="sym"> = </span><span class="sym">(</span></span></tt></p></td>
> </tr>
> <tr>
> <td valign="top"><p><tt><span class="code">  alNone<span 
> class="sym">,</span></span></tt></p></td>
> <td><p>  </p></td>
> <td><p class="cmt">Control has fixed size and position</p></td>
> </tr>
> ...
>
> Why the many (empty) paragraphs inside the rows?

Where do you see 'empty' paragraphs ?

>
> Following an hint, I also found
>  <link rel="stylesheet" href="../fpdoc.css" type="text/css">
> but no such css in the referenced location. Lazarus supplies an 
> docs/html/fpdoc.css, but this one resides in the wrong directory, and also 
> doesn't reduce the whitespace. Graeme pointed me to
> http://opensoft.homeip.net:8080/tiopf/core/fpdoc.css
> and this css in the right place seems to remove all the excess whitespace 
> from the tables.  Actually I'm not sure what really helps to remove the 
> whitespace, it seems to reappear every now and then :-(
>
> About the location of the css file:
> In a directory structure .../docs/html/<package>/<module>/doc.html a single 
> css file in docs/html/fpdoc.css would be sufficient, to make all pages look 
> the same. Is it really required to have css files in every package directory?
>
>
> Next problem are the error messages, when running build_lcl_docs.exe, in 
> detail:
> [#lcl.Grids.HowToUseGrids] Invalid table content
> [#lcl.Grids.HowToUseGrids] Invalid description (illegal XML element: "#text")
> [#lcl.Grids.HowToUseGrids] Invalid description (illegal XML element: "link")
> [#lcl.Grids.HowToUseGrids] Invalid description (illegal XML element: "b")
> [#lcl.Grids.HowToUseGrids] Invalid description (illegal XML element: "var")
> ...
>
> These messages are quite vague, since this topic contains several tables, and 
> I also could not find out the reason for above messages. The output looks as 
> expected, and there exists no "#text" in the topic source. Are topics treated 
> differently from other element descriptions, making <link>, <b> or <var> 
> invalid?

No. It means your text structure is invalid. Typical errors are

<descr>
some text
<p>
</p>
</descr>

this needs to be

<descr>
<p>some text</p>
<p>
</p>
</descr>

>
> I suspect that it is not possible to give xml source line numbers with the 
> messages?

No, because the above errors are only produced after the XML was read, when the XML is transformed to HTML.

>
> Can somebody suggest an XML validator, that would give more precise 
> information about the location of invalid tags?

That won't help you, since there is no fpdoc DTD (any more). 
There used to be one. I will see if I can find it.

>
> I also came across <br/>, which seems to be allowed in the fpdoc sources, but 
> is missing from the documentation. It is converted into <br> in the HTML 
> output, what looks correct to me.
>
>
> As a last note, on the --descr option: wouldn't it be sufficient to specify a 
> directory here, in which fpdoc can find all the xml files for a package? Such 
> an option would e.g. allow to create the docs for multiple languages from the 
> same command line (or script, Makefile...), by only varying the xml 
> directory.

Feel free to submit a patch.

>
> One more: --project seems not to work, fpdoc complains about invalid option 
> and missing package specification?

Probably your fpdoc is too old. You should use the one from SVN.

> As already mentioned, an option would be nice that makes fpdoc create an 
> project file from the command line, instead of or in addition to creating the 
> docs.

Again: Feel free to submit a patch.

Michael.



More information about the fpc-devel mailing list