SlideShare a Scribd company logo
1 of 23
Managing Deliverable-Specific Link Anchors:
New Suggested Best Practice for Keys
How to define and maintain publicly-
linkable anchors in deliverables
produced from DITA source
9/24/2015 Contrext, LLC 1
Eliot Kimber
Contrext, LLC
DCL Learning Series, Sept 24 2015
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
• Author of DITA for Practitioners, Vol 1 (XML Press)
9/24/2015 Contrext, LLC 2
Agenda
• What are "public anchors"?
• Navigation vs resource keys
• Key definition and usage best practice
• Generating public deliverable anchors
9/24/2015 Contrext, LLC 3
Executive Summary
• Use keys for everything
• Principle: Exactly one URI reference to each
resource across all maps
• Put unique keys on each navigation topicref
you want to be publicly linkable or xref to
• Use navigation keys to determine deliverable
anchors
• Don’t change navigation keys unnecessarily
9/24/2015 Contrext, LLC 4
What are Public Anchors?
• Anything that can be linked to from outside the
deliverable:
– HTML files
– HTML @id values
– PDF named destinations
– Help topic IDs
• Need to be reliably persistent
• Should not change from release to release for the
same logical component (topic or element)
9/24/2015 Contrext, LLC 5
Navigation vs Resource keys
• Two types of topicrefs:
– "normal": contribute to the navigation tree or to
reltables
– "resource-only": Establish a dependency on a
resource but don’t put it in the navigation tree
• @processing-role on topicref:
– processing-role="normal"
– processing-role="resource-only"
• <keydef> is resource-only by default
9/24/2015 Contrext, LLC 6
Resource-Only Keys
• Establish context-independent keys for topics
• Can be unique across all maps if required or
map- or scope-specific
• Key-defining maps serve as catalogs of topics
or other resources (images, etc.)
• Should be used for conrefs
• Not useful for cross reference targets: no
navigation use context
9/24/2015 Contrext, LLC 7
Normal-Role (Navigation) Key
• Identifies the unique uses of a given topic
• Only appropriate target for cross references
• By the nature of keys, are globally unique
within a single root map.
9/24/2015 Contrext, LLC 8
Key Definition and Usage Best
Practice
• Define resource-only keys in standalone "key-
definition" maps
<keydef keys="topic-000123r5"
href="topics/t-57623-934.dita"/>
• Use resource-only keys from navigation topicrefs:
<chapter keys="chap-01"
keyref="topic-000123r5"/>
• Put keys on either all navigation topicrefs or
• Put keys on all navigation topicrefs you want to
be publicly linkable
9/24/2015 Contrext, LLC 9
Exactly One URI Reference For
Each Resource
• For images and external Web resources:
– Always define a key
– Refer to the key (and only the key) from topics
• For topics that are or are likely to be reused:
– Define resource-only keys in a separate key-
defining map
• For topics that are only ever used in a single
map:
– Put @keys on the topicref to the topic
9/24/2015 Contrext, LLC 10
Keys for Single-Use Topics
• A topic used only once across all maps may not justify the
cost of separate resource-only key definition
• Define two keys on the topicref:
– One that reflects that use of the topic: "ch-01-ss-01"
– One that represents the topic in any context: "topic-1235"
• Example:
<topicref
keys="installation topic-1234"
href="topics/topic-1234.dita"
/>
• If the topic is ever reused, create resource-only topicref
and move context-independent key to that definition
9/24/2015 Contrext, LLC 11
NOTE: DITA OT Limitation
• As of OT 2.1 and earlier:
– @copy-to on navigation topicrefs that use keyref doesn't
work
– Copy-to processing is done before key space construction
• Fixing this will require rethinking entire preprocessing
approach
– Rethink required for DITA 1.3 anyway
– Non-trivial to implement
• Workaround: Use separate keydefs for each required copy-to:
<keydef keys="key-01"
href="topic-01.dita"/>
<keydef keys="key-01-copy-to-c01s01"
href="topic-01.dita"
copy-to="ch01-sec01.dita"/>
…
<topicref keys="ch01-sec01" keyref="key-01-copy-to-c01s01"/>
9/24/2015 Contrext, LLC 12
Example: Publication root map
<map>
<title>Prod1 Product Guide</title>
<mapref href="keysdefs-01.ditamap"/>
<topicref keys="pubroot"
keyref="topic-ABC001"
>
<topicref keys="chapter-01"
keyref="topic-ABC123"
>
<topicref keys="ch01-overview"
keyref="topic-ABC456"
>
</topicref>
…
</topicref>
…
</map>
9/24/2015 Contrext, LLC 13
Example: keydefs-01.ditamap
<map>
<title>Keydefs for Group 1</title>
<keydef keys="topic-ABC001"
href="topic-ABC001.dita"
/>
<keydef keys="topic-ABC002"
href="topic-ABC002.dita"
/>
…
</map>
9/24/2015 Contrext, LLC 14
Cross Reference Example
<p>See <xref keyref="chapter-01"/>…
<p>See <xref keyref="chapter-01/fig-01"/>
9/24/2015 Contrext, LLC 15
Generating Deliverables
• Links in the source need to become links in the
deliverable
• E.g., <xref keyref="ch01-ss02"/> becomes <a
href="ch01.html#unique-0345">
• "ch01.html#unique-0345" is an "anchor" in the
deliverable
– That is, a thing you can point to to create a link to that
place in the deliverable
• Generating the links is easy if you don't care what
the anchor values are
• Generating the links is harder if you do care.
9/24/2015 Contrext, LLC 16
We Do Care About Anchors
• If you are publishing your books to the Web
• Then people will link to or bookmark HTML
pages
• For PDF, you may want to have PDF-to-PDF
links
• Changing the anchors breaks links others have
created to your publications
9/24/2015 Contrext, LLC 17
Generating Public Deliverable
Anchors
• Two basic use cases:
– Multi-file outputs (HTML, online help)
– Monolithic outputs (PDF, EPUB, etc.)
• General problem: anchors for non-topic
elements
– Only unique within a single topic
– Not necessarily unique within result documents
• Must combine keys with element IDs in some
cases
9/24/2015 Contrext, LLC 18
Multi-File Outputs (HTML)
• Use navigation keys to determine result
filenames:
<topicref keys="chapter-01"
keyref="topic-ABC123"
>
becomes
chapter-01.html
• Use navigation key plus element ID to
construct in-document anchors
9/24/2015 Contrext, LLC 19
Monolithic Outputs (PDF)
• Use navigation key for topic anchors
• Use navigation key+element ID for non-topic
anchors
• For PDF, need to use a separator that uses
legal URL characters, e.g. "_._", "-.-"
– Needs to be more than "-" or "_" to avoid
accidental collisions
9/24/2015 Contrext, LLC 20
Preprocessing Extensions
• DITA Community project
• Extends base preprocessing to add @copy-to
to topicrefs as required
– Second and subsequent reference to a given topic
– Will eventually use keys for the filename value
• Some subtle complexities
• Haven't had time to implement yet
• OT 1.8 only at this time (2.x support is
planned)
9/24/2015 Contrext, LLC 21
Summary
• Always use keys for all references
– To topics
– To images
– To peer maps (DITA 1.3)
• Put keys on navigation topicrefs
• Crossrefs should point to navigation keys
• Use navigation keys to generate anchors in
deliverables
9/24/2015 Contrext, LLC 22
Resources
• Paper: http://github.io/dita-
community/paper-dita-keys-as-public-anchor-
ids
• Preprocessing extensions:
https://github.com/dita-community/org.dita-
community.preprocess-extensions
• Me: ekimber@contrext.com,
http://contrext.com
9/24/2015 Contrext, LLC 23

