markup languages and warp-speed documentation
Post on 06-Jan-2017
181 Views
Preview:
TRANSCRIPT
MARKUP LANGUAGES AND WARP-SPEED DOCUMENTATION
Lois Patterson – Presentation
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 Writingo Docs productiono 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
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
Lois Patterson - Presentation
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
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.
ALWAYS BE BUILDINGKnow 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 EXTENSIONSDocs 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 BETTERNOT 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 GRANULARToo big and scary a task? Break it down!
SHOULD YOU USE MARKUP LANGUAGES?
IT DEPENDSConsider:
• 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
Lois Patterson - Presentation
In summary
• 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
top related