SlideShare a Scribd company logo
1 of 22
DITA Open Toolkit Extensions

           IEn2012




                          www.sperotech.com
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
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
WHAT IS THE OT AND HOW
DOES IT WORKS

                         www.sperotech.com
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
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
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
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
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
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
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
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
Supports multiple output formats
XHTML
PDF
Eclipse Help
HTML Help
JavaHelp
EPUB
MOBI
…

                                          13
                              www.sperotech.com
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
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
ADDING YOUR OWN CUSTOM
PROCESSING

                     www.sperotech.com
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
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
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
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
www.sperotech.com
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

More Related Content

What's hot

AD116 XPages Extension Library: Making Application Development Even Easier
AD116 XPages Extension Library: Making Application Development Even EasierAD116 XPages Extension Library: Making Application Development Even Easier
AD116 XPages Extension Library: Making Application Development Even Easierpdhannan
 
Know Your Competitor - Oracle 10g Express Edition
Know Your Competitor - Oracle 10g Express EditionKnow Your Competitor - Oracle 10g Express Edition
Know Your Competitor - Oracle 10g Express EditionRonald Bradford
 
S313557 java ee_programming_model_explained_dochez
S313557 java ee_programming_model_explained_dochezS313557 java ee_programming_model_explained_dochez
S313557 java ee_programming_model_explained_dochezJerome Dochez
 
Contexts and Dependency Injection for the JavaEE platform
Contexts and Dependency Injection for the JavaEE platformContexts and Dependency Injection for the JavaEE platform
Contexts and Dependency Injection for the JavaEE platformBozhidar Bozhanov
 
Using Contexts & Dependency Injection in the Java EE 6 Platform
Using Contexts & Dependency Injection in the Java EE 6 PlatformUsing Contexts & Dependency Injection in the Java EE 6 Platform
Using Contexts & Dependency Injection in the Java EE 6 PlatformArun Gupta
 
Oracle10g new features
Oracle10g  new featuresOracle10g  new features
Oracle10g new featuresTanvi_Agrawal
 
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)Mani Sarkar
 
Hibernate Interview Questions
Hibernate Interview QuestionsHibernate Interview Questions
Hibernate Interview QuestionsSyed Shahul
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17sakpob
 

What's hot (10)

Ta3
Ta3Ta3
Ta3
 
AD116 XPages Extension Library: Making Application Development Even Easier
AD116 XPages Extension Library: Making Application Development Even EasierAD116 XPages Extension Library: Making Application Development Even Easier
AD116 XPages Extension Library: Making Application Development Even Easier
 
Know Your Competitor - Oracle 10g Express Edition
Know Your Competitor - Oracle 10g Express EditionKnow Your Competitor - Oracle 10g Express Edition
Know Your Competitor - Oracle 10g Express Edition
 
S313557 java ee_programming_model_explained_dochez
S313557 java ee_programming_model_explained_dochezS313557 java ee_programming_model_explained_dochez
S313557 java ee_programming_model_explained_dochez
 
Contexts and Dependency Injection for the JavaEE platform
Contexts and Dependency Injection for the JavaEE platformContexts and Dependency Injection for the JavaEE platform
Contexts and Dependency Injection for the JavaEE platform
 
Using Contexts & Dependency Injection in the Java EE 6 Platform
Using Contexts & Dependency Injection in the Java EE 6 PlatformUsing Contexts & Dependency Injection in the Java EE 6 Platform
Using Contexts & Dependency Injection in the Java EE 6 Platform
 
Oracle10g new features
Oracle10g  new featuresOracle10g  new features
Oracle10g new features
 
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
 
Hibernate Interview Questions
Hibernate Interview QuestionsHibernate Interview Questions
Hibernate Interview Questions
 
Workflow bis17
Workflow bis17Workflow bis17
Workflow bis17
 

Similar to Ien2012 DITA Open Toolkit Extension

Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and DjangoMichael Pirnat
 
Deployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and ConfigurationsDeployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and Configurationsnyccamp
 
