SlideShare a Scribd company logo
1 of 27
The Many-Headed Hydra of Branch Filtering
Rendering Reused DITA Topics to
HTML With Different Filtering
Eliot Kimber
Contrext
DITA Europe 2016
About the Author
• Independent consultant focusing on DITA analysis,
design, and implementation
• Doing SGML and XML for cough 30 years cough
• Founding 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 (dita4publishers.org)
• Author of DITA for Practitioners, Vol 1 (XML Press)
DITA Europe 20162
Agenda
• Reuse and EPPO
• Branch filtering and key scopes change
everything
• Recap and discussion
DITA Europe 20163
A BRANCH FILTERING TALE
DITA Europe 20164
Topics That Apply to Multiple
Conditions
DITA Europe 20165
<topic>
Installation
Text for Windows
Text for macOS
Text for Linux
Text applicable to all
conditions.
</topic>
<topic>
Getting Started for
WindowsmacOSLinux
</topic>
Used With Branch Filtering
DITA Europe 20166
<topic>
Installation
Text for Windows
Text for macOS
Text for Linux
Text applicable to all conditions.
</topic>
<map>
Getting Started
<topicref>
<ditavalref/> (Windows)
<ditavalref/> (macOS)
<ditavalref/> (Linux)
<topicref/>
</topicref>
</map>
<topic>
Getting Started for
WindowsmacOSLinux
</topic>
Publish to HTML
DITA Europe 20167
Generate
HTML
<topic>
Installation
Text for Windows
Text for macOS
Text for Linux
Text applicable to all
conditions.
</topic>
<map>
Getting Started
<topicref>
<ditavalref/> (Windows)
<ditavalref/> (macOS)
<ditavalref/> (Linux)
<topicref/>
</topicref>
</map>
<topic>
Getting Started for
WindowsmacOSLinux
</topic>
Getting Started
For macOS
Installation
Text for macOS
Text applicable to
all conditions.
Installation
Text for Windows
Getting Started
for Windows
Text applicable to
all conditions.
Installation
Text for Linux
Getting Started
for Linux
Text applicable to
all conditions.
What Did We Get?
• Six result HTML files where we started with
two source files
• Three HTML pages all with the title
“Installation” — bad
• Platform-specific text in each HTML — good
• Three almost-identical navitation patterns —
may be good, may be bad
DITA Europe 20168
What Would Be Better?
• A single result HTML file
• Text as shown in the browser that reflects the
user’s desired platform
• A single ToC structure in the top-level HTML
page
• Or, per-platform navigation structures with
links from the one HTML page to other pages
that reflect a specific use context
DITA Europe 20169
In Short: Dynamic HTML
• One HTML page that reflects all the conditions
• Dynamic display of the content to reflect
user’s current condition set
• Dynamic display of links to reflect the user’s
current condition set
DITA Europe 201610
Dynamic HTML Reflecting Reader-
Specified Conditions
DITA Europe 201611
Getting Started
For macOS Users
For Windows Users
For Linux Users
Installation
Text for Windows
Text for macOS
Text for Linux
Text applicable to
all conditions.
Platform
Windows
macOS
Linux
macOS
Windows
Linux
How To Get This?
• Requires a different way of thinking about
HTML generation
• Requires more sophisticated HTML delivery
details to enable dynamic display
• Reader user interfaces for selecting current
conditions
• Appropriate display of conditional content
when no filtering is applied in the browser.
DITA Europe 201612
Every Page is Page One
DITA Europe 201613
“Include it all. Filter it
afterward”
http://everypageispageone.com
Mark Baker
REUSE AND DELIVERABLE
PUBLISHING
DITA Europe 201614
Publications
• DITA content has value because we publish it
• “publication”: Result of processing a root map
into a deliverable
– E.g., HTML, PDF, EPUB, online help, non-DITA XML,
etc.
• Specifically concerned with publishing for the
purpose of reading the content
DITA Europe 201615
Deliverable Types and Reuse
• “Monolithic” deliverable types:
– PDF, EPUB, etc.
– Reuse not an issue because the result is a single unified
narrative flow
– Navigation position is always unambiguous
• “Multi-file” deliverable types:
– HTML, etc.
– “one result file per source topic”
– Navigation position may be ambiguous for re-used topics
• For simplicity going to use “HTML” to represent all
multi-file deliverable types
DITA Europe 201616
DITA Versions and Reuse Features
• DITA 1.0, 1.1: Can’t actually do reuse reliably
(shhh don’t tell anyone)
• DITA 1.2: Addition of global keys enables
reliable reuse within limits
• DITA 1.3: Addition of key scopes and branch
filtering enables basically all reuse use cases
DITA Europe 201617
Re-Use Use Cases
• Same content used multiple times and filtered
different ways
• Same link from re-used topic resolved to
different targets in different use contexts
• Cross-deliverable links
DITA Europe 201618
DITA 1.2: Global Filtering
• Global filtering meant same topic used multiple
times must have exactly the same rendered result
in all use contexts
– Can have a single result HTML file regardless of
number of uses
– No way to have a single topic reflect different
conditions in different parts of the same publication
– Possible navigation ambiguity
• For topics that are mostly the same but need to
reflect different conditions must make copies.
DITA Europe 201619
DITA 1.3: Branch Filtering
• Different branches within a map can have
different filtering conditions
• A single topic reflecting multiple conditions can
produce different rendered results in different
use contexts
• Removes need for copies of topics that differ only
in conditional content
• Cannot have a single result HTML file in this
case…
…or so it would appear
DITA Europe 201620
Key Scopes: Same Implication as
Branch Filtering
• Different branches in the map may have
different key scopes
• Key reference in a topic used in different
scopes may resolve to different topics
• Same topic used in different contexts may
have different rendered results in different
contexts
• Again appears to require distinct result files in
the output
DITA Europe 201621
RECAP: WHAT DOES THIS ALL
MEAN?
DITA Europe 201622
Recap: Implications of Branch
Filtering
• A single source topic or branch can result in
multiple result HTML files
• Allows single publications that reflect different
conditions in different parts of the publication
• Can result in proliferation of almost-the-same
topics
– May be bad for search
• Suggests need for more sophisticated HTML
delivery
• Not a problem for monolithic deliverables
DITA Europe 201623
Implications for HTML Delivery
• Generate single HTML result files for given
filtered branch
• Include data in HTML needed to dynamically
render the result
– Filtering on the fly
– Flagging on the fly
• Provide user interfaces and access paths that
establish user’s current filtering content
• Need fallbacks for limited browser environments
DITA Europe 201624
As A Community
• Need to establish appropriate user interaction
approaches, principles, implementations
• Need library of common JavaScript and CSS
code to enable this type of delivery
• Need to enhance the Open Toolkit to produce
this type of HTML
DITA Europe 201625
Questions?
DITA Europe 201626
Resources
• Original WEK blog post:
http://drmacros-xml-
rants.blogspot.com/2016/05/delivering-html-
from-dita-in-face-of.html
• Every Page is Page One (Mark Baker):
http://everypageispageone.com/publications/
DITA Europe 201627