More Related Content

What's hot

Is Your Enterprise “fire-fighting” translation issues? Optimize the process w...
Is Your Enterprise “fire-fighting” translation issues? Optimize the process w...Is Your Enterprise “fire-fighting” translation issues? Optimize the process w...
Is Your Enterprise “fire-fighting” translation issues? Optimize the process w...dclsocialmedia
 
Converting and Transforming Technical Graphics
Converting and Transforming Technical GraphicsConverting and Transforming Technical Graphics
Converting and Transforming Technical Graphicsdclsocialmedia
 
Content Engineering and The Internet of “Smart” Things
Content Engineering and The Internet of “Smart” ThingsContent Engineering and The Internet of “Smart” Things
Content Engineering and The Internet of “Smart” Thingsdclsocialmedia
 
Optimizing the DITA Authoring Experience
Optimizing the DITA Authoring ExperienceOptimizing the DITA Authoring Experience
Optimizing the DITA Authoring Experiencedclsocialmedia
 
Managing the Complexities of Conversion to S1000D
Managing the Complexities of Conversion to S1000DManaging the Complexities of Conversion to S1000D
Managing the Complexities of Conversion to S1000Ddclsocialmedia
 
When Conversion Makes Sense
When Conversion Makes SenseWhen Conversion Makes Sense
When Conversion Makes Sensedclsocialmedia
 
