FOray
|
FOray: VisionContentsThe Big PictureFOray’s big-picture goal is to eventually provide a complete XML publishing solution, based on standards. This goal includes a WYSISYG editor for the user that is backed (through several layers) by the semantic XML. In other words, the user will actually be editing the semantic XML, but will be doing so through the AreaTree, which is backed by the FOTree, which is backed by the semantic XML. There is one gaping hole in the above scenario, and that is getting the FOTree backed by the semantic XML. XSLT is currently a one-way street, so we need to find a creative way for a stylesheet concept to create an FOTree that is a “view” of the semantic XML. We think this is doable, but it is non-trivial, and, at the moment anyway, non-standard. Immediate GoalsHome for EnhancementsThe FOP developers refuse to even consider enhancements to the FOP 0.20.5 version, their most recent release. FOray started with FOP 0.20.5 as its codebase and is glad to consider enhancements to that base so that they can be maintained, used, tested, and improved. ModularizationThe major motivation for FOray’s existence is the modularization of the system design. This goal is important:
The FOP developers have repeatedly refused to consider modularization of their codebase, although they may be willing to do so after their new layout system is complete. We believe that modularization is a necessary prerequisite to improving any part of the system. Although it is not technically required as a prerequisite to FOP completing their new layout system, we think it would make (or would have made) that job much easier, and would have prevented many of the project problems that have prevented FOP from releasing code in over three years. Our purpose is to first modularize, then proceed with the necessary changes to layout and other modules. One nice benefit of this approach is that, since we have some subsystems already isolated, improvements can be made to them already in a much easier manner, with or without future isolation and modularization work. Improving the font subsystem, for example, is much, much simpler and more straightforward than it was in the FOP 0.20.5 code. We are modularizing the system in a straightforward, logical, and methodical manner. The following modules have already been spun out of the codebase:
Work on modularizing the FOTree is nearly complete. It is designed to be independent. Although it is technically dependent on Area Tree for grafting and other issues, we think these issues can be abstracted through parameters and interfaces. Other candidates for FOray modules include (in no particular order):
Project resources and the needs of FOray developers and users will dictate how and when the above chores are tackled |