More Related Content

More from Contrext Solutions

Locale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitLocale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitContrext Solutions
 
DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)Contrext Solutions
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITAContrext Solutions
 
XSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerXSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerContrext Solutions
 
FrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitFrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitContrext Solutions
 
DITA Reuse Challenges and Response
DITA Reuse Challenges and ResponseDITA Reuse Challenges and Response
DITA Reuse Challenges and ResponseContrext Solutions
 
RELAX NG and DITA: An Almost Perfect Match
RELAX NG and DITA: An Almost Perfect MatchRELAX NG and DITA: An Almost Perfect Match
RELAX NG and DITA: An Almost Perfect MatchContrext Solutions
 
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkManaging Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkContrext Solutions
 
DITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectDITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectContrext Solutions
 
They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links Contrext Solutions
 
No Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA HyperdocumentsNo Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA HyperdocumentsContrext Solutions
 
Poster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAPoster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAContrext Solutions
 
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for KeysManaging Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for KeysContrext Solutions
 
What's New in DITA 1.3 (Tekom, Nov 2014)
What's New in DITA 1.3 (Tekom, Nov 2014)What's New in DITA 1.3 (Tekom, Nov 2014)
What's New in DITA 1.3 (Tekom, Nov 2014)Contrext Solutions
 
Taking Cross References to the Next Level: Reltables for Non-Topic Elements
Taking Cross References to the Next Level: Reltables for Non-Topic ElementsTaking Cross References to the Next Level: Reltables for Non-Topic Elements
Taking Cross References to the Next Level: Reltables for Non-Topic ElementsContrext Solutions
 
RELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open ToolkitRELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open ToolkitContrext Solutions
 
DITA 1.3: What's New and Different
DITA 1.3: What's New and DifferentDITA 1.3: What's New and Different
DITA 1.3: What's New and DifferentContrext Solutions
 