GraphTour - Neo4j Database Overview
GraphTour - Neo4j Database OverviewGraphTour - Neo4j Database Overview
GraphTour - Neo4j Database OverviewNeo4j
 
MongoDB and RDBMS: Using Polyglot Persistence at Equifax
MongoDB and RDBMS: Using Polyglot Persistence at Equifax MongoDB and RDBMS: Using Polyglot Persistence at Equifax
MongoDB and RDBMS: Using Polyglot Persistence at Equifax MongoDB
 
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketBusiness Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketMongoDB
 
Webinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a Time
Webinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a TimeWebinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a Time
Webinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a TimeMongoDB
 
App Sharding to Autosharding at Sailthru
App Sharding to Autosharding at SailthruApp Sharding to Autosharding at Sailthru
App Sharding to Autosharding at SailthruMongoDB
 
Collaborative authoring in DITA
Collaborative authoring in DITACollaborative authoring in DITA
Collaborative authoring in DITAjameshom
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
There's Gold in Them Thar Data
There's Gold in Them Thar DataThere's Gold in Them Thar Data
There's Gold in Them Thar Datadclsocialmedia
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB
 
How Verizon Uses Disruptive Developments for Organized Progress
How Verizon Uses Disruptive Developments for Organized ProgressHow Verizon Uses Disruptive Developments for Organized Progress
How Verizon Uses Disruptive Developments for Organized ProgressMongoDB
 
GraphTalks - Einführung
GraphTalks - EinführungGraphTalks - Einführung
GraphTalks - EinführungNeo4j
 

What's hot (20)

Is Your Enterprise “fire-fighting” translation issues? Optimize the process w...
Is Your Enterprise “fire-fighting” translation issues? Optimize the process w...Is Your Enterprise “fire-fighting” translation issues? Optimize the process w...
Is Your Enterprise “fire-fighting” translation issues? Optimize the process w...
 
Converting and Transforming Technical Graphics
Converting and Transforming Technical GraphicsConverting and Transforming Technical Graphics
Converting and Transforming Technical Graphics
 
Content Engineering and The Internet of “Smart” Things
Content Engineering and The Internet of “Smart” ThingsContent Engineering and The Internet of “Smart” Things
Content Engineering and The Internet of “Smart” Things
 
Optimizing the DITA Authoring Experience
Optimizing the DITA Authoring ExperienceOptimizing the DITA Authoring Experience
Optimizing the DITA Authoring Experience
 
Managing the Complexities of Conversion to S1000D
Managing the Complexities of Conversion to S1000DManaging the Complexities of Conversion to S1000D
Managing the Complexities of Conversion to S1000D
 
When Conversion Makes Sense
When Conversion Makes SenseWhen Conversion Makes Sense
When Conversion Makes Sense
 
GraphTour - Neo4j Database Overview
GraphTour - Neo4j Database OverviewGraphTour - Neo4j Database Overview
GraphTour - Neo4j Database Overview
 
MongoDB and RDBMS: Using Polyglot Persistence at Equifax
MongoDB and RDBMS: Using Polyglot Persistence at Equifax MongoDB and RDBMS: Using Polyglot Persistence at Equifax
MongoDB and RDBMS: Using Polyglot Persistence at Equifax
 
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to MarketBusiness Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
Business Track: How MongoDB Helps Telefonia Digital Accelerate Time to Market
 
Great Scott! Dealing with New Datatypes
Great Scott! Dealing with New DatatypesGreat Scott! Dealing with New Datatypes
Great Scott! Dealing with New Datatypes
 
Webinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a Time
Webinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a TimeWebinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a Time
Webinar: Realizing Omni-Channel Retailing with MongoDB - One Step at a Time
 
App Sharding to Autosharding at Sailthru
App Sharding to Autosharding at SailthruApp Sharding to Autosharding at Sailthru
App Sharding to Autosharding at Sailthru
 
DITA for Small Teams
DITA for Small TeamsDITA for Small Teams
DITA for Small Teams
 
Collaborative authoring in DITA
Collaborative authoring in DITACollaborative authoring in DITA
Collaborative authoring in DITA
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Why Is DITA So Hard?
Why Is DITA So Hard?Why Is DITA So Hard?
Why Is DITA So Hard?
 
There's Gold in Them Thar Data
There's Gold in Them Thar DataThere's Gold in Them Thar Data
There's Gold in Them Thar Data
 
MongoDB in a Mainframe World
MongoDB in a Mainframe WorldMongoDB in a Mainframe World
MongoDB in a Mainframe World
 
How Verizon Uses Disruptive Developments for Organized Progress
How Verizon Uses Disruptive Developments for Organized ProgressHow Verizon Uses Disruptive Developments for Organized Progress
How Verizon Uses Disruptive Developments for Organized Progress
 
GraphTalks - Einführung
GraphTalks - EinführungGraphTalks - Einführung
GraphTalks - Einführung
 

Viewers also liked

Converting and Integrating Legacy Data and Documents When Implementing a New CMS
Converting and Integrating Legacy Data and Documents When Implementing a New CMSConverting and Integrating Legacy Data and Documents When Implementing a New CMS
Converting and Integrating Legacy Data and Documents When Implementing a New CMSdclsocialmedia
 
DITA for Small Teams: An Open Source Approach to DITA Content Management
DITA for Small Teams: An Open Source Approach to DITA Content ManagementDITA for Small Teams: An Open Source Approach to DITA Content Management
DITA for Small Teams: An Open Source Approach to DITA Content Managementdclsocialmedia
 
Minimalism Revisited — Let’s Stop Developing Content that No One Wants
Minimalism Revisited — Let’s Stop Developing Content that No One WantsMinimalism Revisited — Let’s Stop Developing Content that No One Wants
Minimalism Revisited — Let’s Stop Developing Content that No One Wantsdclsocialmedia
 
New Directions 2015 – Changes in Content Best Practices
New Directions 2015 – Changes in Content Best PracticesNew Directions 2015 – Changes in Content Best Practices
New Directions 2015 – Changes in Content Best Practicesdclsocialmedia
 
Precision Content™ Tools, Techniques, and Technology
Precision Content™ Tools, Techniques, and TechnologyPrecision Content™ Tools, Techniques, and Technology
Precision Content™ Tools, Techniques, and Technologydclsocialmedia
 
10 Mistakes When Moving to Topic-Based Authoring
10 Mistakes When Moving to Topic-Based Authoring10 Mistakes When Moving to Topic-Based Authoring
10 Mistakes When Moving to Topic-Based Authoringdclsocialmedia
 
Content Conversion Done Right Saves More Than Money
Content Conversion Done Right Saves More Than MoneyContent Conversion Done Right Saves More Than Money
Content Conversion Done Right Saves More Than Moneydclsocialmedia
 
Using HTML5 to Deliver and Monetize Your Mobile Content
Using HTML5 to Deliver and Monetize Your Mobile ContentUsing HTML5 to Deliver and Monetize Your Mobile Content
Using HTML5 to Deliver and Monetize Your Mobile Contentdclsocialmedia
 
Demystifying SPL for Medical Devices
Demystifying SPL for Medical DevicesDemystifying SPL for Medical Devices
Demystifying SPL for Medical Devicesdclsocialmedia
 
DITA, EPUB, and HTML5: An Update for 2015
DITA, EPUB, and HTML5: An Update for 2015DITA, EPUB, and HTML5: An Update for 2015
DITA, EPUB, and HTML5: An Update for 2015dclsocialmedia
 
Out of the Silos and Into the Farm
Out of the Silos and Into the FarmOut of the Silos and Into the Farm
Out of the Silos and Into the Farmdclsocialmedia
 

