[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: FrameMaker as DITA Publishing Engine
Most follow-up discussion of this issue should happen on the dita-ot-developer list. https://lists.sourceforge.net/lists/listinfo/dita-ot-developer Goals ===== FrameMaker is a capable, relatively cheap, widely deployed formatting engine. It is, of course, also an authoring application, but there is a separate project designed to make it usable as a DITA editor.[1] We think that we can make more substantial progress in a much shorter time treating FrameMaker as a publishing output and have already demonstrated this with a Proof of Concept demonstrated during a Blast Radius XMetaL Webinar[2]. There are some loose ends to tie up, but the overall technique is proven. [1] http://groups.yahoo.com/group/framemaker-dita/ [2] http://tinyurl.com/7voye The following DITA constructs should be mapped to appropriate FrameMaker constructs: * inline elements -> paragraph styles * paragraph elements -> character styles * topic and section titles -> heading styles * topicref titles -> heading styles (optional) * CALS tables -> FM tables * various kinds of simple tables -> FM tables * DITA internal cross references -> FrameMaker cross references * DITA external cross references -> FrameMaker hyperlinks * DITA index entries -> FrameMaker index entries * DITA footnotes -> FrameMaker footnotes * DITA graphics -> FrameMaker graphics * xxx anything else? xxx The following DITA constructs should be normalized by the DITA toolkit: * conref processing * topic merging * defaulted attributes * generalization * DITA address resolution Whereever possible, the overall rules about how maps, topic references, related links, cross references etc. are interpreted should be shared between the XSL-FO and FrameMaker outputs. They will use a single topic merging algorithm likely implemented in common code (topicmerge.xsl). There are some aspects that could arguably be handled in either place. There is still room for discussion on where to handle these: * table of contents generation * index generation (not index authoring, but generation from index markers) High-level architecture ======================= FrameMaker will be integrated into the DITA toolkit as an Ant target. Consider the flowchart here[1]. After "topic merge" there will be a new branch. Instead of "transform to xsl-fo", the new branch will say "transform to FrameMaker-friendly DITA". This will be done through an XSLT that transform to a proprietary variant of DITA. This variant is designed to work around limitations of FrameMaker (e.g. cross references and tables). This proprietary format will also be a generalized form of DITA with a fixed set of element types (FrameMaker requires EDDs to list all element types). Specialization information will be moved into attribute values so that they can be acted on in the EDD. An very complete EDD, read-write rules file and FrameMaker template will be provided and can be customized by customers. The solution should not require any FrameMaker plugins and should be compatible with all 7.x versions of FrameMaker. [1] http://dita-ot.sourceforge.net/SourceForgeFiles/doc/DITA-OTArchitecture. html Customization hooks =================== The simplest way to customize the solution is just to change the template in FrameMaker. Replace the master pages, the character styles, paragraph styles etc. Alternately, more substantial changes can be done by tweaking the EDD or read/write rules. You should also use EDD tweaks if you want to use an existing template and style names with the solution. FrameMaker's complicated configuration architecture cannot be simplified within the scope of this project. Limitations =========== Due to limitations of FrameMaker, it is probably not possible to use the "outputclass" attribute to directly address character, paragraph, table or cross reference styles. It will always be necessary to edit the EDD to recognize the outputclass attribute and map it to a style. FrameMaker cannot handle nested tables. Other limitations will be documented as they arise. Paul Prescod
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]