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)

PPTX
Switching to Oracle Document Cloud
Brian Huff
 
ODP
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
gagravarr
 
PPTX
To the cloud!
SPC Adriatics
 
PDF
DocOps: Agile Content Development In Practice - Nils Bier, tekom Jahrestagung...
K15t
 
PPTX
From 0 to 100 with Content types
Joanne Klein
 
PPTX
If SharePoint had Warning Labels
Joanne Klein
 
PPTX
DITA Quick Start Webinar Series: Getting Started with Information Architecture
Suite Solutions
 
PPTX
Overview of SuiteHelp 3.1 for DITA
Suite Solutions
 
PDF
Assuring the code quality of share point solutions and apps - Matthias Einig
SPC Adriatics
 
PPTX
Customizing Microsoft Teams Provisioning and-Governance
Olli Jääskeläinen
 
PDF
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
European Collaboration Summit
 
PPTX
EDS selection & implementation @ CCC
Molly Beestrum
 
PDF
aOS Mumbai Aall about documents o365 04/04/2017
Sébastien Paulet
 
PDF
Scaling to Infinity - Open Source meets Big Data
Treasure Data, Inc.
 
PPTX
Building Software Backend (Web API)
Alexander Goida
 
PPT
Readyportal Platform - why it's faster and more affordable
Readyportal
 
PPTX
AWS for the Java Developer
Rory Preddy
 
PPTX
Making Articles Easier: Implementing OCLC Knowledge Base for Direct Requestin...
alisonjohnson53
 
PPTX
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
European Collaboration Summit
 
PPTX
SharePoint and javascript – modern development
Yannick Plenevaux
 
Switching to Oracle Document Cloud
Brian Huff
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
gagravarr
 
To the cloud!
SPC Adriatics
 
DocOps: Agile Content Development In Practice - Nils Bier, tekom Jahrestagung...
K15t
 
From 0 to 100 with Content types
Joanne Klein
 
If SharePoint had Warning Labels
Joanne Klein
 
DITA Quick Start Webinar Series: Getting Started with Information Architecture
Suite Solutions
 
Overview of SuiteHelp 3.1 for DITA
Suite Solutions
 
Assuring the code quality of share point solutions and apps - Matthias Einig
SPC Adriatics
 
Customizing Microsoft Teams Provisioning and-Governance
Olli Jääskeläinen
 
[Collinge] Office 365 Enterprise Network Connectivity Using Published Office ...
European Collaboration Summit
 
EDS selection & implementation @ CCC
Molly Beestrum
 
aOS Mumbai Aall about documents o365 04/04/2017
Sébastien Paulet
 
Scaling to Infinity - Open Source meets Big Data
Treasure Data, Inc.
 
Building Software Backend (Web API)
Alexander Goida
 
Readyportal Platform - why it's faster and more affordable
Readyportal
 
AWS for the Java Developer
Rory Preddy
 
Making Articles Easier: Implementing OCLC Knowledge Base for Direct Requestin...
alisonjohnson53
 
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
European Collaboration Summit
 
SharePoint and javascript – modern development
Yannick Plenevaux
 

Viewers also liked (16)

PDF
3conseils pour augmenter le taux d'ouverture des newsletters
Forestier Mégane
 
PDF
Scott Abel: The Cognitive Era and the Future of Content
Jack Molisani
 
PDF
Importance of global crowdfunding for entrepreneurs
Crowdinvest
 
PDF
Conseil pour créer son univers de marque
Forestier Mégane
 
PDF
Joe Gollner: Tales from the Crypt
Jack Molisani
 
PDF
INFLUENCE: A Brain-based Approach for Stand-out Leadership
Dan Beverly
 
PDF
Design : le diable est dans les détails
Amelie Boucher
 
PPTX
Поздравление с днём матери группы "Лучики"
ura-ptichka
 
PPTX
Мастер класс с родителями и детьми "Игрушка из помпонов"
ura-ptichka
 
PPTX
Лето в группе №6 «РАДУГА» «Неделя открытий и опытов»
ura-ptichka
 
PPTX
Месячник безопасности 14 группа
ura-ptichka
 
PPTX
RDV des technologies propres 2013 | Novacab
Sherbrooke Innopole
 
PDF
Optimiser son référencement WordPress - QueDuWeb 2016
Daniel Roch
 
PDF
Searching higher up the funnel
Jono Alderson
 
