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
Ad

More Related Content

What's hot (20)

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

Viewers also liked (8)

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

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

Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
StreamNative
 
Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018
Den Delimarsky
 
Apache Content Technologies
Apache Content TechnologiesApache Content Technologies
Apache Content Technologies
gagravarr
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
gagravarr
 
Let's create a multilingual site in WordPress
Let's create a multilingual site in WordPressLet's create a multilingual site in WordPress
Let's create a multilingual site in WordPress
Marko Heijnen
 
ITB2024 - Keynote Day 1 - Ortus Solutions.pdf
ITB2024 - Keynote Day 1 - Ortus Solutions.pdfITB2024 - Keynote Day 1 - Ortus Solutions.pdf
ITB2024 - Keynote Day 1 - Ortus Solutions.pdf
Ortus Solutions, Corp
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
Thomas Daly
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluz
Ricard Clau
 
A deep dive into python and it's position in the programming landscape.pptx
A deep dive into python and it's position in the programming landscape.pptxA deep dive into python and it's position in the programming landscape.pptx
A deep dive into python and it's position in the programming landscape.pptx
Murugan Murugan
 
Domain Specific Development using T4
Domain Specific Development using T4Domain Specific Development using T4
Domain Specific Development using T4
Joubin Najmaie
 
Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital Workplace
Jen Wei Lee
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 
OpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot CampOpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot Camp
Anne Gentle
 
Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5
Dennis Zhuravlev (a.k.a. Crane)
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Radhika Puthiyetath
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
Reuven Lerner
 
Lean and Collaborative Content - Workshop
Lean and Collaborative Content - WorkshopLean and Collaborative Content - Workshop
Lean and Collaborative Content - Workshop
IXIASOFT
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Lucas Jellema
 
Olympya web-tools 2011
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011
Paulo Mattos
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
Bill Ayers
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
StreamNative
 
Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018
Den Delimarsky
 
Apache Content Technologies
Apache Content TechnologiesApache Content Technologies
Apache Content Technologies
gagravarr
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
gagravarr
 
Let's create a multilingual site in WordPress
Let's create a multilingual site in WordPressLet's create a multilingual site in WordPress
Let's create a multilingual site in WordPress
Marko Heijnen
 
ITB2024 - Keynote Day 1 - Ortus Solutions.pdf
ITB2024 - Keynote Day 1 - Ortus Solutions.pdfITB2024 - Keynote Day 1 - Ortus Solutions.pdf
ITB2024 - Keynote Day 1 - Ortus Solutions.pdf
Ortus Solutions, Corp
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
Thomas Daly
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluz
Ricard Clau
 
A deep dive into python and it's position in the programming landscape.pptx
A deep dive into python and it's position in the programming landscape.pptxA deep dive into python and it's position in the programming landscape.pptx
A deep dive into python and it's position in the programming landscape.pptx
Murugan Murugan
 
Domain Specific Development using T4
Domain Specific Development using T4Domain Specific Development using T4
Domain Specific Development using T4
Joubin Najmaie
 
Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital Workplace
Jen Wei Lee
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 
OpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot CampOpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot Camp
Anne Gentle
 
Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5
Dennis Zhuravlev (a.k.a. Crane)
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Radhika Puthiyetath
 
Lean and Collaborative Content - Workshop
Lean and Collaborative Content - WorkshopLean and Collaborative Content - Workshop
Lean and Collaborative Content - Workshop
IXIASOFT
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Lucas Jellema
 
Olympya web-tools 2011
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011
Paulo Mattos
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
Bill Ayers
 
Ad

Recently uploaded (20)

Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Salesforce Aged Complex Org Revitalization Process .pdf
Salesforce Aged Complex Org Revitalization Process .pdfSalesforce Aged Complex Org Revitalization Process .pdf
Salesforce Aged Complex Org Revitalization Process .pdf
SRINIVASARAO PUSULURI
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Agentic AI Use Cases using GenAI LLM models
Agentic AI Use Cases using GenAI LLM modelsAgentic AI Use Cases using GenAI LLM models
Agentic AI Use Cases using GenAI LLM models
Manish Chopra
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Adobe Photoshop Lightroom CC 2025 Crack Latest Version
Adobe Photoshop Lightroom CC 2025 Crack Latest VersionAdobe Photoshop Lightroom CC 2025 Crack Latest Version
Adobe Photoshop Lightroom CC 2025 Crack Latest Version
usmanhidray
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Xforce Keygen 64-bit AutoCAD 2025 Crack
Xforce Keygen 64-bit AutoCAD 2025  CrackXforce Keygen 64-bit AutoCAD 2025  Crack
Xforce Keygen 64-bit AutoCAD 2025 Crack
usmanhidray
 
Adobe Illustrator Crack | Free Download & Install Illustrator
Adobe Illustrator Crack | Free Download & Install IllustratorAdobe Illustrator Crack | Free Download & Install Illustrator
Adobe Illustrator Crack | Free Download & Install Illustrator
usmanhidray
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Sales Deck SentinelOne Singularity Platform.pptx
Sales Deck SentinelOne Singularity Platform.pptxSales Deck SentinelOne Singularity Platform.pptx
Sales Deck SentinelOne Singularity Platform.pptx
EliandoLawnote
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Salesforce Aged Complex Org Revitalization Process .pdf
Salesforce Aged Complex Org Revitalization Process .pdfSalesforce Aged Complex Org Revitalization Process .pdf
Salesforce Aged Complex Org Revitalization Process .pdf
SRINIVASARAO PUSULURI
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Agentic AI Use Cases using GenAI LLM models
Agentic AI Use Cases using GenAI LLM modelsAgentic AI Use Cases using GenAI LLM models
Agentic AI Use Cases using GenAI LLM models
Manish Chopra
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
Adobe Photoshop Lightroom CC 2025 Crack Latest Version
Adobe Photoshop Lightroom CC 2025 Crack Latest VersionAdobe Photoshop Lightroom CC 2025 Crack Latest Version
Adobe Photoshop Lightroom CC 2025 Crack Latest Version
usmanhidray
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Xforce Keygen 64-bit AutoCAD 2025 Crack
Xforce Keygen 64-bit AutoCAD 2025  CrackXforce Keygen 64-bit AutoCAD 2025  Crack
Xforce Keygen 64-bit AutoCAD 2025 Crack
usmanhidray
 
Adobe Illustrator Crack | Free Download & Install Illustrator
Adobe Illustrator Crack | Free Download & Install IllustratorAdobe Illustrator Crack | Free Download & Install Illustrator
Adobe Illustrator Crack | Free Download & Install Illustrator
usmanhidray
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Sales Deck SentinelOne Singularity Platform.pptx
Sales Deck SentinelOne Singularity Platform.pptxSales Deck SentinelOne Singularity Platform.pptx
Sales Deck SentinelOne Singularity Platform.pptx
EliandoLawnote
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 

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.