Slides of presentation given at Balisage 2013. These slides were generated by the Slidinator DITA2PPTX transform (https://github.com/drmacro/slidinator) and then adjusted in PPTX to correct the formatting of a couple of slides.
Automating Google Workspace (GWS) & more with Apps Script
General Architecture for Generation of Slide Presentations
1. General Architecture for
Generation of Slide
Presentations
Making slide presentations from XML
through a general framework, with a
focus on PowerPoint.
Eliot Kimber, Contrext, LLCBalisage, 2013
2. About the Author
• Doing SGML and XML for cough 30 years cough
• Member of the DITA Technical Committee
• Founding member of the XML Working Group
• Co-editor of HyTime standard (ISO/IEC 10744)
• Primary developer and founder of the DITA for
Publishers project
• Independent consultant focusing on DITA
analysis, design, and implementation
• Author of DITA for Practitioners, Vol 1 (XML Press)
3. Agenda
• General problem statement
• Framework for general XML to slide
presentation transformation
• Implementation details
• Conclusions and future work
• Demonstration
5. More General: XML to Slides
• Given arbitrary XML content...
• ...produce a slide-style presentation of some
form
• Many ways to present slides:
– PowerPoint and whatever Apple provides
– Slidey and similar HTML5-based slide
systems
– PDF, etc.
6. Implied Requirements
• General transformation framework
• Implies intermediate format:
– Single target from XML
– Single source to slide presentation
• Style definition and application convenience
• Relative ease of implementation and
extension
7. Framework for Slide Generation
• Transform through a generic slide representation
XML format
• Abstract things that are important and interesting
about slides
• Transforms from arbitrary XML vocabularies to
intermediate format
• Transforms from intermediate format to arbitrary
slide presentation formats
• Separation of concerns between source-to-slides
generally and detail of generating a specific slide
format
9. Implementation
• SlideSetML: intermediate format for abstract
slides
• XSLT from base source to SlideSetML
• Java to generate non-XML/HTML outputs
• XSLT to generate XML or HTML outputs
• Initial focus is PPTX from DITA XML
12. SimpleSlideSet to PPTX
• Apache POI Java library for generating PPTX files
• D4P Java data model for SimpleSlideSet
• Visitor pattern for operating on the
SimpleSlideSet model
• PPTX-generating visitor
• No surprise: mapping from SimpleSlideSet to
PPTX model is pretty direct
• POI handles most of the detail complexity
14. Conclusions
• POI made initial implementation quite easy
• Utility seems pretty obvious
• Challenges imposed by constrained
presentation space remain
15. Future Work
• Finish out set of slide body elements needed
for reasonable presentation options
• DITA specializations to enable appropriate
crafting of slide content
• Finish out initial implementation
• How to handle things like animation
• Output to other slide presentation formats
16. Demo
• These slides as presented in PowerPoint
format
• If time permits, let's look at code.