PDF
Questionnements sur l'Internet prêt-à-porter // Paris Web 2016
Amelie Boucher
 
PPT
Les bonnes pratiques pour développer son activité commerciale sur les réseaux...
Vincent Pereira
 
3conseils pour augmenter le taux d'ouverture des newsletters
Forestier Mégane
 
Scott Abel: The Cognitive Era and the Future of Content
Jack Molisani
 
Importance of global crowdfunding for entrepreneurs
Crowdinvest
 
Conseil pour créer son univers de marque
Forestier Mégane
 
Joe Gollner: Tales from the Crypt
Jack Molisani
 
INFLUENCE: A Brain-based Approach for Stand-out Leadership
Dan Beverly
 
Design : le diable est dans les détails
Amelie Boucher
 
Поздравление с днём матери группы "Лучики"
ura-ptichka
 
Мастер класс с родителями и детьми "Игрушка из помпонов"
ura-ptichka
 
Лето в группе №6 «РАДУГА» «Неделя открытий и опытов»
ura-ptichka
 
Месячник безопасности 14 группа
ura-ptichka
 
RDV des technologies propres 2013 | Novacab
Sherbrooke Innopole
 
Optimiser son référencement WordPress - QueDuWeb 2016
Daniel Roch
 
Searching higher up the funnel
Jono Alderson
 
Questionnements sur l'Internet prêt-à-porter // Paris Web 2016
Amelie Boucher
 
Les bonnes pratiques pour développer son activité commerciale sur les réseaux...
Vincent Pereira
 
Ad

Similar to Lois Patterson: 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

More from Jack Molisani (20)

PDF
Rahel Bailie - Content Operations Comes Of Age.pdf
Jack Molisani
 
PDF
Negotiation skills the missing ingredient to career success psstc
Jack Molisani
 
PPT
Honing your workplace negotiating skills
Jack Molisani
 
PPT
Career advancement through personal branding
Jack Molisani
 
PPT
How to ace an interview using a portfolio
Jack Molisani
 
PPT
The top 10 mistakes professional make when looking for work
Jack Molisani
 
PPT
Resume and job hunting secrets that might surpise you
Jack Molisani
 
PPT
Negotiation Skills: The Missing Ingredient to Career Success
Jack Molisani
 
PPTX
Let’s Work Together: How SASB Implemented DITA and Changed their Corporate Cu...
Jack Molisani
 
PDF
Helen St Denis: How to Prepare your Content for Conversion to DITA
Jack Molisani
 
PDF
Les Burnham and Patrick Baker: Collecting DITA Content Contributions from SMEs
Jack Molisani
 
PDF
Christpher Ward: What's in a Mission Statement
Jack Molisani
 
PDF
Christopher Ward and Bernard Aschwanden: Metrics That Matter
Jack Molisani
 
PDF
Lorraine Aochi: Contributions to Help Content
Jack Molisani
 
PDF
Rob Hanna: Leveraging Cognitive Science to Improve Topic- Based Authoring
Jack Molisani
 
PPTX
The Future of Learning
Jack Molisani
 
PDF
Matt Sullivan: Bootstrapping Your Initiatives
Jack Molisani
 
PDF
Steve Huffman: You Want It, Now Sell it to Management
Jack Molisani
 
PDF
Andrew Thomas: Frankenstein's Monster
Jack Molisani
 
PDF
Jeff Engle: Taking the Show on the Road
Jack Molisani
 
Rahel Bailie - Content Operations Comes Of Age.pdf
Jack Molisani
 
Negotiation skills the missing ingredient to career success psstc
Jack Molisani
 
Honing your workplace negotiating skills
Jack Molisani
 
Career advancement through personal branding
Jack Molisani
 
How to ace an interview using a portfolio
Jack Molisani
 
The top 10 mistakes professional make when looking for work
Jack Molisani
 
Resume and job hunting secrets that might surpise you
Jack Molisani
 
Negotiation Skills: The Missing Ingredient to Career Success
Jack Molisani
 
Let’s Work Together: How SASB Implemented DITA and Changed their Corporate Cu...
Jack Molisani
 
Helen St Denis: How to Prepare your Content for Conversion to DITA
Jack Molisani
 
Les Burnham and Patrick Baker: Collecting DITA Content Contributions from SMEs
Jack Molisani
 
Christpher Ward: What's in a Mission Statement
Jack Molisani
 
