SlideShare a Scribd company logo
MARKUP LANGUAGES AND
WARP-SPEED
DOCUMENTATION
Lois Patterson – Presentation
What this presentation is about
• How software development culture is moving towards Dev Ops
• Using markup languages to adjust to the Dev Ops culture
• Advantages and disadvantages of different markup languages
• How content written in a markup language is converted to attractive
documentation
• How you can switch to using markup languages
Lois Patterson - Presentation
In the olden days …
Lois Patterson - Presentation
Today’s demands
• Weekly, daily, hourly releases
Lois Patterson - Presentation
How about you?
• What type of team?
Lois Patterson - Presentation
Agile development
• Agile workflows <-> continual, timely updates
of code and docs
Lois Patterson - Presentation
Are you agile?
Lois Patterson - Presentation
Book recommendation:
Modern Technical Writing: An Introduction to
Software Documentation Kindle Edition
by Andrew Etter
Lois Patterson - Presentation
Documentation is not separate
from the product
• Part of the product, embedded in the product
Lois Patterson - Presentation
Dev ops and doc ops
• Dev ops, doc ops
• Full stack approach
Lois Patterson - Presentation
Markup languages and doc ops
• Simplify!
o Writing
o Docs production
o Integration of docs with product
Lois Patterson - Presentation
What is a markup language?
• Plain text, with various tags or other elements
that indicate how the text should be processed
• HTML is best-known
• XML – family of markup languages
• Simple, doc-friendly markup languages:
• reStructuredText
• AsciiDoc
• Markdown
Lois Patterson - Presentation
Simple vs. complex markup languages
• DITA and DocBook
• reStructuredText, Markdown, and AsciiDoc
• Overhead versus structure
Lois Patterson - Presentation
Markup languages foster content collaboration
• Learn a markup language quickly
• Constant documentation updates require cross-team contributors
• Make life easy for all contributors
Lois Patterson - Presentation
Proprietary vs. open source
• Expensive and difficult tools, limited licenses
• Free tools, unlimited users
Lois Patterson - Presentation
Markup + Processor
• General principle: Write doc in markup language
• Process the markup to get your final docs
• DITA Open Toolkit, Sphinx (for reStructuredText), Jekyll (for Markdown)
• Static site generators produce static HTML
• Dynamic site generators render on the fly
• GitHub processes various markup formats instantaneously
Lois Patterson - Presentation
Let’s look at Markdown
• My portfolio page at GitHub
Lois Patterson - Presentation
Lois Patterson - Presentation
More about Github
• 35 million repositories!
Lois Patterson - Presentation
GitHub, markup languages, and collaborative culture
• Github as an exemplar
• Full engagement from team
• Widespread contributions
• We’re in this together
Lois Patterson - Presentation
Collaborative culture
Lois Patterson - Presentation
You can be a contributor
• Help out open source software
• Learn new technologies
• Build your portfolio
Lois Patterson - Presentation
Do you have a Github site?
• Will you get a Github site?
Lois Patterson - Presentation
Nitty-gritty
Lois Patterson - Presentation
Challenges of unstructured languages
• DITA forces unity among writers. Deviation is punished.
• Impose structure with templates and standards.
• “You can, but you shouldn’t.”
• Structure and unity particularly important if localization is happening.
Lois Patterson - Presentation
reStructuredText
Lois Patterson - Presentation
Let’s look at reStructuredText
• Start at readthedocs.org. (Docs at https://docs.readthedocs.io/ .)
• Python community origin
• Versatile
• Used with Sphinx static site generator
Lois Patterson - Presentation
Let’s look at reStructuredText
• ReadTheDocs page, editable at GitHub
• Rendered at GitHub
• Rendered at ReadTheDocs.org
• You can do the same!
Lois Patterson - Presentation
Sample reStructuredText template
Lois Patterson - Presentation
Sample reStructuredText template
Lois Patterson - Presentation
Look at a specific example
Lois Patterson - Presentation
restructuredText looks like this
Getting Started
===============
This document will show you how to get up and running with Read the Docs.
You will have your docs imported on Read the Docs in 5 minutes,
displayed beautifully for the world.
If you are already using Sphinx or Markdown for your docs, skip ahead to
:ref:`import-docs`.
Sphinx transforms restructuredText
Compare restructuredText to DITA XML
•
XML (DITA XML) – VERY SIMPLE FILE
• <?xml version="1.0" encoding="UTF-8"?>
• <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
• <topic id="topic_qk5_knc_fg">
• <title>Troubleshooting</title>
• <body>
• <p>Troubleshoot most common issues.</p>
• </body>
• </topic>
From source to docs with Sphinx
•
SPHINX AND RESTRUCTUREDTEXT
• reStructuredText (reST) is rather like Markdown.
• Sphinx is a static site generator.
• restructuredText other stuff (HTML, PDF, etc.)
• restructuredText/Sphinx:: Markdown/Jekyll
SPHINX, DOCUTILS, RST - SUMMARY
• Output formats
• Extensive cross-references
• Hierarchical structure
• Automatic indices
• Code handling
• Extensions
• Contributed extensions
• Uses reStructuredText for markup, and Docutils for parsing
See more: http://sphinx-doc.org/index.html
Want to author in reStructuredText and generate in
Sphinx?
Install Python first. (We used a 2.7.x version, but 3.3+ supported too.)
Sphinx Tutorial: http://sphinx-doc.org/tutorial.html
YouTube too!
https://www.youtube.com/watch?feature=player_embedded&v=oJsUvBQyHBs
Look, copy, build, experiment
Static site generators
• Server load reduced
• Less prone to network difficulties and
intermittent errors
• Speed, security
• Available offline (many clients require this)
• Recent count: 394 different ones
• Choosing a well-supported one is key
• Disadvantages too
Lois Patterson - Presentation
Incorporating content from code
• Pull content from the code
• DRY (Don’t Repeat Yourself)
Lois Patterson - Presentation
Automate, automate,
automate
Lois Patterson - Presentation
Organization – still
important
Lois Patterson - Presentation
WHY WE LEFT THE CUSTOM XML WORLD
• Custom XML locked us in.
• HTML-based systems (e.g., MadCap Flare) do not easily integrate into our
vision of all devs write
• Did not really leave after all
GREAT THINGS ABOUT SPHINX AND RST
• Well-developed eco-system
• Python!
• Versatile outputs
• Easy to write
• Easy to read
• Text-based
• Encourages topic-based authoring!
MORE BENEFITS
• Everyone writes
• Tool-agnostic (emacs, vim, Notepad++, SublimeText, whatever you love)
• Version-control friendly
OLD VS. NEW
Structured XML
• Proprietary format
• Complex build machinery
• Tightly coupled with product (in a
bad way)
• Supports MathJax
Positives
Enforced programming structure
It’s ours!
Sphinx/rsT
• Open format
• Easy to build
• Easy to write
• Easy to read
• Supports MathJax
• Negatives
• Some customization needed
TYPICAL CONVERSION WORKFLOW (XML TO RST)
• High-level website design
• Create templates (for our sanity)
• Convert content
• Create content
• (All the time be building)
• Integrate into product and build system
WEBSITE DESIGN (DOCUMENTATION SYSTEM)
• A corporate-branded site, not a personal or open-source look
• Standard UX and design work
• Liaise with Marketing and other stakeholders
• jinja templating engines are a starting point
CREATE RESTRUCTUREDTEXT TEMPLATES
• restructuredText allows you to author without much structure (ironic?)
• Enforce structure with templates and code reviews.
CONVERT CONTENT
• Pandoc!
http://www.pandoc.org/
• Semi-manual
Custom scripts
ALWAYS BE BUILDING
Know how your docs look at any moment. (Continuous integration for docs.)
INTEGRATE INTO PRODUCT BUILD SYSTEM
CODE PRACTICES FOR DOCUMENTATION
• Code review
• Version control
• Automated testing
WHAT ABOUT?
• Content reuse?
• Content management systems?
CASE STUDY
• Rackspace (along with NASA invented OpenStack)
switched/is switching OpenStack docs from DocBook XML to Sphinx/RST.
• http://justwriteclick.com/2015/02/23/state-of-the-migration-to-sphinxrst/
• https://wiki.openstack.org/wiki/Documentation/Migrate
CUSTOM EXTENSIONS
Docs must pull information from the code in unique ways.
CREATE, USE MORE EXTENSIONS
Sphinx has so many options, just finding what is available takes time.
WHAT COULD HAVE BEEN BETTER
NOT SO BLAMELESS POST-MORTEM
COULD HAVE STARTED SOONER
But Sphinx did not exist way back when ….
MORE AUTOMATION
Lack of time, but still …
MAKE TASKS MORE GRANULAR
Too big and scary a task? Break it down!
SHOULD YOU USE MARKUP LANGUAGES?
IT DEPENDS
Consider:
• Markdown (different flavors)
• AsciiDoc
• DocBook
• DITA XML
• Or ?
WHAT NOT TO DO
• Design your custom bespoke system from scratch by yourself.
• Except if …
RESOURCES
• http://sphinx-doc.org/
• http://readthedocs.org
• http://www.pandoc.org
http://justwriteclick.com/2015/02/23/state-of-the-migration-to-sphinxrst/
https://wiki.openstack.org/wiki/Documentation/Migrate
http://sphinx-doc.org/tutorial.html
https://www.youtube.com/watch?feature=player_embedded&v=oJsUvBQyHBs
In summary
Lois Patterson - Presentation
• Technical writers must work faster than ever
• Technical writers must collaborate across teams
• Markup languages facilitate a collaborative culture
• You have huge flexibility in the solutions you choose
• Structure, standards, and process are as important as ever
THANK YOU!
• Lois Patterson
• LoisRPatterson@gmail.com
• Twitter: @LoisRP
• Tumblr: http://www.AnAPIaDay.tumblr.com

More Related Content

What's hot (20)

PDF
Navigating the Incubator at the Apache Software Foundation
Brett Porter
 
KEY
ApacheCon Europe 2012 -Big Search 4 Big Data
OpenSource Connections
 
PPTX
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
Matthew Groves
 
PDF
SGCE 2015 REST APIs
Domingo Suarez Torres
 
PDF
Big Search 4 Big Data War Stories
OpenSource Connections
 
PDF
Searching Chinese Patents Presentation at Enterprise Data World
OpenSource Connections
 
PDF
Serverless On Stage - Serverless URL Shortener
Luca Bianchi
 
PDF
Fedora4
Yinlin Chen
 
PDF
Whitepages Practical Experience Converting from Ruby to Reactive
Dragos Manolescu
 
PDF
BP-8 Global Federation and Search
Alfresco Software
 
PDF
Agile Localization: Oxymoron or Heroic Achievement?
Laura Dent
 
PDF
Learning Silicon Valley Culture
Taro L. Saito
 
PPTX
Dbops, DevOps & Ops, by Eduardo Piairo
Agile Connect®
 
PPTX
Profiling and Tuning a Web Application - The Dirty Details
Achievers Tech
 
PDF
Putting the (docs) Cart Before the (standards) Horse
DrewAPicture
 
PDF
Rupher = Ruby + Gopther
Aleksandr Simonov
 
PDF
Rupher
Amoniac OÜ
 
PPTX
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
Matthew Groves
 
PPT
Bridging the Gap - Laracon 2013
Ben Corlett
 
PPTX
Soccnx11 Two wrongs don't make a right - Troubleshooting Connections
Nico Meisenzahl
 
Navigating the Incubator at the Apache Software Foundation
Brett Porter
 
ApacheCon Europe 2012 -Big Search 4 Big Data
OpenSource Connections
 
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
Matthew Groves
 
SGCE 2015 REST APIs
Domingo Suarez Torres
 
Big Search 4 Big Data War Stories
OpenSource Connections
 
Searching Chinese Patents Presentation at Enterprise Data World
OpenSource Connections
 
Serverless On Stage - Serverless URL Shortener
Luca Bianchi
 
Fedora4
Yinlin Chen
 
Whitepages Practical Experience Converting from Ruby to Reactive
Dragos Manolescu
 
BP-8 Global Federation and Search
Alfresco Software
 
Agile Localization: Oxymoron or Heroic Achievement?
Laura Dent
 
Learning Silicon Valley Culture
Taro L. Saito
 
Dbops, DevOps & Ops, by Eduardo Piairo
Agile Connect®
 
Profiling and Tuning a Web Application - The Dirty Details
Achievers Tech
 
Putting the (docs) Cart Before the (standards) Horse
DrewAPicture
 
Rupher = Ruby + Gopther
Aleksandr Simonov
 
Rupher
Amoniac OÜ
 
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
Matthew Groves
 
Bridging the Gap - Laracon 2013
Ben Corlett
 
Soccnx11 Two wrongs don't make a right - Troubleshooting Connections
Nico Meisenzahl
 

Viewers also liked (8)

PDF
Automated Equation Processing and Rendering Workflows for Publishers
Sanders Kleinfeld
 
PPT
Mathematical content in documentation (DITA Europe 2008)
Lois Patterson
 
PPTX
Automated Equation Breaking: Making Equations Responsive
Ahmed Hindawi
 
PPTX
From print textbook to MathML
Tara Robertson
 
PDF
Mogwaï: A Framework to Handle Complex Queries on Large Models
Gwendal Daniel
 
PDF
Gui Input Tools for Math [UKMC09]
Greg TAPPERO
 
PDF
UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
Gwendal Daniel
 
PPT
Virtual keyboard ppt
Piyush Rajput
 
Automated Equation Processing and Rendering Workflows for Publishers
Sanders Kleinfeld
 
Mathematical content in documentation (DITA Europe 2008)
Lois Patterson
 
Automated Equation Breaking: Making Equations Responsive
Ahmed Hindawi
 
From print textbook to MathML
Tara Robertson
 
Mogwaï: A Framework to Handle Complex Queries on Large Models
Gwendal Daniel
 
Gui Input Tools for Math [UKMC09]
Greg TAPPERO
 
UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
Gwendal Daniel
 
Virtual keyboard ppt
Piyush Rajput
 
Ad

Similar to Markup languages and warp-speed documentation (20)

PDF
Olf2016
Dru Lavigne
 
PDF
Scale2016
Dru Lavigne
 
PDF
Lfnw2016
Dru Lavigne
 
PDF
Fossetcon15
Dru Lavigne
 
PDF
Tlf2016
Dru Lavigne
 
PDF
Knoxbug2016
Dru Lavigne
 
PPTX
Module IV in carrier and technical education .pptx
amare63
 
PPTX
UNDERSTANDING MARKUP LANGUAGES.pptx
Anbu1416
 
PDF
Documentation Communities: Sound Strategy or Documentarian's Gambit?
Laura Novich
 
PDF
sphinx demo
ak013
 
PDF
Creating and Managing Technical Content for Open Source Products
WSO2
 
PPTX
Engage 2019 Software documentation is fun if you have the right tools: Introd...
AndrewMagerman
 
PPTX
Publishing strategies for API documentation
Tom Johnson
 
PPTX
DMDS Winter 2015 Workshop 1 slides
Paige Morgan
 
PDF
Make an Instant Website with Webhooks
Anne Gentle
 
PDF
Writing Effective Self-Help Guides for World Domination
Emma Jane Hogbin Westby
 
PDF
xhtml-documentation
tutorialsruby
 
PDF
xhtml-documentation
tutorialsruby
 
PPT
Pmm05 16
Rohit Luthra
 
PDF
Markup For Dummies (Russ Ward)
STC-Philadelphia Metro Chapter
 
Olf2016
Dru Lavigne
 
Scale2016
Dru Lavigne
 
Lfnw2016
Dru Lavigne
 
Fossetcon15
Dru Lavigne
 
Tlf2016
Dru Lavigne
 
Knoxbug2016
Dru Lavigne
 
Module IV in carrier and technical education .pptx
amare63
 
UNDERSTANDING MARKUP LANGUAGES.pptx
Anbu1416
 
Documentation Communities: Sound Strategy or Documentarian's Gambit?
Laura Novich
 
sphinx demo
ak013
 
Creating and Managing Technical Content for Open Source Products
WSO2
 
Engage 2019 Software documentation is fun if you have the right tools: Introd...
AndrewMagerman
 
Publishing strategies for API documentation
Tom Johnson
 
DMDS Winter 2015 Workshop 1 slides
Paige Morgan
 
Make an Instant Website with Webhooks
Anne Gentle
 
Writing Effective Self-Help Guides for World Domination
Emma Jane Hogbin Westby
 
xhtml-documentation
tutorialsruby
 
xhtml-documentation
tutorialsruby
 
Pmm05 16
Rohit Luthra
 
Markup For Dummies (Russ Ward)
STC-Philadelphia Metro Chapter
 
Ad

Recently uploaded (20)

PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 

Markup languages and warp-speed documentation

  • 2. What this presentation is about • How software development culture is moving towards Dev Ops • Using markup languages to adjust to the Dev Ops culture • Advantages and disadvantages of different markup languages • How content written in a markup language is converted to attractive documentation • How you can switch to using markup languages Lois Patterson - Presentation
  • 3. In the olden days … Lois Patterson - Presentation
  • 4. Today’s demands • Weekly, daily, hourly releases Lois Patterson - Presentation
  • 5. How about you? • What type of team? Lois Patterson - Presentation
  • 6. Agile development • Agile workflows <-> continual, timely updates of code and docs Lois Patterson - Presentation
  • 7. Are you agile? Lois Patterson - Presentation
  • 8. Book recommendation: Modern Technical Writing: An Introduction to Software Documentation Kindle Edition by Andrew Etter Lois Patterson - Presentation
  • 9. Documentation is not separate from the product • Part of the product, embedded in the product Lois Patterson - Presentation
  • 10. Dev ops and doc ops • Dev ops, doc ops • Full stack approach Lois Patterson - Presentation
  • 11. Markup languages and doc ops • Simplify! o Writing o Docs production o Integration of docs with product Lois Patterson - Presentation
  • 12. What is a markup language? • Plain text, with various tags or other elements that indicate how the text should be processed • HTML is best-known • XML – family of markup languages • Simple, doc-friendly markup languages: • reStructuredText • AsciiDoc • Markdown Lois Patterson - Presentation
  • 13. Simple vs. complex markup languages • DITA and DocBook • reStructuredText, Markdown, and AsciiDoc • Overhead versus structure Lois Patterson - Presentation
  • 14. Markup languages foster content collaboration • Learn a markup language quickly • Constant documentation updates require cross-team contributors • Make life easy for all contributors Lois Patterson - Presentation
  • 15. Proprietary vs. open source • Expensive and difficult tools, limited licenses • Free tools, unlimited users Lois Patterson - Presentation
  • 16. Markup + Processor • General principle: Write doc in markup language • Process the markup to get your final docs • DITA Open Toolkit, Sphinx (for reStructuredText), Jekyll (for Markdown) • Static site generators produce static HTML • Dynamic site generators render on the fly • GitHub processes various markup formats instantaneously Lois Patterson - Presentation
  • 17. Let’s look at Markdown • My portfolio page at GitHub Lois Patterson - Presentation
  • 18. Lois Patterson - Presentation
  • 19. More about Github • 35 million repositories! Lois Patterson - Presentation
  • 20. GitHub, markup languages, and collaborative culture • Github as an exemplar • Full engagement from team • Widespread contributions • We’re in this together Lois Patterson - Presentation
  • 22. You can be a contributor • Help out open source software • Learn new technologies • Build your portfolio Lois Patterson - Presentation
  • 23. Do you have a Github site? • Will you get a Github site? Lois Patterson - Presentation
  • 25. Challenges of unstructured languages • DITA forces unity among writers. Deviation is punished. • Impose structure with templates and standards. • “You can, but you shouldn’t.” • Structure and unity particularly important if localization is happening. Lois Patterson - Presentation
  • 27. Let’s look at reStructuredText • Start at readthedocs.org. (Docs at https://docs.readthedocs.io/ .) • Python community origin • Versatile • Used with Sphinx static site generator Lois Patterson - Presentation
  • 28. Let’s look at reStructuredText • ReadTheDocs page, editable at GitHub • Rendered at GitHub • Rendered at ReadTheDocs.org • You can do the same! Lois Patterson - Presentation
  • 29. Sample reStructuredText template Lois Patterson - Presentation
  • 30. Sample reStructuredText template Lois Patterson - Presentation
  • 31. Look at a specific example Lois Patterson - Presentation
  • 32. restructuredText looks like this Getting Started =============== This document will show you how to get up and running with Read the Docs. You will have your docs imported on Read the Docs in 5 minutes, displayed beautifully for the world. If you are already using Sphinx or Markdown for your docs, skip ahead to :ref:`import-docs`.
  • 35. XML (DITA XML) – VERY SIMPLE FILE • <?xml version="1.0" encoding="UTF-8"?> • <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd"> • <topic id="topic_qk5_knc_fg"> • <title>Troubleshooting</title> • <body> • <p>Troubleshoot most common issues.</p> • </body> • </topic>
  • 36. From source to docs with Sphinx •
  • 37. SPHINX AND RESTRUCTUREDTEXT • reStructuredText (reST) is rather like Markdown. • Sphinx is a static site generator. • restructuredText other stuff (HTML, PDF, etc.) • restructuredText/Sphinx:: Markdown/Jekyll
  • 38. SPHINX, DOCUTILS, RST - SUMMARY • Output formats • Extensive cross-references • Hierarchical structure • Automatic indices • Code handling • Extensions • Contributed extensions • Uses reStructuredText for markup, and Docutils for parsing See more: http://sphinx-doc.org/index.html
  • 39. Want to author in reStructuredText and generate in Sphinx? Install Python first. (We used a 2.7.x version, but 3.3+ supported too.) Sphinx Tutorial: http://sphinx-doc.org/tutorial.html YouTube too! https://www.youtube.com/watch?feature=player_embedded&v=oJsUvBQyHBs Look, copy, build, experiment
  • 40. Static site generators • Server load reduced • Less prone to network difficulties and intermittent errors • Speed, security • Available offline (many clients require this) • Recent count: 394 different ones • Choosing a well-supported one is key • Disadvantages too Lois Patterson - Presentation
  • 41. Incorporating content from code • Pull content from the code • DRY (Don’t Repeat Yourself) Lois Patterson - Presentation
  • 43. Organization – still important Lois Patterson - Presentation
  • 44. WHY WE LEFT THE CUSTOM XML WORLD • Custom XML locked us in. • HTML-based systems (e.g., MadCap Flare) do not easily integrate into our vision of all devs write • Did not really leave after all
  • 45. GREAT THINGS ABOUT SPHINX AND RST • Well-developed eco-system • Python! • Versatile outputs • Easy to write • Easy to read • Text-based • Encourages topic-based authoring!
  • 46. MORE BENEFITS • Everyone writes • Tool-agnostic (emacs, vim, Notepad++, SublimeText, whatever you love) • Version-control friendly
  • 47. OLD VS. NEW Structured XML • Proprietary format • Complex build machinery • Tightly coupled with product (in a bad way) • Supports MathJax Positives Enforced programming structure It’s ours! Sphinx/rsT • Open format • Easy to build • Easy to write • Easy to read • Supports MathJax • Negatives • Some customization needed
  • 48. TYPICAL CONVERSION WORKFLOW (XML TO RST) • High-level website design • Create templates (for our sanity) • Convert content • Create content • (All the time be building) • Integrate into product and build system
  • 49. WEBSITE DESIGN (DOCUMENTATION SYSTEM) • A corporate-branded site, not a personal or open-source look • Standard UX and design work • Liaise with Marketing and other stakeholders • jinja templating engines are a starting point
  • 50. CREATE RESTRUCTUREDTEXT TEMPLATES • restructuredText allows you to author without much structure (ironic?) • Enforce structure with templates and code reviews.
  • 52. ALWAYS BE BUILDING Know how your docs look at any moment. (Continuous integration for docs.)
  • 53. INTEGRATE INTO PRODUCT BUILD SYSTEM
  • 54. CODE PRACTICES FOR DOCUMENTATION • Code review • Version control • Automated testing
  • 55. WHAT ABOUT? • Content reuse? • Content management systems?
  • 56. CASE STUDY • Rackspace (along with NASA invented OpenStack) switched/is switching OpenStack docs from DocBook XML to Sphinx/RST. • http://justwriteclick.com/2015/02/23/state-of-the-migration-to-sphinxrst/ • https://wiki.openstack.org/wiki/Documentation/Migrate
  • 57. CUSTOM EXTENSIONS Docs must pull information from the code in unique ways.
  • 58. CREATE, USE MORE EXTENSIONS Sphinx has so many options, just finding what is available takes time.
  • 59. WHAT COULD HAVE BEEN BETTER NOT SO BLAMELESS POST-MORTEM
  • 60. COULD HAVE STARTED SOONER But Sphinx did not exist way back when ….
  • 61. MORE AUTOMATION Lack of time, but still …
  • 62. MAKE TASKS MORE GRANULAR Too big and scary a task? Break it down!
  • 63. SHOULD YOU USE MARKUP LANGUAGES?
  • 64. IT DEPENDS Consider: • Markdown (different flavors) • AsciiDoc • DocBook • DITA XML • Or ?
  • 65. WHAT NOT TO DO • Design your custom bespoke system from scratch by yourself. • Except if …
  • 66. RESOURCES • http://sphinx-doc.org/ • http://readthedocs.org • http://www.pandoc.org http://justwriteclick.com/2015/02/23/state-of-the-migration-to-sphinxrst/ https://wiki.openstack.org/wiki/Documentation/Migrate http://sphinx-doc.org/tutorial.html https://www.youtube.com/watch?feature=player_embedded&v=oJsUvBQyHBs
  • 67. In summary Lois Patterson - Presentation • Technical writers must work faster than ever • Technical writers must collaborate across teams • Markup languages facilitate a collaborative culture • You have huge flexibility in the solutions you choose • Structure, standards, and process are as important as ever
  • 68. THANK YOU! • Lois Patterson • [email protected] • Twitter: @LoisRP • Tumblr: http://www.AnAPIaDay.tumblr.com

Editor's Notes

  • #2: Hi, I’m Lois Patterson. I’ve worked at many software companies in different roles. My focus for the past few years has been developer documentation. Much of this presentation was written while I was at my previous role as a Technical Communications Manager at a company where we did a large conversion project for our documentation.
  • #3: Let’s look at the shift in culture. What are markup languages and dev ops? Why use one language over another?
  • #4: A release every year or two was common. The docs would go to the printers. We would get proofs. It would take weeks! Delays between development and documentation were expected. Long release cycles. Printing, corrections – it was a different world.
  • #5: Who does this? Google, Atlassian, many companies who need to go live with new content all the time. How can you keep documentation in sync if you go through a print house review cycle? Consider the code review process for software development.
  • #6: Who has a technical documentation team with a defined set of writers using proprietary tools?(Gatekeeping model, may be necessary in certain environments) Who has a technical documentation team with writers, but also outside contributors? (Typical software world) Who has no official tech docs team, but a host of contributors? (E.g., last I heard, Twitter has 4 technical writers. But look where Twitter is.)
  • #7: Agile means something different to every person and every company, but we generally agree that it’s a way to develop working software continuously and incrementally, rather than waiting for a big bang product. Do not get hung up on the philosophy differences. The idea is the teams are continuously checking in against each other, and delivering improvements almost all the time.
  • #8: We all strive to be. But still not completely suitable for all cases. Modeling requirements and planning are still important (and can be part of Agile).
  • #9: Book recommendation I recently read this book, and he covers many of the same concepts I discuss in this talk. I recommend reading it if you can. If you get Kindle Unlimited, then it’s free (a plug).
  • #10: For many products, the documentation is integrated into the product. It’s not possible to pull them apart. Not all documentation is in the product, but enough of it is that you have to keep up to date.
  • #11: Dev ops means you will likely hear about Ansible, Puppet, Chef, Docker. Agile development continues through to the IT team. Fully integrated dev ops has development, QA, documentation, IT deployment, and customer support all prepared and all aligned with the current product version at any given moment.
  • #12: How can you do this type of rapid, continuous development, integration, and deployment if you do not simplify processes? Judicious use of markup languages, and treating docs as code, allows you to vastly speed up your process.
  • #13: You have used markup languages, I’m sure. I’m focusing on the simple ones for this presentation – perhaps I should have said – Why use simple markup languages for documentation?
  • #14: I don’t want to make a hard and fast division. easyDITA, FluidTopics, and other vendors are working on ways to make DITA work in a high-speed environment. But I’m discussing what has worked for us, and what I know has worked for many others working particularly in the field of developer documentation. XML markup, like DITA and DocBook vs. simpler markup, like reStructuredText, Markdown, and AsciiDoc Different domains – different requirements Situation is evolving! Balance of overhead versus structure
  • #15: By quickly, I mean within an hour. Just like anyone can write in a wiki. Some writers worry they are less valuable if everyone is documenting. No – you do necessarily take an editorial role, but there are always documents to write, particularly for complex software. You can go well beyond the basics.
  • #16: The right use of markup languages allows anyone to become a contributor with close to zero rampup, and no concern about licenses or weeks of training.
  • #17: If you use markup languages, you need a way to process the raw documents into a finished product. So here’s the general process.
  • #18: My portfolio page at GitHub Markdown is highly versatile, widely used Different flavors hinder compatibility Customizations are common
  • #19: We’ve taken a look at Markdown. Now we’ll look at reStructuredText.
  • #21: Github is an example of what collaborative culture can look like. GitHub phenomenon has a general theme: widespread contributors We’re in this together Technical writers, to produce constantly updated docs, require full contributions from other team members Dev/Doc Ops requires an engaged, fully coordinated team Every developer knows markup languages; contribution is straightforward ->I just saw this quote on Twitter.
  • #22: I just saw this quote on Twitter. Developers know they need good documentation to use new APIs, new languages, and so forth. Having excellent technical contributors in no way diminishes technical writers.
  • #23: Let’s take this idea of contribution more generally. Not only in the company you work for, but for the tools you know and love. You can see this collaborative culture with everyone who has contributed to Github or other open communities. Many excellent open-source software projects with great developers need technical documentation Use of markup languages, a knowledge of Git, and a willingness to follow the process required Build your portfolio Growing trend for hiring managers to look at GitHub commits
  • #24: We all strive to be. But still not completely suitable for all cases. Modeling requirements and planning are still important (and can be part of Agile).
  • #25: Let’s look a some technical details of using markup languages.
  • #26: Some possible negatives. I’m discussing positives throughout, so I want to keep these in mind.
  • #27: Let’s take some look at some examples.
  • #28: I am very partial to reStructuredText. I love Python, which is where reST originated (not to be confused with REST APIs). So many excellent projects are using rest, and you can see many of these projects at the Read The Docs site. We were very fortunate to have the resources of an experienced Python developer, who is very familiar with the build system, how content is pulled in from various places, and who was just generally a superstar developer.
  • #29: You can get an idea of how flexible rest is. The ReadTheDocs page is editable at Github, and you can see the source. You can also see it rendered at Github, and you can also see it rendered at ReadTheDocs. If they wanted to make a PDF, or some other format, they could.
  • #42: Remember reStructuredText designed to work with Python functions originally Look at RackSpace implementations Stripe’s API docs General principle: Write a script that pulls content out of code and into a markup file, which is then processed into documentation DRY (Don’t Repeat Yourself) I have done so much copy and paste in my life, but you are setting yourself up for error. We need to automate!
  • #43: Automation is what makes Agile work, what makes dev ops work, and what will make markup languages work for you. If ever you find yourself copying and pasting, see if there’s a way you can automate that. Having continuously updated docs relies on automation. What are some examples of automation that you use?
  • #44: Templates, variables, planning, thinking – markup languages are a tool, but technical documentation still requires planning and organizing.
  • #45: Why we left custom XML behind.