Viewers also liked (12)

Converting and Integrating Legacy Data and Documents When Implementing a New CMS
Converting and Integrating Legacy Data and Documents When Implementing a New CMSConverting and Integrating Legacy Data and Documents When Implementing a New CMS
Converting and Integrating Legacy Data and Documents When Implementing a New CMS
 
DITA for Small Teams: An Open Source Approach to DITA Content Management
DITA for Small Teams: An Open Source Approach to DITA Content ManagementDITA for Small Teams: An Open Source Approach to DITA Content Management
DITA for Small Teams: An Open Source Approach to DITA Content Management
 
Minimalism Revisited — Let’s Stop Developing Content that No One Wants
Minimalism Revisited — Let’s Stop Developing Content that No One WantsMinimalism Revisited — Let’s Stop Developing Content that No One Wants
Minimalism Revisited — Let’s Stop Developing Content that No One Wants
 
New Directions 2015 – Changes in Content Best Practices
New Directions 2015 – Changes in Content Best PracticesNew Directions 2015 – Changes in Content Best Practices
New Directions 2015 – Changes in Content Best Practices
 
Precision Content™ Tools, Techniques, and Technology
Precision Content™ Tools, Techniques, and TechnologyPrecision Content™ Tools, Techniques, and Technology
Precision Content™ Tools, Techniques, and Technology
 
10 Mistakes When Moving to Topic-Based Authoring
10 Mistakes When Moving to Topic-Based Authoring10 Mistakes When Moving to Topic-Based Authoring
10 Mistakes When Moving to Topic-Based Authoring
 
Content Conversion Done Right Saves More Than Money
Content Conversion Done Right Saves More Than MoneyContent Conversion Done Right Saves More Than Money
Content Conversion Done Right Saves More Than Money
 
Using HTML5 to Deliver and Monetize Your Mobile Content
Using HTML5 to Deliver and Monetize Your Mobile ContentUsing HTML5 to Deliver and Monetize Your Mobile Content
Using HTML5 to Deliver and Monetize Your Mobile Content
 
Metadata Matters
Metadata MattersMetadata Matters
Metadata Matters
 
Demystifying SPL for Medical Devices
Demystifying SPL for Medical DevicesDemystifying SPL for Medical Devices
Demystifying SPL for Medical Devices
 
DITA, EPUB, and HTML5: An Update for 2015
DITA, EPUB, and HTML5: An Update for 2015DITA, EPUB, and HTML5: An Update for 2015
DITA, EPUB, and HTML5: An Update for 2015
 
Out of the Silos and Into the Farm
Out of the Silos and Into the FarmOut of the Silos and Into the Farm
Out of the Silos and Into the Farm
 

Similar to Managing Deliverable Anchors: Use Keys for Links

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
 
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 Differentdclsocialmedia
 
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
 
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? IXIASOFT
 
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
 
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
 
Optimizing Content Reuse with DITA - LavaCon Webinar with Keith Schengili-Rob...
Optimizing Content Reuse with DITA - LavaCon Webinar with Keith Schengili-Rob...Optimizing Content Reuse with DITA - LavaCon Webinar with Keith Schengili-Rob...
Optimizing Content Reuse with DITA - LavaCon Webinar with Keith Schengili-Rob...IXIASOFT
 
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
 
Overview of DITA 1.3
Overview of DITA 1.3Overview of DITA 1.3
Overview of DITA 1.3IXIASOFT
 
DITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part IDITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part ISuite Solutions
 
DITA on a Shoe String
DITA on a Shoe StringDITA on a Shoe String
DITA on a Shoe StringStan Doherty
 
Optimizing Content Reuse with DITA
Optimizing Content Reuse with DITAOptimizing Content Reuse with DITA
Optimizing Content Reuse with DITAIXIASOFT
 
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesKi, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesContrext 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
 
Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Eugenio Minardi
 
50 Shades of Fail KScope16
50 Shades of Fail KScope1650 Shades of Fail KScope16
50 Shades of Fail KScope16Christian Berg
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationPeter Macinkovic
 
Attain Clean Code in Sitecore Solutions using Design Patterns
Attain Clean Code in Sitecore Solutions using Design PatternsAttain Clean Code in Sitecore Solutions using Design Patterns
Attain Clean Code in Sitecore Solutions using Design PatternsMichael Reynolds
 

