Top Banner
MARKUP LANGUAGES AND WARP-SPEED DOCUMENTATION Lois Patterson – Presentation
68

Lois Patterson: Markup Languages and Warp-Speed Documentation

Jan 06, 2017

Download

Jack Molisani
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lois Patterson:  Markup Languages and Warp-Speed Documentation

MARKUP LANGUAGES AND WARP-SPEED

DOCUMENTATION

Lois Patterson – Presentation

Page 2: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 3: Lois Patterson:  Markup Languages and Warp-Speed Documentation

In the olden days …

Lois Patterson - Presentation

Page 4: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Today’s demands

• Weekly, daily, hourly releases

Lois Patterson - Presentation

Page 5: Lois Patterson:  Markup Languages and Warp-Speed Documentation

How about you?

• What type of team?

Lois Patterson - Presentation

Page 6: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Agile development

• Agile workflows <-> continual, timely updates of code and docs

Lois Patterson - Presentation

Page 7: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Are you agile?

Lois Patterson - Presentation

Page 8: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Book recommendation:Modern Technical Writing: An Introduction to Software Documentation Kindle Edition

by Andrew Etter

Lois Patterson - Presentation

Page 9: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Documentation is not separate from the product

• Part of the product, embedded in the product

Lois Patterson - Presentation

Page 10: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Dev ops and doc ops

• Dev ops, doc ops

• Full stack approach

Lois Patterson - Presentation

Page 11: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Markup languages and doc ops

• Simplify!

o Writing

o Docs production

o Integration of docs with product

Lois Patterson - Presentation

Page 12: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 13: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Simple vs. complex markup languages

• DITA and DocBook

• reStructuredText, Markdown, and AsciiDoc

• Overhead versus structure

Lois Patterson - Presentation

Page 14: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 15: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Proprietary vs. open source

• Expensive and difficult tools, limited licenses

• Free tools, unlimited users

Lois Patterson - Presentation

Page 16: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 17: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Let’s look at Markdown

• My portfolio page at GitHub

Lois Patterson - Presentation

Page 18: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Lois Patterson - Presentation

Page 19: Lois Patterson:  Markup Languages and Warp-Speed Documentation

More about Github

• 35 million repositories!

Lois Patterson - Presentation

Page 20: Lois Patterson:  Markup Languages and Warp-Speed Documentation

GitHub, markup languages, and collaborative culture

• Github as an exemplar

• Full engagement from team

• Widespread contributions

• We’re in this together

Lois Patterson - Presentation

Page 21: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Collaborative culture

Lois Patterson - Presentation

Page 22: Lois Patterson:  Markup Languages and Warp-Speed Documentation

You can be a contributor

• Help out open source software

• Learn new technologies

• Build your portfolio

Lois Patterson - Presentation

Page 23: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Do you have a Github site?

• Will you get a Github site?

Lois Patterson - Presentation

Page 24: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Nitty-gritty

Lois Patterson - Presentation

Page 25: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 26: Lois Patterson:  Markup Languages and Warp-Speed Documentation

reStructuredText

Lois Patterson - Presentation

Page 27: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 28: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 29: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Sample reStructuredText template

Lois Patterson - Presentation

Page 30: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Sample reStructuredText template

Lois Patterson - Presentation

Page 31: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Look at a specific example

Lois Patterson - Presentation

Page 32: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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`.

Page 33: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Sphinx transforms restructuredText

Page 34: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Compare restructuredText to DITA XML

Page 35: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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>

Page 36: Lois Patterson:  Markup Languages and Warp-Speed Documentation

From source to docs with Sphinx

Page 37: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 38: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 39: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 40: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 41: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Incorporating content from code

• Pull content from the code

• DRY (Don’t Repeat Yourself)

Lois Patterson - Presentation

Page 42: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Automate, automate, automate

Lois Patterson - Presentation

Page 43: Lois Patterson:  Markup Languages and Warp-Speed Documentation

Organization – still important

Lois Patterson - Presentation

Page 44: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 45: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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!

Page 46: Lois Patterson:  Markup Languages and Warp-Speed Documentation

MORE BENEFITS

• Everyone writes

• Tool-agnostic (emacs, vim, Notepad++, SublimeText, whatever you love)

• Version-control friendly

Page 47: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 48: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 49: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 50: Lois Patterson:  Markup Languages and Warp-Speed Documentation

CREATE RESTRUCTUREDTEXT TEMPLATES

• restructuredText allows you to author without much structure (ironic?)

• Enforce structure with templates and code reviews.

Page 51: Lois Patterson:  Markup Languages and Warp-Speed Documentation

CONVERT CONTENT

• Pandoc!http://www.pandoc.org/

• Semi-manualCustom scripts

Page 52: Lois Patterson:  Markup Languages and Warp-Speed Documentation

ALWAYS BE BUILDING

Know how your docs look at any moment. (Continuous integration for docs.)

Page 53: Lois Patterson:  Markup Languages and Warp-Speed Documentation

INTEGRATE INTO PRODUCT BUILD SYSTEM

Page 54: Lois Patterson:  Markup Languages and Warp-Speed Documentation

CODE PRACTICES FOR DOCUMENTATION

• Code review

• Version control

• Automated testing

Page 55: Lois Patterson:  Markup Languages and Warp-Speed Documentation

WHAT ABOUT?

• Content reuse?

• Content management systems?

Page 56: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 57: Lois Patterson:  Markup Languages and Warp-Speed Documentation

CUSTOM EXTENSIONS

Docs must pull information from the code in unique ways.

Page 58: Lois Patterson:  Markup Languages and Warp-Speed Documentation

CREATE, USE MORE EXTENSIONS

Sphinx has so many options, just finding what is available takes time.

Page 59: Lois Patterson:  Markup Languages and Warp-Speed Documentation

WHAT COULD HAVE BEEN BETTER

NOT SO BLAMELESS POST-MORTEM

Page 60: Lois Patterson:  Markup Languages and Warp-Speed Documentation

COULD HAVE STARTED SOONER

But Sphinx did not exist way back when ….

Page 61: Lois Patterson:  Markup Languages and Warp-Speed Documentation

MORE AUTOMATION

Lack of time, but still …

Page 62: Lois Patterson:  Markup Languages and Warp-Speed Documentation

MAKE TASKS MORE GRANULAR

Too big and scary a task? Break it down!

Page 63: Lois Patterson:  Markup Languages and Warp-Speed Documentation

SHOULD YOU USE MARKUP LANGUAGES?

Page 64: Lois Patterson:  Markup Languages and Warp-Speed Documentation

IT DEPENDS

Consider:

• Markdown (different flavors)

• AsciiDoc

• DocBook

• DITA XML

• Or ?

Page 65: Lois Patterson:  Markup Languages and Warp-Speed Documentation

WHAT NOT TO DO

• Design your custom bespoke system from scratch by yourself.

• Except if …

Page 66: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 67: Lois Patterson:  Markup Languages and Warp-Speed Documentation

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

Page 68: Lois Patterson:  Markup Languages and Warp-Speed Documentation

THANK YOU!

• Lois Patterson

[email protected]

• Twitter: @LoisRP

• Tumblr: http://www.AnAPIaDay.tumblr.com