OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

[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. 



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

 * 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

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.


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.

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]