Dita cross-deliverable-addressing-poster
Dita cross-deliverable-addressing-posterDita cross-deliverable-addressing-poster
Dita cross-deliverable-addressing-posterContrext Solutions
 

More from Contrext Solutions (20)

Locale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitLocale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open Toolkit
 
DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
 
XSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerXSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMaker
 
FrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitFrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open Toolkit
 
DITA Reuse Challenges and Response
DITA Reuse Challenges and ResponseDITA Reuse Challenges and Response
DITA Reuse Challenges and Response
 
RELAX NG and DITA: An Almost Perfect Match
RELAX NG and DITA: An Almost Perfect MatchRELAX NG and DITA: An Almost Perfect Match
RELAX NG and DITA: An Almost Perfect Match
 
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkManaging Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
 
DITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectDITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community Project
 
Why Is DITA So Hard?
Why Is DITA So Hard?Why Is DITA So Hard?
Why Is DITA So Hard?
 
They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links
 
No Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA HyperdocumentsNo Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA Hyperdocuments
 
Poster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAPoster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITA
 
DITA for Small Teams
DITA for Small TeamsDITA for Small Teams
DITA for Small Teams
 
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for KeysManaging Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
 
What's New in DITA 1.3 (Tekom, Nov 2014)
What's New in DITA 1.3 (Tekom, Nov 2014)What's New in DITA 1.3 (Tekom, Nov 2014)
What's New in DITA 1.3 (Tekom, Nov 2014)
 
Taking Cross References to the Next Level: Reltables for Non-Topic Elements
Taking Cross References to the Next Level: Reltables for Non-Topic ElementsTaking Cross References to the Next Level: Reltables for Non-Topic Elements
Taking Cross References to the Next Level: Reltables for Non-Topic Elements
 
RELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open ToolkitRELAX NG to DTD and XSD Using the Open Toolkit
RELAX NG to DTD and XSD Using the Open Toolkit
 
DITA 1.3: What's New and Different
DITA 1.3: What's New and DifferentDITA 1.3: What's New and Different
DITA 1.3: What's New and Different
 
Dita cross-deliverable-addressing-poster
Dita cross-deliverable-addressing-posterDita cross-deliverable-addressing-poster
Dita cross-deliverable-addressing-poster
 

