Version 3 of the HTML Export patch is now available at bugzilla on bug #129226. Also, I have attached a sample HTML page generated by the new code. I think this version of the patch is ready for inclusion in the 0.12. -- Chris Ladd Email: caladd particlestorm net Web: http://www.particlestorm.net GnuPG Key ID: 0x85B2BEAE
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:date="http://exslt.org/dates-and-times"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>Chris's Test Project - Planner </title> <meta name="GENERATOR" content="Planner HTML output" /> <style type="text/css"> /* * CSS Stylesheet for Planner HTML output. * * Copyright (c) 2003 CodeFactory AB * Copyright (c) 2003 Daniel Lundin (daniel edgewall com) * Copyright (c) 2004 Chris Ladd (caladd particlestorm net) * */ HTML,BODY,TABLE { font-family: Vera Sans,Arial,Helvetica,sans-serif; font-size: 10pt; white-space: nowrap; } H1 { font-size: 14pt; font-weight: bold; color: #000000; } H2 { font-size: 12pt; font-weight: bold; color: #000000; margin-bottom: 2px; } A:link, A:visited, A:hover[href] { color: #213559; text-decoration: none; font-weight: bold; } A:hover[href] { color: #992525; } /* * Separator (decorative) */ DIV.separator { margin: 50px; } /* * Project header */ DIV.proj-header { padding: 4px; right: 5px; top: 5px; float: left; font-size: 12pt; margin-bottom: 20px; } DIV.proj-header DIV .header { font-size: 10pt; font-weight: bold; margin-right: 5px; } DIV.proj-header DIV .value { font-size: 10pt; font-weight: normal; } /* * Footer */ .footer { margin-top: 50px; border-style: solid; border-width: 1px 0px 0px 0px; border-color: #999; clear: both; } .footer-date { font-size: 11pt; float: left; color: #666; } .footer-disclaimer { font-size: 9pt; text-align: right; color: #666; } /* * Gantt */ DIV.gantt-empty-begin,DIV.gantt-empty-end,DIV.gantt-complete-done,DIV.gantt-complete-notdone { clear: none; float: left; height: 13px; } DIV.gantt-complete-done { background-color: #495f6b; border-style: solid; border-width: 0px; border-color: #000000; vertical-align: middle; height: 7px; margin-top: 3px } DIV.gantt-complete-notdone { background-color: #8db6cd; border-style: solid; border-width: 1px; border-color: #000000; } DIV.gantt-empty-end { margin-left: 5px; } SPAN.gantt-milestone { font-size: 11pt; color: #000000; vertical-align: middle; position: relative; margin-left: 0px; padding-left: 0px; } TH.gantt-day-header { margin: 0px; padding: 0px; font-size: 8pt; white-space: nowrap; } /* * Table Style */ TABLE { display: table; border-collapse: collapse; border-style: solid; border-width: 1px; 1px; 1px; 1px; border-color: #000000; white-space: nowrap; margin: 2px; padding: 2px; } TR.header { background-color: #aaaaaa; border-style: solid; border-width: 1px; 0px; 0px; 0px; color: #ffffff; border-color: #000000; font-size: 9pt; white-space: nowrap; } TR.even { background-color: #eeeeee; border-style: solid; border-width: 0px; 0px; 0px; 0px; margin: 0; padding: 0; white-space: nowrap; } TR.odd { background-color: #ffffff; border-style: solid; border-width: 0px; 0px; 0px; 0px; margin: 0; padding: 0; white-space: nowrap; } TH SPAN, TR SPAN { margin-left: 10px; margin-right: 20px; white-space: nowrap; } </style> </head> <body> <h1 class="proj-title"> <a name="project" id="project">Chris's Test Project </a> </h1> <div class="proj-header"> <div> <span class="header">Company: </span> <span class="value">Aona Systems </span> </div> <div> <span class="header">Manager: </span> <span class="value">Chris Ladd </span> </div> <div> <span class="header">Start Date: </span> <span class="value">March 30, 2004 </span> </div> <div> <span class="header">Finish Date: </span> <span class="value">April 28, 2004 </span> </div> <div> <span class="header">Duration: </span> <span class="value">29d 14h </span> </div> <div> <span class="header">Phase: </span> <span class="value">Design </span> </div> <div> <span class="header">Custom Float: </span> <span class="value">1.2345 </span> </div> <div> <span class="header">Custom String: </span> <span class="value">Monkeys are cool. </span> </div> <div> <span class="header">Custom Int: </span> <span class="value">1024 </span> </div> <div> <span class="header">Report Date: </span> <span class="value">April 15, 2004 </span> </div> </div> <div style="clear: both"></div> <h2> <a name="gantt" id="gantt">Gantt Chart </a> </h2> <div style="display: none"> <hr /> <strong>*** Note: Gantt chart requires CSS capability. *** </strong> <hr /> </div> <div style="overflow:auto"> <table cellspacing="0" cellpadding="0" border="1"> <tr class="header" align="left"> <th rowspan="2"> <span>WBS </span> </th> <th rowspan="2"> <span>Name </span> </th> <th rowspan="2"> <span>Work </span> </th> <th colspan="6"></th> <th align="center" colspan="7"> Week 14, 2004 </th> <th align="center" colspan="7"> Week 15, 2004 </th> <th align="center" colspan="7"> Week 16, 2004 </th> <th colspan="3"></th> </tr> <tr class="header" align="left"> <th class="gantt-day-header" align="center" width="19px">30 </th> <th class="gantt-day-header" align="center" width="19px">31 </th> <th class="gantt-day-header" align="center" width="19px">1 </th> <th class="gantt-day-header" align="center" width="19px">2 </th> <th class="gantt-day-header" align="center" width="19px">3 </th> <th class="gantt-day-header" align="center" width="19px">4 </th> <th class="gantt-day-header" align="center" width="19px">5 </th> <th class="gantt-day-header" align="center" width="19px">6 </th> <th class="gantt-day-header" align="center" width="19px">7 </th> <th class="gantt-day-header" align="center" width="19px">8 </th> <th class="gantt-day-header" align="center" width="19px">9 </th> <th class="gantt-day-header" align="center" width="19px">10 </th> <th class="gantt-day-header" align="center" width="19px">11 </th> <th class="gantt-day-header" align="center" width="19px">12 </th> <th class="gantt-day-header" align="center" width="19px">13 </th> <th class="gantt-day-header" align="center" width="19px">14 </th> <th class="gantt-day-header" align="center" width="19px">15 </th> <th class="gantt-day-header" align="center" width="19px">16 </th> <th class="gantt-day-header" align="center" width="19px">17 </th> <th class="gantt-day-header" align="center" width="19px">18 </th> <th class="gantt-day-header" align="center" width="19px">19 </th> <th class="gantt-day-header" align="center" width="19px">20 </th> <th class="gantt-day-header" align="center" width="19px">21 </th> <th class="gantt-day-header" align="center" width="19px">22 </th> <th class="gantt-day-header" align="center" width="19px">23 </th> <th class="gantt-day-header" align="center" width="19px">24 </th> <th class="gantt-day-header" align="center" width="19px">25 </th> <th class="gantt-day-header" align="center" width="19px">26 </th> <th class="gantt-day-header" align="center" width="19px">27 </th> <th class="gantt-day-header" align="center" width="19px">28 </th> </tr> <tr class="odd"> <td> <span>1 </span> </td> <td> <a name="task-1" style="white-space: nowrap; font-weight: bold; margin-left: 0px;" id="task-1"> <span>Design </span> </a> </td> <td> <span style="white-space: nowrap; font-weight: bold;">9d 3h </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"></div> </td> </tr> <tr class="even"> <td> <span>1.1 </span> </td> <td> <a name="gantt-2" style="white-space: nowrap; margin-left: 18px;" id="gantt-2"> <span>UML Diagram </span> </a> </td> <td> <span>2d 3h </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-complete-notdone" style="width: 49px;"> <div class="gantt-complete-done" style="width: 24px;"></div> </div> <div class="gantt-empty-end"></div> Monkey, Chris </div> </td> </tr> <tr class="odd"> <td> <span>1.2 </span> </td> <td> <a name="gantt-3" style="white-space: nowrap; margin-left: 18px;" id="gantt-3"> <span>XML File Format </span> </a> </td> <td> <span>3d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 49px;"></div> <div class="gantt-complete-notdone" style="width: 100px;"> <div class="gantt-complete-done" style="width: 90px;"></div> </div> <div class="gantt-empty-end"></div> Chris </div> </td> </tr> <tr class="even"> <td> <span>1.3 </span> </td> <td> <a name="task-4" style="white-space: nowrap; font-weight: bold; margin-left: 18px;" id="task-4"> <span>File Menu </span> </a> </td> <td> <span style="white-space: nowrap; font-weight: bold;">4d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"></div> </td> </tr> <tr class="odd"> <td> <span>1.3.1 </span> </td> <td> <a name="gantt-5" style="white-space: nowrap; margin-left: 36px;" id="gantt-5"> <span>Open </span> </a> </td> <td> <span>2d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 149px;"></div> <div class="gantt-complete-notdone" style="width: 40px;"></div> <div class="gantt-empty-end"></div> Chris </div> </td> </tr> <tr class="even"> <td> <span>1.3.2 </span> </td> <td> <a name="gantt-6" style="white-space: nowrap; margin-left: 36px;" id="gantt-6"> <span>Save </span> </a> </td> <td> <span>2d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 189px;"></div> <div class="gantt-complete-notdone" style="width: 80px;"></div> <div class="gantt-empty-end"></div> Chris </div> </td> </tr> <tr class="odd"> <td> <span>2 </span> </td> <td> <a name="task-7" style="white-space: nowrap; font-weight: bold; margin-left: 0px;" id="task-7"> <span>Implement </span> </a> </td> <td> <span style="white-space: nowrap; font-weight: bold;">3d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"></div> </td> </tr> <tr class="even"> <td> <span>2.1 </span> </td> <td> <a name="gantt-8" style="white-space: nowrap; margin-left: 18px;" id="gantt-8"> <span>Milestone 0.1 </span> </a> </td> <td> <span></span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 265px;"></div> <span class="gantt-milestone">◆ </span> </div> </td> </tr> <tr class="odd"> <td> <span>2.2 </span> </td> <td> <a name="gantt-9" style="white-space: nowrap; margin-left: 18px;" id="gantt-9"> <span>Project Menu </span> </a> </td> <td> <span>2d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 269px;"></div> <div class="gantt-complete-notdone" style="width: 40px;"></div> <div class="gantt-empty-end"></div> Monkey </div> </td> </tr> <tr class="even"> <td> <span>2.3 </span> </td> <td> <a name="gantt-10" style="white-space: nowrap; margin-left: 18px;" id="gantt-10"> <span>Help System </span> </a> </td> <td> <span>1d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 309px;"></div> <div class="gantt-complete-notdone" style="width: 20px;"></div> <div class="gantt-empty-end"></div> Monkey </div> </td> </tr> <tr class="odd"> <td> <span>3 </span> </td> <td> <a name="task-11" style="white-space: nowrap; font-weight: bold; margin-left: 0px;" id="task-11"> <span>Debug </span> </a> </td> <td> <span style="white-space: nowrap; font-weight: bold;">7d 5h </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"></div> </td> </tr> <tr class="even"> <td> <span>3.1 </span> </td> <td> <a name="gantt-12" style="white-space: nowrap; margin-left: 18px;" id="gantt-12"> <span>Round 1 </span> </a> </td> <td> <span>4d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 329px;"></div> <div class="gantt-complete-notdone" style="width: 120px;"></div> <div class="gantt-empty-end"></div> </div> </td> </tr> <tr class="odd"> <td> <span>3.2 </span> </td> <td> <a name="gantt-13" style="white-space: nowrap; margin-left: 18px;" id="gantt-13"> <span>Round 2 </span> </a> </td> <td> <span>3d 5h </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 449px;"></div> <div class="gantt-complete-notdone" style="width: 118px;"></div> <div class="gantt-empty-end"></div> </div> </td> </tr> <tr class="even"> <td> <span>4 </span> </td> <td> <a name="task-14" style="white-space: nowrap; font-weight: bold; margin-left: 0px;" id="task-14"> <span>Release </span> </a> </td> <td> <span style="white-space: nowrap; font-weight: bold;">1d 4h </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"></div> </td> </tr> <tr class="odd"> <td> <span>4.1 </span> </td> <td> <a name="gantt-15" style="white-space: nowrap; margin-left: 18px;" id="gantt-15"> <span>Ship it </span> </a> </td> <td> <span>1d </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 567px;"></div> <div class="gantt-complete-notdone" style="width: 20px;"></div> <div class="gantt-empty-end"></div> </div> </td> </tr> <tr class="even"> <td> <span>4.2 </span> </td> <td> <a name="gantt-16" style="white-space: nowrap; margin-left: 18px;" id="gantt-16"> <span>Throw a party </span> </a> </td> <td> <span>4h </span> </td> <td colspan="30"> <div style="width: 600px; white-space: nowrap;"> <div class="gantt-empty-begin" style="width: 587px;"></div> <div class="gantt-complete-notdone" style="width: 4px;"></div> <div class="gantt-empty-end"></div> </div> </td> </tr> </table> <br /> </div> <div class="separator"></div> <h2> <a name="tasks" id="tasks">Tasks </a> </h2> <table cellspacing="0" cellpadding="0" border="1"> <tr class="header" align="left"> <th> <span>WBS </span> </th> <th> <span>Name </span> </th> <th> <span>Start </span> </th> <th> <span>Finish </span> </th> <th> <span>Work </span> </th> <th> <span>Priority </span> </th> <th> <span>Cost </span> </th> </tr> <tr class="odd"> <td> <span>1 </span> </td> <td> <a name="task1" style="font-weight: bold; margin-left: 0px" id="task1"> <span>Design </span> </a> </td> <td> <span>Mar 30 </span> </td> <td> <span>Apr 12 </span> </td> <td> <span>9d 3h </span> </td> <td></td> <td> <span></span> </td> </tr> <tr class="even"> <td> <span>1.1 </span> </td> <td> <a name="task2" style="margin-left: 18px" id="task2"> <span>UML Diagram </span> </a> </td> <td> <span>Mar 30 </span> </td> <td> <span>Apr 1 </span> </td> <td> <span>2d 3h </span> </td> <td> <span>3 </span> </td> <td> <span>4,845 </span> </td> </tr> <tr class="odd"> <td> <span>1.2 </span> </td> <td> <a name="task3" style="margin-left: 18px" id="task3"> <span>XML File Format </span> </a> </td> <td> <span>Apr 1 </span> </td> <td> <span>Apr 6 </span> </td> <td> <span>3d </span> </td> <td> <span>1 </span> </td> <td> <span>12,000 </span> </td> </tr> <tr class="even"> <td> <span>1.3 </span> </td> <td> <a name="task4" style="font-weight: bold; margin-left: 18px" id="task4"> <span>File Menu </span> </a> </td> <td> <span>Apr 6 </span> </td> <td> <span>Apr 12 </span> </td> <td> <span>4d </span> </td> <td></td> <td> <span></span> </td> </tr> <tr class="odd"> <td> <span>1.3.1 </span> </td> <td> <a name="task5" style="margin-left: 36px" id="task5"> <span>Open </span> </a> </td> <td> <span>Apr 6 </span> </td> <td> <span>Apr 8 </span> </td> <td> <span>2d </span> </td> <td> <span></span> </td> <td> <span>8,000 </span> </td> </tr> <tr class="even"> <td> <span>1.3.2 </span> </td> <td> <a name="task6" style="margin-left: 36px" id="task6"> <span>Save </span> </a> </td> <td> <span>Apr 8 </span> </td> <td> <span>Apr 12 </span> </td> <td> <span>2d </span> </td> <td> <span></span> </td> <td> <span>8,000 </span> </td> </tr> <tr class="odd"> <td> <span>2 </span> </td> <td> <a name="task7" style="font-weight: bold; margin-left: 0px" id="task7"> <span>Implement </span> </a> </td> <td> <span>Apr 12 </span> </td> <td> <span>Apr 15 </span> </td> <td> <span>3d </span> </td> <td></td> <td> <span></span> </td> </tr> <tr class="even"> <td> <span>2.1 </span> </td> <td> <a name="task8" style="margin-left: 18px" id="task8"> <span>Milestone 0.1 </span> </a> </td> <td> <span>Apr 12 </span> </td> <td> <span>Apr 12 </span> </td> <td></td> <td></td> <td> <span></span> </td> </tr> <tr class="odd"> <td> <span>2.2 </span> </td> <td> <a name="task9" style="margin-left: 18px" id="task9"> <span>Project Menu </span> </a> </td> <td> <span>Apr 12 </span> </td> <td> <span>Apr 14 </span> </td> <td> <span>2d </span> </td> <td> <span></span> </td> <td> <span>160 </span> </td> </tr> <tr class="even"> <td> <span>2.3 </span> </td> <td> <a name="task10" style="margin-left: 18px" id="task10"> <span>Help System </span> </a> </td> <td> <span>Apr 14 </span> </td> <td> <span>Apr 15 </span> </td> <td> <span>1d </span> </td> <td> <span></span> </td> <td> <span>80 </span> </td> </tr> <tr class="odd"> <td> <span>3 </span> </td> <td> <a name="task11" style="font-weight: bold; margin-left: 0px" id="task11"> <span>Debug </span> </a> </td> <td> <span>Apr 15 </span> </td> <td> <span>Apr 27 </span> </td> <td> <span>7d 5h </span> </td> <td></td> <td> <span></span> </td> </tr> <tr class="even"> <td> <span>3.1 </span> </td> <td> <a name="task12" style="margin-left: 18px" id="task12"> <span>Round 1 </span> </a> </td> <td> <span>Apr 15 </span> </td> <td> <span>Apr 21 </span> </td> <td> <span>4d </span> </td> <td> <span></span> </td> <td> <span></span> </td> </tr> <tr class="odd"> <td> <span>3.2 </span> </td> <td> <a name="task13" style="margin-left: 18px" id="task13"> <span>Round 2 </span> </a> </td> <td> <span>Apr 21 </span> </td> <td> <span>Apr 27 </span> </td> <td> <span>3d 5h </span> </td> <td> <span></span> </td> <td> <span></span> </td> </tr> <tr class="even"> <td> <span>4 </span> </td> <td> <a name="task14" style="font-weight: bold; margin-left: 0px" id="task14"> <span>Release </span> </a> </td> <td> <span>Apr 27 </span> </td> <td> <span>Apr 28 </span> </td> <td> <span>1d 4h </span> </td> <td></td> <td> <span></span> </td> </tr> <tr class="odd"> <td> <span>4.1 </span> </td> <td> <a name="task15" style="margin-left: 18px" id="task15"> <span>Ship it </span> </a> </td> <td> <span>Apr 27 </span> </td> <td> <span>Apr 28 </span> </td> <td> <span>1d </span> </td> <td> <span></span> </td> <td> <span></span> </td> </tr> <tr class="even"> <td> <span>4.2 </span> </td> <td> <a name="task16" style="margin-left: 18px" id="task16"> <span>Throw a party </span> </a> </td> <td> <span>Apr 28 </span> </td> <td> <span>Apr 28 </span> </td> <td> <span>4h </span> </td> <td> <span>10 </span> </td> <td> <span></span> </td> </tr> </table> <div class="separator"></div> <h2> <a name="resources" id="resources">Resources </a> </h2> <table cellspacing="0" cellpadding="0" border="1"> <tr class="header" align="left"> <th> <span>Name </span> </th> <th> <span>Short name </span> </th> <th> <span>Type </span> </th> <th> <span>Group </span> </th> <th> <span>Email </span> </th> <th> <span>Cost </span> </th> </tr> <tr class="odd"> <td> <a name="res-1" id="res-1"> <span>Chris Ladd </span> </a> </td> <td> <span>Chris </span> </td> <td> <span>Work </span> </td> <td> <span>Programmers </span> </td> <td> <a href="mailto:caladd particlestorm net"> <span>caladd particlestorm net </span> </a> </td> <td> <span>500 </span> </td> </tr> <tr class="even"> <td> <a name="res-2" id="res-2"> <span>Code Monkey </span> </a> </td> <td> <span>Monkey </span> </td> <td> <span>Work </span> </td> <td> <span> </span> </td> <td> <a href="mailto:"> <span> </span> </a> </td> <td> <span>10 </span> </td> </tr> </table> <div class="footer"> <div class="footer-date"> Created April 15, 2004 at 16:57:20 </div> <div class="footer-disclaimer"> <div> This file was generated by <a href="http://planner.imendio.org/">Planner </a> . </div> </div> </div> </body> </html>
Attachment:
signature.asc
Description: This is a digitally signed message part