lundi 2 juin 2008

SoC begins

Last monday (May 26th), the Google Summer of Code program officially started !

The project I'm involved in is PhD. What's PhD? It's a PHP-based Docbook renderer which take a Docbook file in input and render it on various formats. Now, the only output format is XHTML but the purpose of my work is to render CHM, PDF and Unix-manpage formats and to write themes to render documentation for PHP related projects (Pear, PHP-GTK).

So, after a phase of documentation reading, I was ready to begin to code !

I began the project with the CHM renderer, which is now done for the PHP.net theme. Here is an example of a PhD-rendered CHM file : http://iutinfoa1.free.fr/SoC/php_manual_en.chm.

CHM is a Microsoft proprietary format, so it can be compiled only with a Microsoft tool : HTML Help Workshop (free to use, happily). The purpose was to generate Help Workshop project files : a description of the CHM file (.hhp), the table of content (.hhc) and the index (.hhk) which will be processed by Help Workshop.

Like all the proprietary tools, it has weaknesses and many undocumented troubles... The main issue I had is with the format of the table of content. All the element are in a HTML ul-li list and there is as much of lists as the number of subelements. All element is in an "object" markup. And guess what? If you wrap a line between the "li" markup and the "object" markup, Help Workshop will not compile !!! And because it's very well documented, the only help it give is "Please check the space available on your hard drive" ! Good to know, isn't it? :)

So, what's done this week? CHM rendering with stylesheet for PHP theme ! First step : helping Pear guys to migrate from Docbook 4.3 documentation to Docbook 5 and code a Pear theme.

See you friday !

PhD Wiki : http://doc.php.net/wiki/phd
Docbook reference website : http://www.docbook.org/
GSoC Project webpage : http://code.google.com/soc/2008/php/appinfo.html?csaid=3D5258783F22F62C

2 commentaires:

Hello World a dit…

Awsome work with the CHM file generation. It look and works very well!

Rudy a dit…

Thanks! My first achievement ;)