2. Table of contents
Who I am
The OT overview - what is it and how does it works
Adding your own custom processing
Conclusions
Q&A
www.sperotech.com
3. Sperotech Background
Software and services company
Founded in 2009, located in Amsterdam
Specializes in solutions for ECM, CCM and user assistance
Traditional manuals and online help
Interactive (embedded) user guidance and support systems
Authoring and publishing (workflow and collaboration based) solutions
Expertise (10+ years):
SharePoint and OpenText Enterprise Content Management and Collaboration
Design and implement information architectures
Content processes and workflow
XMetaL, Oxygen XML and FrameMaker authoring tools
CSS, XSLT and XSL-FO stylesheets, DITA Open Toolkit customizations
Develop and deliver end user trainings
Legacy content migration
User assistance RIA applications
3
www.sperotech.com
4. WHAT IS THE OT AND HOW
DOES IT WORKS
www.sperotech.com
5. The DITA Open Toolkit
A set of Java-based, open source tools that provide
processing for DITA maps and topic content
Can be downloaded and installed for free on a
computer to get started with topic-based writing and
publishing
5
www.sperotech.com
6. User Build Flow
Initialize build Set properties Import build files Build target
• Name • OT base directory • Integrator build • Call main build
• Default target • (any other file to install plug- with input,
• Working directory properties) ins and extensions output, and
transtype
6
www.sperotech.com
7. Main Build Flow
Initialize build Import build Set class path Transformation
files for
• Name • Initialization • FO processing • Parse transtype
• Default target • Preprocess • DITA processing argument to
• Base directory • General engine call
transformation
• Transform
type build file
types
7
www.sperotech.com
8. Build Initialization
1 2
Start
Initialize logger
processing
3 4
Initialize
Configure URI
software tool
resolver
usage
5 6
Output
Check
parameter info
arguments
and warnings
Java pipeline
ANT built-in
8
www.sperotech.com
9. Main Build Flow
Initialize build Import build Set class path Transformation
files for
• Name • Initialization • FO processing • Parse transtype
• Default target • Preprocess • DITA processing argument to
• Base directory • General engine call
transformation
• Transform
type build file
types
9
www.sperotech.com
10. Build Preprocess
1 2 3 4
Generate list of Debug and filter Copy files to
Start preprocess
files input files output folder
5 6 7 8
Content
Content Move metadata Key references
reference push
reference resolve into topics resolve
resolve
9 10 11 12
Pull <navtitle>
Code reference Map reference
and <topicmeta> Process chunks
resolve resolve
into map
13 14 15
Pull metadata for Java pipeline
Find and Move related link
<link> and <xref>
generate link info info to topics XSLT
into topic
ANT built-in
10
www.sperotech.com
11. Main Build Flow
Initialize build Import build Set class path Transformation
files for
• Name • Initialization • FO processing • Parse transtype
• Default target • Preprocess • DITA processing argument to
• Base directory • General engine call
transformation
• Transform
type build file
types
11
www.sperotech.com
12. Transformation Type Build Flow
Initialize build Set properties Run build Specific tasks
targets
• Name • Transformation • Initialization • Files specific to
• Default target type • Preprocess output
• Topic transform deliverable
12
www.sperotech.com
13. Supports multiple output formats
XHTML
PDF
Eclipse Help
HTML Help
JavaHelp
EPUB
MOBI
…
13
www.sperotech.com
14. Pipeline processing
ANT
(Build file and scripts)
•Input files and arguments
•Output specifications
output
OTJava XSLT Rendering
Engine Engine
9/27/2010 14
Introduction to the DITA Open Toolkit Customization Webinar www.sperotech.com
15. dita2xhtml
1 2
Initialize build Preprocess
3 4
Create Copy revision
index.html flag image to
from map output dir
5 6
Copy CSS file to Transform
output dir topics to xhtml
XSLT
ANT built-in
15
www.sperotech.com
17. plugin.xml
<plugin id=" ">
<feature extension="❷" value="❸" type="❹"/>
<require plugin="❺" importance="❻"/>
<template file="❼"/>
</plugin>
- unique id of plugin Examples
- type of extension Add version info and processing before preprocessing
- value for the feature (type) <plugin id="com.sample.myplugin"
<feature
- type ("text" or "file") extension="package.support.version"
- name of plug-in it depends on; use "|" value="1.2"
to separate multiple plug-ins />
- Set to "optional" to allow integration <feature
to continue of plug-in is missing extension="depend.preprocess.post"
value="myTargetAfterPreprocess"
- Name of the file that must be treated type="text“
as a template if plug-in has extension />
points </plugin>
17
www.sperotech.com
18. How to package a plug-in
doc Documentation
dtd Document Type Definitions
xsd XML Schema files
xsl XSL transformation files
Sample Sample files
www.sperotech.com
19. How to add your own XSLT
processing
XSLT template files have an extension instruction
<dita:extension>
You plug in your XSLT processing through and
<xsl:import>
Your XSLT
transtype
XSLT
Plug-in
Plug-in <xsl:import
Feature
transtype href="…"/>
extension Integration
XSLT template
Extension
element
19
www.sperotech.com
20. Conclusions
Open Toolkit (OT) is a set of Java-based open source tools for
processing DITA Maps and Topics
The OT can be used to create different types of output
deliverables (transformation types)
Only proper way to extend the OT is through plugins
ANT scripts define and control the build flow
Most extensions (custom processing) are done through by
plugging in your own processing at extension points using ANT
and XSLT
Formatting is best done afterwards through formatting
instructions (CSS, XSL:FO)
Plug-ins must be packaged into a folder structure and installed
into the demo or plugins folder of the OT
www.sperotech.com
22. Thank you
Marc Speyer
Mobile: +31 655 117 459
Email: mspeyer@sperotech.com
Website: www.sperotech.com
Twitter: #sperotech
Leave your business card or send me an email for a white paper
on a tool to help you create DITA specializations.
www.sperotech.com
Editor's Notes
Conceptually the OT works as a pipeline processor with different steps(click) - Some steps involve the processing logic of OT's Java engine (click) - Some steps involve an XSLT processor(click) - For certain types of output a rendering engine is required(click) - The steps in the pipeline are chained by means of the Apache ANT tool using a build file and other helper scripts(click) - Each step in the pipeline gets its input files, input arguments and output specifications through ANT(click) – (next slide)