Christopher Ward and Bernard Aschwanden: Metrics That Matter
Jack Molisani
 
Lorraine Aochi: Contributions to Help Content
Jack Molisani
 
Rob Hanna: Leveraging Cognitive Science to Improve Topic- Based Authoring
Jack Molisani
 
The Future of Learning
Jack Molisani
 
Matt Sullivan: Bootstrapping Your Initiatives
Jack Molisani
 
Steve Huffman: You Want It, Now Sell it to Management
Jack Molisani
 
Andrew Thomas: Frankenstein's Monster
Jack Molisani
 
Jeff Engle: Taking the Show on the Road
Jack Molisani
 

Recently uploaded (20)

PDF
CISSP Domain 4: Communication and Network Security
VICTOR MAESTRE RAMIREZ
 
PDF
CISSP Domain 3: Security Architecture and Engineering
VICTOR MAESTRE RAMIREZ
 
PPTX
30 Lessons in 300 Words_ A Mini-Guide to Sensitive Communications_AI PPT Make...
Jean Battah
 
PPTX
L13 ODL___ Strategy Evaluation.ppt Leadership Coursex
salahuddinhamzah2
 
PDF
CISSP Domain 1: Security and Risk Management
VICTOR MAESTRE RAMIREZ
 
PDF
Pokemon Leadership Lessons_2025WhitePaper.pdf
katjadm
 
PDF
Can an Inspection Test Plan be modified during a project?
Writegenic AI
 
PPTX
Ideation and Product Innovation: Solving Problems
Dr NIkhill Alok Jha
 
PPT
Fire Extinguisher Training powerpoint .ppt
sumanthramlakkan
 
PDF
ANIn Bengaluru 2025 | Workshop- Innovate For Business Agility: Idea Generatio...
AgileNetwork
 
PPT
Fire Extinguishers Suppression Systems.ppt
sumanthramlakkan
 
PPT
Fire Safety Main powerpoint for training .ppt
sumanthramlakkan
 
PDF
Is an Information Security Policy Necessary for Small Businesses?
Writegenic AI
 
PPT
L4 ODL Motivation_.ppt for Leadership Course
salahuddinhamzah2
 
PPTX
Emergency Preparedness and Response.pptx
sumanthramlakkan
 
PDF
CISSP Domain 2: Asset Security - InfoSec
VICTOR MAESTRE RAMIREZ
 
PDF
Labirintos morais: um estudo sobre ética
Ivomar Schuler da Costa
 
PPT
leadership types and creativity in management.ppt
SubrataPaul74
 
PPTX
Caleb followed God with his whole heart.pptx
RaraSolliborDumalian
 
CISSP Domain 4: Communication and Network Security
VICTOR MAESTRE RAMIREZ
 
CISSP Domain 3: Security Architecture and Engineering
VICTOR MAESTRE RAMIREZ
 
30 Lessons in 300 Words_ A Mini-Guide to Sensitive Communications_AI PPT Make...
Jean Battah
 
L13 ODL___ Strategy Evaluation.ppt Leadership Coursex
salahuddinhamzah2
 
CISSP Domain 1: Security and Risk Management
VICTOR MAESTRE RAMIREZ
 
Pokemon Leadership Lessons_2025WhitePaper.pdf
katjadm
 
Can an Inspection Test Plan be modified during a project?
Writegenic AI
 
Ideation and Product Innovation: Solving Problems
Dr NIkhill Alok Jha
 
Fire Extinguisher Training powerpoint .ppt
sumanthramlakkan
 
ANIn Bengaluru 2025 | Workshop- Innovate For Business Agility: Idea Generatio...
AgileNetwork
 
Fire Extinguishers Suppression Systems.ppt
sumanthramlakkan
 
Fire Safety Main powerpoint for training .ppt
sumanthramlakkan
 
Is an Information Security Policy Necessary for Small Businesses?
Writegenic AI
 
L4 ODL Motivation_.ppt for Leadership Course
salahuddinhamzah2
 
Emergency Preparedness and Response.pptx
sumanthramlakkan
 
CISSP Domain 2: Asset Security - InfoSec
VICTOR MAESTRE RAMIREZ
 
Labirintos morais: um estudo sobre ética
Ivomar Schuler da Costa
 
leadership types and creativity in management.ppt
SubrataPaul74
 
Caleb followed God with his whole heart.pptx
RaraSolliborDumalian
 

Lois Patterson: 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