Extensible Help Project Plan

From Apache OpenOffice Wiki
Jump to: navigation, search

This page describes project details for the Extensible Help project. Main page: Extensible_Help

General concept

Extension developers should be able to include help content into the extension just by including xhp files (the help file format also used by the OOo help) into a help folder inside the extension. Multiple languages should be supported. English should be the fallback language. It shouldn't be necessary for extension developers to compile the help files at creation time. This will be done automatically when the extension is deployed (shared extensions) or used for the first time (user extensions).


Although the main tasks are listed as milestones they should not be seen in a strict sequence as some parts of earlier milestones may depend on progress in others. Example: The new HelpContentProvider mechanisms (M1) can't be finally tested and finished without a running HelpLinker mechanism (M2).

M1 Extend help runtime system

Finished end of week 36

  • Extend HelpContentProvider to support help sources in extensions
    • For Extended tool tips (*.ht files), Done
    • For help content (*.db files), Done
    • For index content (*.key files), Done
    • Allow extention developer to choose target index/indices (swriter, scalc, ...), Done
  • Multiple language support
    • Works automatically by name convention if language folder exists
      Done respectively compiler related problem
  • Check performance
    • Performance analysis, Done, no problems, but uncovered:
    • Potential memory problem (will be handled in M5)

M2 Access HelpCompiler/HelpLinker to compile extension help content

Finished in week 40

  • Make new C++ HelpLinker available as library, Done
  • Adapt HelpLinker to compile/link help content inside extensions, Done

M3 Change HelpCompiler/HelpLinker error handling

Finished in week 43

  • Remove exit(1) calls from HelpCompiler/HelpLinker for extension case, Done
  • Register error handler at libxml2 to get xml parsing error info, Done
  • Return error info to caller, "Done"

M4 OOo integration

Target: To be finished in week 44

  • Package registry backend, "Done"
    • Shared extensions: Compile help at deploy time
    • User extensions: Compile help at deploy time, at least for now. Optimization can be done later:
      • Mark somehow that help needs to be compiled
      • Implement on demand compilation mechanism in HelpContentProvider
  • Resources for HelpCompiler/HelpLinker error classes, "Done"
  • Dialog and menu bindings, Done
  • (Adapt help viewer) it seems no changes are necessary, "Done"

M5: Finish project

Target: To be finished at the beginning of week 45 (11/05/2007)

  • English as fallback, "Done"
  • Analyze/fix memory problem, Open (no easy fix available, postponed)
  • Deploy HelpLinker library with OOo, "Done"
  • Clean up code, "Done"
  • Prepare cws ab38 for QA, "Done"

M6: Documentation

Target: To be finished end of week 46

  • Create SDK example (containing new menu entry with help and a dialog with help), Open
  • Developers Guide Chapter, Open

Future planning, OOo 3.0

Already known issues that probably cannot be realized for OOo 2.4

M7 Migrate to Lucene as indexer

  • Add Lucene as project into OOo built environment
  • Make HelpLinker use Lucene indexer functionality
  • Make HelpContentProvider use Lucene search engine
  • Support Lucene for extens help content


  • Images in help
  • Support adding tree content


  • Overloading of existing help pages
  • Extending existing help pages

Status Changes


  • Updated status
  • Moved Lucene/Indexing to Future planning
Personal tools