Similar to Managing Deliverable Anchors: Use Keys for Links (20)

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
 
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
 
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)
 
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
 
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
 
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
 
Optimizing Content Reuse with DITA - LavaCon Webinar with Keith Schengili-Rob...
Optimizing Content Reuse with DITA - LavaCon Webinar with Keith Schengili-Rob...Optimizing Content Reuse with DITA - LavaCon Webinar with Keith Schengili-Rob...
Optimizing Content Reuse with DITA - LavaCon Webinar with Keith Schengili-Rob...
 
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
 
Overview of DITA 1.3
Overview of DITA 1.3Overview of DITA 1.3
Overview of DITA 1.3
 
DITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part IDITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part I
 
DITA on a Shoe String
DITA on a Shoe StringDITA on a Shoe String
DITA on a Shoe String
 
Developing dita maps
Developing dita mapsDeveloping dita maps
Developing dita maps
 
Optimizing Content Reuse with DITA
Optimizing Content Reuse with DITAOptimizing Content Reuse with DITA
Optimizing Content Reuse with DITA
 
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesKi, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
 
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
 
Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)
 
Html,CSS & UI/UX design
Html,CSS & UI/UX designHtml,CSS & UI/UX design
Html,CSS & UI/UX design
 
50 Shades of Fail KScope16
50 Shades of Fail KScope1650 Shades of Fail KScope16
50 Shades of Fail KScope16
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine Optimisation
 
Attain Clean Code in Sitecore Solutions using Design Patterns
Attain Clean Code in Sitecore Solutions using Design PatternsAttain Clean Code in Sitecore Solutions using Design Patterns
Attain Clean Code in Sitecore Solutions using Design Patterns
 

More from dclsocialmedia

Converting and Integrating Content When Implementing a New CMS
Converting and Integrating Content When Implementing a New CMSConverting and Integrating Content When Implementing a New CMS
Converting and Integrating Content When Implementing a New CMSdclsocialmedia
 
Automating Complex High-Volume Technical Paper and Journal Article Page Compo...
Automating Complex High-Volume Technical Paper and Journal Article Page Compo...Automating Complex High-Volume Technical Paper and Journal Article Page Compo...
Automating Complex High-Volume Technical Paper and Journal Article Page Compo...dclsocialmedia
 
Converting Your Legacy Data to S1000D
Converting Your Legacy Data to S1000DConverting Your Legacy Data to S1000D
Converting Your Legacy Data to S1000Ddclsocialmedia
 
Marketing and Strategy and Bears... oh my!
Marketing and Strategy and Bears... oh my!Marketing and Strategy and Bears... oh my!
Marketing and Strategy and Bears... oh my!dclsocialmedia
 
Finding Role Clarity in UX Chaos
Finding Role Clarity in UX ChaosFinding Role Clarity in UX Chaos
Finding Role Clarity in UX Chaosdclsocialmedia
 
Managing Documentation Projects in Nearly Any Environment
Managing Documentation Projects in Nearly Any EnvironmentManaging Documentation Projects in Nearly Any Environment
Managing Documentation Projects in Nearly Any Environmentdclsocialmedia
 
Coming Up to Speed with XML Authoring in Adobe FrameMaker
Coming Up to Speed with XML Authoring in Adobe FrameMakerComing Up to Speed with XML Authoring in Adobe FrameMaker
Coming Up to Speed with XML Authoring in Adobe FrameMakerdclsocialmedia
 

More from dclsocialmedia (7)

Converting and Integrating Content When Implementing a New CMS
Converting and Integrating Content When Implementing a New CMSConverting and Integrating Content When Implementing a New CMS
Converting and Integrating Content When Implementing a New CMS
 
Automating Complex High-Volume Technical Paper and Journal Article Page Compo...
Automating Complex High-Volume Technical Paper and Journal Article Page Compo...Automating Complex High-Volume Technical Paper and Journal Article Page Compo...
Automating Complex High-Volume Technical Paper and Journal Article Page Compo...
 
Converting Your Legacy Data to S1000D
Converting Your Legacy Data to S1000DConverting Your Legacy Data to S1000D
Converting Your Legacy Data to S1000D
 