Recently uploaded

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburgmasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Recently uploaded (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

The Many-Headed Hydra of Branch Filtering

  • 1. The Many-Headed Hydra of Branch Filtering Rendering Reused DITA Topics to HTML With Different Filtering Eliot Kimber Contrext DITA Europe 2016
  • 2. About the Author • Independent consultant focusing on DITA analysis, design, and implementation • Doing SGML and XML for cough 30 years cough • Founding 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 (dita4publishers.org) • Author of DITA for Practitioners, Vol 1 (XML Press) DITA Europe 20162
  • 3. Agenda • Reuse and EPPO • Branch filtering and key scopes change everything • Recap and discussion DITA Europe 20163
  • 4. A BRANCH FILTERING TALE DITA Europe 20164
  • 5. Topics That Apply to Multiple Conditions DITA Europe 20165 <topic> Installation Text for Windows Text for macOS Text for Linux Text applicable to all conditions. </topic> <topic> Getting Started for WindowsmacOSLinux </topic>
  • 6. Used With Branch Filtering DITA Europe 20166 <topic> Installation Text for Windows Text for macOS Text for Linux Text applicable to all conditions. </topic> <map> Getting Started <topicref> <ditavalref/> (Windows) <ditavalref/> (macOS) <ditavalref/> (Linux) <topicref/> </topicref> </map> <topic> Getting Started for WindowsmacOSLinux </topic>
  • 7. Publish to HTML DITA Europe 20167 Generate HTML <topic> Installation Text for Windows Text for macOS Text for Linux Text applicable to all conditions. </topic> <map> Getting Started <topicref> <ditavalref/> (Windows) <ditavalref/> (macOS) <ditavalref/> (Linux) <topicref/> </topicref> </map> <topic> Getting Started for WindowsmacOSLinux </topic> Getting Started For macOS Installation Text for macOS Text applicable to all conditions. Installation Text for Windows Getting Started for Windows Text applicable to all conditions. Installation Text for Linux Getting Started for Linux Text applicable to all conditions.
  • 8. What Did We Get? • Six result HTML files where we started with two source files • Three HTML pages all with the title “Installation” — bad • Platform-specific text in each HTML — good • Three almost-identical navitation patterns — may be good, may be bad DITA Europe 20168
  • 9. What Would Be Better? • A single result HTML file • Text as shown in the browser that reflects the user’s desired platform • A single ToC structure in the top-level HTML page • Or, per-platform navigation structures with links from the one HTML page to other pages that reflect a specific use context DITA Europe 20169
  • 10. In Short: Dynamic HTML • One HTML page that reflects all the conditions • Dynamic display of the content to reflect user’s current condition set • Dynamic display of links to reflect the user’s current condition set DITA Europe 201610
  • 11. Dynamic HTML Reflecting Reader- Specified Conditions DITA Europe 201611 Getting Started For macOS Users For Windows Users For Linux Users Installation Text for Windows Text for macOS Text for Linux Text applicable to all conditions. Platform Windows macOS Linux macOS Windows Linux
  • 12. How To Get This? • Requires a different way of thinking about HTML generation • Requires more sophisticated HTML delivery details to enable dynamic display • Reader user interfaces for selecting current conditions • Appropriate display of conditional content when no filtering is applied in the browser. DITA Europe 201612
  • 13. Every Page is Page One DITA Europe 201613 “Include it all. Filter it afterward” http://everypageispageone.com Mark Baker
  • 15. Publications • DITA content has value because we publish it • “publication”: Result of processing a root map into a deliverable – E.g., HTML, PDF, EPUB, online help, non-DITA XML, etc. • Specifically concerned with publishing for the purpose of reading the content DITA Europe 201615
  • 16. Deliverable Types and Reuse • “Monolithic” deliverable types: – PDF, EPUB, etc. – Reuse not an issue because the result is a single unified narrative flow – Navigation position is always unambiguous • “Multi-file” deliverable types: – HTML, etc. – “one result file per source topic” – Navigation position may be ambiguous for re-used topics • For simplicity going to use “HTML” to represent all multi-file deliverable types DITA Europe 201616
  • 17. DITA Versions and Reuse Features • DITA 1.0, 1.1: Can’t actually do reuse reliably (shhh don’t tell anyone) • DITA 1.2: Addition of global keys enables reliable reuse within limits • DITA 1.3: Addition of key scopes and branch filtering enables basically all reuse use cases DITA Europe 201617
  • 18. Re-Use Use Cases • Same content used multiple times and filtered different ways • Same link from re-used topic resolved to different targets in different use contexts • Cross-deliverable links DITA Europe 201618
  • 19. DITA 1.2: Global Filtering • Global filtering meant same topic used multiple times must have exactly the same rendered result in all use contexts – Can have a single result HTML file regardless of number of uses – No way to have a single topic reflect different conditions in different parts of the same publication – Possible navigation ambiguity • For topics that are mostly the same but need to reflect different conditions must make copies. DITA Europe 201619
  • 20. DITA 1.3: Branch Filtering • Different branches within a map can have different filtering conditions • A single topic reflecting multiple conditions can produce different rendered results in different use contexts • Removes need for copies of topics that differ only in conditional content • Cannot have a single result HTML file in this case… …or so it would appear DITA Europe 201620
  • 21. Key Scopes: Same Implication as Branch Filtering • Different branches in the map may have different key scopes • Key reference in a topic used in different scopes may resolve to different topics • Same topic used in different contexts may have different rendered results in different contexts • Again appears to require distinct result files in the output DITA Europe 201621
  • 22. RECAP: WHAT DOES THIS ALL MEAN? DITA Europe 201622
  • 23. Recap: Implications of Branch Filtering • A single source topic or branch can result in multiple result HTML files • Allows single publications that reflect different conditions in different parts of the publication • Can result in proliferation of almost-the-same topics – May be bad for search • Suggests need for more sophisticated HTML delivery • Not a problem for monolithic deliverables DITA Europe 201623
  • 24. Implications for HTML Delivery • Generate single HTML result files for given filtered branch • Include data in HTML needed to dynamically render the result – Filtering on the fly – Flagging on the fly • Provide user interfaces and access paths that establish user’s current filtering content • Need fallbacks for limited browser environments DITA Europe 201624
  • 25. As A Community • Need to establish appropriate user interaction approaches, principles, implementations • Need library of common JavaScript and CSS code to enable this type of delivery • Need to enhance the Open Toolkit to produce this type of HTML DITA Europe 201625
  • 27. Resources • Original WEK blog post: http://drmacros-xml- rants.blogspot.com/2016/05/delivering-html- from-dita-in-face-of.html • Every Page is Page One (Mark Baker): http://everypageispageone.com/publications/ DITA Europe 201627