HBaseCon 2012 | Building a Large Search Platform on a Shoestring Budget
HBaseCon 2012 | Building a Large Search Platform on a Shoestring BudgetHBaseCon 2012 | Building a Large Search Platform on a Shoestring Budget
HBaseCon 2012 | Building a Large Search Platform on a Shoestring BudgetCloudera, Inc.
 
Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguageTsungWei Hu
 
Configure, Pack and Distribute: An RPM Creation Workshop
Configure, Pack and Distribute: An RPM Creation WorkshopConfigure, Pack and Distribute: An RPM Creation Workshop
Configure, Pack and Distribute: An RPM Creation WorkshopNovell
 
Scale your Alfresco Solutions
Scale your Alfresco Solutions Scale your Alfresco Solutions
Scale your Alfresco Solutions Alfresco Software
 
C P Doc Rev Story
C P Doc Rev StoryC P Doc Rev Story
C P Doc Rev StoryCp Docrev
 
Hadoop engineering bo_f_final
Hadoop engineering bo_f_finalHadoop engineering bo_f_final
Hadoop engineering bo_f_finalRamya Sunil
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk UpdateESUG
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilRoopa Nadkarni
 
04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment WorkshopChuong Nguyen
 
Spring Roo 1.0.0 Technical Deep Dive
Spring Roo 1.0.0 Technical Deep DiveSpring Roo 1.0.0 Technical Deep Dive
Spring Roo 1.0.0 Technical Deep DiveBen Alex
 
1java Introduction
1java Introduction1java Introduction
1java IntroductionAdil Jafri
 

Similar to Ien2012 DITA Open Toolkit Extension (20)

Oracle Data Warehouse
Oracle Data WarehouseOracle Data Warehouse
Oracle Data Warehouse
 
Oracle Warehouse
Oracle WarehouseOracle Warehouse
Oracle Warehouse
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and Django
 
Deployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and ConfigurationsDeployment Strategies: Managing Code, Content, and Configurations
Deployment Strategies: Managing Code, Content, and Configurations
 
HBaseCon 2012 | Building a Large Search Platform on a Shoestring Budget
HBaseCon 2012 | Building a Large Search Platform on a Shoestring BudgetHBaseCon 2012 | Building a Large Search Platform on a Shoestring Budget
HBaseCon 2012 | Building a Large Search Platform on a Shoestring Budget
 
Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming Language
 
Configure, Pack and Distribute: An RPM Creation Workshop
Configure, Pack and Distribute: An RPM Creation WorkshopConfigure, Pack and Distribute: An RPM Creation Workshop
Configure, Pack and Distribute: An RPM Creation Workshop
 
Scale your Alfresco Solutions
Scale your Alfresco Solutions Scale your Alfresco Solutions
Scale your Alfresco Solutions
 
C P Doc Rev Story
C P Doc Rev StoryC P Doc Rev Story
C P Doc Rev Story
 
Hadoop engineering bo_f_final
Hadoop engineering bo_f_finalHadoop engineering bo_f_final
Hadoop engineering bo_f_final
 
Odi ireland rittman
Odi ireland rittmanOdi ireland rittman
Odi ireland rittman
 
Datastage Online Training
Datastage Online TrainingDatastage Online Training
Datastage Online Training
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
 
04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop
 
Spring Roo 1.0.0 Technical Deep Dive
Spring Roo 1.0.0 Technical Deep DiveSpring Roo 1.0.0 Technical Deep Dive
Spring Roo 1.0.0 Technical Deep Dive
 
Session 2
Session 2Session 2
Session 2
 
Session 2
Session 2Session 2
Session 2
 
Spring to Image
Spring to ImageSpring to Image
Spring to Image
 
1java Introduction
1java Introduction1java Introduction
1java Introduction
 

Recently uploaded

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Ien2012 DITA Open Toolkit Extension

  • 1. DITA Open Toolkit Extensions IEn2012 www.sperotech.com
  • 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
  • 16. ADDING YOUR OWN CUSTOM PROCESSING 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

  1. Conceptually the OT works as a pipeline processor with different steps(click) - Some steps involve the processing logic of OT&apos;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)