Marketing and Strategy and Bears... oh my!
Marketing and Strategy and Bears... oh my!Marketing and Strategy and Bears... oh my!
Marketing and Strategy and Bears... oh my!
 
Finding Role Clarity in UX Chaos
Finding Role Clarity in UX ChaosFinding Role Clarity in UX Chaos
Finding Role Clarity in UX Chaos
 
Managing Documentation Projects in Nearly Any Environment
Managing Documentation Projects in Nearly Any EnvironmentManaging Documentation Projects in Nearly Any Environment
Managing Documentation Projects in Nearly Any Environment
 
Coming Up to Speed with XML Authoring in Adobe FrameMaker
Coming Up to Speed with XML Authoring in Adobe FrameMakerComing Up to Speed with XML Authoring in Adobe FrameMaker
Coming Up to Speed with XML Authoring in Adobe FrameMaker
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Managing Deliverable Anchors: Use Keys for Links

  • 1. Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys How to define and maintain publicly- linkable anchors in deliverables produced from DITA source 9/24/2015 Contrext, LLC 1 Eliot Kimber Contrext, LLC DCL Learning Series, Sept 24 2015
  • 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 • Author of DITA for Practitioners, Vol 1 (XML Press) 9/24/2015 Contrext, LLC 2
  • 3. Agenda • What are "public anchors"? • Navigation vs resource keys • Key definition and usage best practice • Generating public deliverable anchors 9/24/2015 Contrext, LLC 3
  • 4. Executive Summary • Use keys for everything • Principle: Exactly one URI reference to each resource across all maps • Put unique keys on each navigation topicref you want to be publicly linkable or xref to • Use navigation keys to determine deliverable anchors • Don’t change navigation keys unnecessarily 9/24/2015 Contrext, LLC 4
  • 5. What are Public Anchors? • Anything that can be linked to from outside the deliverable: – HTML files – HTML @id values – PDF named destinations – Help topic IDs • Need to be reliably persistent • Should not change from release to release for the same logical component (topic or element) 9/24/2015 Contrext, LLC 5
  • 6. Navigation vs Resource keys • Two types of topicrefs: – "normal": contribute to the navigation tree or to reltables – "resource-only": Establish a dependency on a resource but don’t put it in the navigation tree • @processing-role on topicref: – processing-role="normal" – processing-role="resource-only" • <keydef> is resource-only by default 9/24/2015 Contrext, LLC 6
  • 7. Resource-Only Keys • Establish context-independent keys for topics • Can be unique across all maps if required or map- or scope-specific • Key-defining maps serve as catalogs of topics or other resources (images, etc.) • Should be used for conrefs • Not useful for cross reference targets: no navigation use context 9/24/2015 Contrext, LLC 7
  • 8. Normal-Role (Navigation) Key • Identifies the unique uses of a given topic • Only appropriate target for cross references • By the nature of keys, are globally unique within a single root map. 9/24/2015 Contrext, LLC 8
  • 9. Key Definition and Usage Best Practice • Define resource-only keys in standalone "key- definition" maps <keydef keys="topic-000123r5" href="topics/t-57623-934.dita"/> • Use resource-only keys from navigation topicrefs: <chapter keys="chap-01" keyref="topic-000123r5"/> • Put keys on either all navigation topicrefs or • Put keys on all navigation topicrefs you want to be publicly linkable 9/24/2015 Contrext, LLC 9
  • 10. Exactly One URI Reference For Each Resource • For images and external Web resources: – Always define a key – Refer to the key (and only the key) from topics • For topics that are or are likely to be reused: – Define resource-only keys in a separate key- defining map • For topics that are only ever used in a single map: – Put @keys on the topicref to the topic 9/24/2015 Contrext, LLC 10
  • 11. Keys for Single-Use Topics • A topic used only once across all maps may not justify the cost of separate resource-only key definition • Define two keys on the topicref: – One that reflects that use of the topic: "ch-01-ss-01" – One that represents the topic in any context: "topic-1235" • Example: <topicref keys="installation topic-1234" href="topics/topic-1234.dita" /> • If the topic is ever reused, create resource-only topicref and move context-independent key to that definition 9/24/2015 Contrext, LLC 11
  • 12. NOTE: DITA OT Limitation • As of OT 2.1 and earlier: – @copy-to on navigation topicrefs that use keyref doesn't work – Copy-to processing is done before key space construction • Fixing this will require rethinking entire preprocessing approach – Rethink required for DITA 1.3 anyway – Non-trivial to implement • Workaround: Use separate keydefs for each required copy-to: <keydef keys="key-01" href="topic-01.dita"/> <keydef keys="key-01-copy-to-c01s01" href="topic-01.dita" copy-to="ch01-sec01.dita"/> … <topicref keys="ch01-sec01" keyref="key-01-copy-to-c01s01"/> 9/24/2015 Contrext, LLC 12
  • 13. Example: Publication root map <map> <title>Prod1 Product Guide</title> <mapref href="keysdefs-01.ditamap"/> <topicref keys="pubroot" keyref="topic-ABC001" > <topicref keys="chapter-01" keyref="topic-ABC123" > <topicref keys="ch01-overview" keyref="topic-ABC456" > </topicref> … </topicref> … </map> 9/24/2015 Contrext, LLC 13
  • 14. Example: keydefs-01.ditamap <map> <title>Keydefs for Group 1</title> <keydef keys="topic-ABC001" href="topic-ABC001.dita" /> <keydef keys="topic-ABC002" href="topic-ABC002.dita" /> … </map> 9/24/2015 Contrext, LLC 14
  • 15. Cross Reference Example <p>See <xref keyref="chapter-01"/>… <p>See <xref keyref="chapter-01/fig-01"/> 9/24/2015 Contrext, LLC 15
  • 16. Generating Deliverables • Links in the source need to become links in the deliverable • E.g., <xref keyref="ch01-ss02"/> becomes <a href="ch01.html#unique-0345"> • "ch01.html#unique-0345" is an "anchor" in the deliverable – That is, a thing you can point to to create a link to that place in the deliverable • Generating the links is easy if you don't care what the anchor values are • Generating the links is harder if you do care. 9/24/2015 Contrext, LLC 16
  • 17. We Do Care About Anchors • If you are publishing your books to the Web • Then people will link to or bookmark HTML pages • For PDF, you may want to have PDF-to-PDF links • Changing the anchors breaks links others have created to your publications 9/24/2015 Contrext, LLC 17
  • 18. Generating Public Deliverable Anchors • Two basic use cases: – Multi-file outputs (HTML, online help) – Monolithic outputs (PDF, EPUB, etc.) • General problem: anchors for non-topic elements – Only unique within a single topic – Not necessarily unique within result documents • Must combine keys with element IDs in some cases 9/24/2015 Contrext, LLC 18
  • 19. Multi-File Outputs (HTML) • Use navigation keys to determine result filenames: <topicref keys="chapter-01" keyref="topic-ABC123" > becomes chapter-01.html • Use navigation key plus element ID to construct in-document anchors 9/24/2015 Contrext, LLC 19
  • 20. Monolithic Outputs (PDF) • Use navigation key for topic anchors • Use navigation key+element ID for non-topic anchors • For PDF, need to use a separator that uses legal URL characters, e.g. "_._", "-.-" – Needs to be more than "-" or "_" to avoid accidental collisions 9/24/2015 Contrext, LLC 20
  • 21. Preprocessing Extensions • DITA Community project • Extends base preprocessing to add @copy-to to topicrefs as required – Second and subsequent reference to a given topic – Will eventually use keys for the filename value • Some subtle complexities • Haven't had time to implement yet • OT 1.8 only at this time (2.x support is planned) 9/24/2015 Contrext, LLC 21
  • 22. Summary • Always use keys for all references – To topics – To images – To peer maps (DITA 1.3) • Put keys on navigation topicrefs • Crossrefs should point to navigation keys • Use navigation keys to generate anchors in deliverables 9/24/2015 Contrext, LLC 22
  • 23. Resources • Paper: http://github.io/dita- community/paper-dita-keys-as-public-anchor- ids • Preprocessing extensions: https://github.com/dita-community/org.dita- community.preprocess-extensions • Me: ekimber@contrext.com, http://contrext.com 9/24/2015 Contrext, LLC 23