SlideShare a Scribd company logo
1 of 25
Download to read offline
Doc Like an
Egyptian
Dru Lavigne
Documentation Lead, iXsystems
FOSSETCON, November 21, 2015
All the old paintings on the tombs,
They do the sand dance, don't you know?
If they move too quick (oh whey oh)
They're falling down like a domino.
Walk Like an Egyptian, The Bangles
Outline
Overview of documentation goals and inherent
difficulties
Introduction to Sphinx as part of a documentation
solution
Disclaimer: based on my experiences. While from
an open source perspective, discussion also
applies to proprietary documentation.
In Theory....Docs:
are published with each software release...
in multiple formats which suit the needs/devices of
that software's user base...
in multiple translations which match that
software's global audience...
and are grammatically and technically correct...
all using open source tools, of course.
The Reality
<insert>giggles or tears here</insert>
Docs are incomplete or outdated (assuming they
even exist)
Docs are given lower priority than code
Noone wants to write docs / Noone reads docs
anyways
No perfect doc management solution exists (open
source or proprietary)
Incomplete/Outdated Docs
Software is a MOVING target with varying release
schedules
Outdated, unversioned docs are actually worse
than no docs
Need process for versioning docs, providing
revision control, archiving older docs, and helping
people find the correct docs for their software
version
I Get No Respect Around Here...
Cultural issue: docs are equally important to code
and both are equally important to Q/A
Know your audience and give them credit (users
actually want readable/usable documentation)
Train projects' question answerers to gently point
users to the pertinent section of the docs and to
create bug reports (or update docs) when no
pertinent section exists
Finding the “Perfect” Tool
Markup (Writing Format)
Is it easy to learn or a significant barrier to entry?
(e.g. WYSIWYG or wiki markup vs XML or LaTeX)
Are editors available which understand the syntax?
Does it support the required layout? (code
excerpts, table of contents, glossary, searchability,
internal and external links, indexes, images, charts,
localization, notes/warnings, footnotes, etc.)
Finding the “Perfect” Tool
Outputs (Published Format)
Dru's 1st Law of Doc Tools: the number and
quality of the outputs is inversely proportional to the
ease of the markup language
Dru's 2nd
Law of Doc Tools: the fewer the number
of doc maintainers, the higher the number of
desired outputs
Understand your audience and your project's
limitations
Some Painful Examples
doc/odt
Good: WYSIWYG editor available to any author
Bad: templates are painful
- collaborative editing and tracking changes is often
a tangled mess of emails (who has the latest
version?), editing conflicts, or waiting for someone
else to make their changes
- outputs are limited and require various degrees of
cleanup
Some Painful Examples
wiki
Good: entry barrier fairly low and syntax quick to
learn
Bad: no concept of ToC, content flow, or versioning
- if you build it, they don't necessarily come (except
for the spambots...)
- outputs are very limited and typically require a lot
of cleanup; translation tools are clunky
Some Painful Examples
LaTeX
Good: multiple outputs integrate well into build and
translation systems
Bad: very high barrier to entry as it takes a
dedicated time (and interest) commitment to learn
(and teach) the formatting language
Sphinx Features
Relatively easy-to-learn formatting language
Supports common outputs: HTML, PDF, ePUB,
LaTeX, Texinfo, man pages, txt, API docs
Provides a number of extensions (eg automatic
figure numbering)
Automatic generation of ToC, index, glossary
Source files are text and easily integrate into
existing revision control, translation, build, and CI
infrastructures
Sphinx Features
Fully customizable conf.py for controlling doc
layout
Several useful built-in builders (eg link checker)
Several built-in themes and support for custom
themes; layout fully customizable using CSS
Anything can be linked (figures, keywords,
headings, etc.)
Writers can use any text editor on any system
with Python installed (or issue git pull requests)
Sphinx Limitations
Some odd formatting limitations require CSS
workarounds (eg bold italic)
Search SUCKS (and ironically there is a search
engine of the same name)
Documentation is limited and needs more usage
examples
Sample Text
Sample HTML Output
Sample Pootle Interface
Helpful Tips
What About Existing Docs?
Do you plan to convert existing docs or archive
those in current format and start with new docs?
Open source converter utilities exist for most
formats, often mutliple utilities per format
Experiment by converting a small doc that
contains most of your formatting requirements
Expect to spend time cleaning up the conversion
Helpful Tips
Determine Your Publishing Needs
Is your goal to have the docs match a specific
software version? to have only one version that is
the latest and greatest?
What output formats are required? Versioned
PDFs? HTML on your project page? Built into the
software itself as a help system?
Helpful Tips
Review Your Code Repository
You do have one, right? (if not, you need one!)
Determine the required doc versioning system
and where to commit your .rst files within the
existing code repository
Update the README.md (or equivalent) with
instructions for authors to create their own doc
build environment
Helpful Tips
Create a Cheat Sheet
Review your converted docs and make a list of
the formatting tags and conventions used by your
project
Include any gotchas to help new authors quickly
get up-to-speed
Publish the cheat sheet (eg README.md in doc
directory of repo)
Helpful Tips
Spend some time playing with conf.py and
experiment with existing themes BEFORE writing
new docs (themes change the layout which may
affect how you use formatting tags)
Research, experiment with, and install extensions
that are useful for your docs
Determine how much layout customization is
required and who has the CSS skills for extra
customizations
Resources
http://sphinx-doc.org/
http://pootle.translatehouse.org/
Questions
Contact:
dru@freebsd.org
URL to Slides:
http://slideshare.net/dlavigne/fossetcon15

More Related Content

Viewers also liked

Elc kick off_presentation_tolmezzo
Elc kick off_presentation_tolmezzoElc kick off_presentation_tolmezzo
Elc kick off_presentation_tolmezzocramars
 
Avito Контекст
Avito КонтекстAvito Контекст
Avito КонтекстAvito Context
 
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...mabasta
 
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015 البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015 Tiznitpps Pps
 
Lesson9 Create and Modify Fields
Lesson9 Create and Modify FieldsLesson9 Create and Modify Fields
Lesson9 Create and Modify FieldsAbdullatif Tarakji
 
Resume_Pankaj Sharma
Resume_Pankaj SharmaResume_Pankaj Sharma
Resume_Pankaj SharmaPankaj Sharma
 
Tomato Genome Build: SL2.5 to SL3.0
Tomato Genome Build: SL2.5 to SL3.0Tomato Genome Build: SL2.5 to SL3.0
Tomato Genome Build: SL2.5 to SL3.0solgenomics
 
48051567 puzzles
48051567 puzzles48051567 puzzles
48051567 puzzlesvijaya89
 
Il lavoro dell'apicoltore
Il lavoro dell'apicoltoreIl lavoro dell'apicoltore
Il lavoro dell'apicoltorecramars
 
Corso sulle api di Cesare
Corso sulle api di CesareCorso sulle api di Cesare
Corso sulle api di Cesarecramars
 
Why Is Excel VBA So Important For Banks ?
Why Is Excel VBA So Important For Banks ?Why Is Excel VBA So Important For Banks ?
Why Is Excel VBA So Important For Banks ?Jack Tellington
 
Creating poetry
Creating poetryCreating poetry
Creating poetrySeenglish
 
Ganglión de muñeca
Ganglión de muñecaGanglión de muñeca
Ganglión de muñecaGaby Bonilla
 

Viewers also liked (17)

C sharp
C sharpC sharp
C sharp
 
Elc kick off_presentation_tolmezzo
Elc kick off_presentation_tolmezzoElc kick off_presentation_tolmezzo
Elc kick off_presentation_tolmezzo
 
Avito Контекст
Avito КонтекстAvito Контекст
Avito Контекст
 
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
Persistenza Del Virus Hiv Nei Pazienti Sottoposti A Haart Valutazione Delle P...
 
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015 البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
البرنامج المحلي لحزب التقدم والاشتراكية - الانتخابات الجماعية ليوم 4 شتنبر 2015
 
Lesson9 Create and Modify Fields
Lesson9 Create and Modify FieldsLesson9 Create and Modify Fields
Lesson9 Create and Modify Fields
 
Resume_Pankaj Sharma
Resume_Pankaj SharmaResume_Pankaj Sharma
Resume_Pankaj Sharma
 
Tomato Genome Build: SL2.5 to SL3.0
Tomato Genome Build: SL2.5 to SL3.0Tomato Genome Build: SL2.5 to SL3.0
Tomato Genome Build: SL2.5 to SL3.0
 
48051567 puzzles
48051567 puzzles48051567 puzzles
48051567 puzzles
 
Il lavoro dell'apicoltore
Il lavoro dell'apicoltoreIl lavoro dell'apicoltore
Il lavoro dell'apicoltore
 
Corso sulle api di Cesare
Corso sulle api di CesareCorso sulle api di Cesare
Corso sulle api di Cesare
 
коливальний рух
коливальний рухколивальний рух
коливальний рух
 
Why Is Excel VBA So Important For Banks ?
Why Is Excel VBA So Important For Banks ?Why Is Excel VBA So Important For Banks ?
Why Is Excel VBA So Important For Banks ?
 
Creating poetry
Creating poetryCreating poetry
Creating poetry
 
Bakterid
Bakterid Bakterid
Bakterid
 
Ganglión de muñeca
Ganglión de muñecaGanglión de muñeca
Ganglión de muñeca
 
Clavo Intramedular y Placa Puente
Clavo Intramedular y Placa PuenteClavo Intramedular y Placa Puente
Clavo Intramedular y Placa Puente
 

Similar to Fossetcon15

Projects In Foss
Projects In FossProjects In Foss
Projects In Fossviggyprabhu
 
Docs as-code-missing.-manual
Docs as-code-missing.-manualDocs as-code-missing.-manual
Docs as-code-missing.-manualMargaret Eker
 
Software for paper formatting
Software for paper formatting Software for paper formatting
Software for paper formatting salonibansal21
 
Markdown - friend or foe?
Markdown - friend or foe?Markdown - friend or foe?
Markdown - friend or foe?Ellis Pratt
 
Why documentation osidays
Why documentation osidaysWhy documentation osidays
Why documentation osidaysBastian Feder
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An IntroductionAkash Tandon
 
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
APIs And SDKs  Breaking Into And Succeeding In A Specialty MarketAPIs And SDKs  Breaking Into And Succeeding In A Specialty Market
APIs And SDKs Breaking Into And Succeeding In A Specialty MarketBill Dubie
 
Plog2014 doc the-new_deal
Plog2014 doc the-new_dealPlog2014 doc the-new_deal
Plog2014 doc the-new_dealPaul Roeland
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?Markus Voelter
 
Saeed al ali 10 bb
Saeed al ali 10 bbSaeed al ali 10 bb
Saeed al ali 10 bbs3eedAlAli
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011Kristof Van Tomme
 
Creating a compiler for your own language
Creating a compiler for your own languageCreating a compiler for your own language
Creating a compiler for your own languageAndrea Tino
 
DocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileDocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileMary Connor
 
[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic EditorMickael Istria
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLScott Abel
 
Fedora Overview
Fedora OverviewFedora Overview
Fedora Overvieweposthumus
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit TestJill Bell
 

Similar to Fossetcon15 (20)

Projects In Foss
Projects In FossProjects In Foss
Projects In Foss
 
Docs as-code-missing.-manual
Docs as-code-missing.-manualDocs as-code-missing.-manual
Docs as-code-missing.-manual
 
Software for paper formatting
Software for paper formatting Software for paper formatting
Software for paper formatting
 
Niatalk24jan10
Niatalk24jan10Niatalk24jan10
Niatalk24jan10
 
Markdown - friend or foe?
Markdown - friend or foe?Markdown - friend or foe?
Markdown - friend or foe?
 
Why documentation osidays
Why documentation osidaysWhy documentation osidays
Why documentation osidays
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An Introduction
 
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
APIs And SDKs  Breaking Into And Succeeding In A Specialty MarketAPIs And SDKs  Breaking Into And Succeeding In A Specialty Market
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
 
Plog2014 doc the-new_deal
Plog2014 doc the-new_dealPlog2014 doc the-new_deal
Plog2014 doc the-new_deal
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
Saeed al ali 10 bb
Saeed al ali 10 bbSaeed al ali 10 bb
Saeed al ali 10 bb
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011
 
Creating a compiler for your own language
Creating a compiler for your own languageCreating a compiler for your own language
Creating a compiler for your own language
 
DocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileDocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of Agile
 
How to code
How to codeHow to code
How to code
 
[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor[EclipseCon France 2017] Eclipse Platform Generic Editor
[EclipseCon France 2017] Eclipse Platform Generic Editor
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XML
 
Fedora Overview
Fedora OverviewFedora Overview
Fedora Overview
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit Test
 
Fedora Modularity
Fedora ModularityFedora Modularity
Fedora Modularity
 

More from Dru Lavigne

More from Dru Lavigne (20)

Olf2018
Olf2018Olf2018
Olf2018
 
Olf2017
Olf2017Olf2017
Olf2017
 
FreeBSD System Administration Using SysAdm
FreeBSD System Administration Using SysAdmFreeBSD System Administration Using SysAdm
FreeBSD System Administration Using SysAdm
 
Asiabsdcon2017
Asiabsdcon2017Asiabsdcon2017
Asiabsdcon2017
 
Flourish16
Flourish16Flourish16
Flourish16
 
Lfnw15
Lfnw15Lfnw15
Lfnw15
 
Asiabsdcon15
Asiabsdcon15Asiabsdcon15
Asiabsdcon15
 
Scale2015
Scale2015Scale2015
Scale2015
 
Olf2014
Olf2014Olf2014
Olf2014
 
Fossetcon14
Fossetcon14Fossetcon14
Fossetcon14
 
Tlf2014
Tlf2014Tlf2014
Tlf2014
 
Asiabsdcon14 lavigne
Asiabsdcon14 lavigneAsiabsdcon14 lavigne
Asiabsdcon14 lavigne
 
Asiabsdcon14
Asiabsdcon14Asiabsdcon14
Asiabsdcon14
 
Scale2014
Scale2014Scale2014
Scale2014
 
Dru lavigne servers-tutorial
Dru lavigne servers-tutorialDru lavigne servers-tutorial
Dru lavigne servers-tutorial
 
Dru lavigne oss-sysadmin
Dru lavigne oss-sysadminDru lavigne oss-sysadmin
Dru lavigne oss-sysadmin
 
Dru lavigne oss-desktop_apps
Dru lavigne oss-desktop_appsDru lavigne oss-desktop_apps
Dru lavigne oss-desktop_apps
 
Bsd ss
Bsd ssBsd ss
Bsd ss
 
Nycbsdcon14
Nycbsdcon14Nycbsdcon14
Nycbsdcon14
 
Olf2013
Olf2013Olf2013
Olf2013
 

Recently uploaded

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Fossetcon15

  • 1. Doc Like an Egyptian Dru Lavigne Documentation Lead, iXsystems FOSSETCON, November 21, 2015
  • 2. All the old paintings on the tombs, They do the sand dance, don't you know? If they move too quick (oh whey oh) They're falling down like a domino. Walk Like an Egyptian, The Bangles
  • 3. Outline Overview of documentation goals and inherent difficulties Introduction to Sphinx as part of a documentation solution Disclaimer: based on my experiences. While from an open source perspective, discussion also applies to proprietary documentation.
  • 4. In Theory....Docs: are published with each software release... in multiple formats which suit the needs/devices of that software's user base... in multiple translations which match that software's global audience... and are grammatically and technically correct... all using open source tools, of course.
  • 5. The Reality <insert>giggles or tears here</insert> Docs are incomplete or outdated (assuming they even exist) Docs are given lower priority than code Noone wants to write docs / Noone reads docs anyways No perfect doc management solution exists (open source or proprietary)
  • 6. Incomplete/Outdated Docs Software is a MOVING target with varying release schedules Outdated, unversioned docs are actually worse than no docs Need process for versioning docs, providing revision control, archiving older docs, and helping people find the correct docs for their software version
  • 7. I Get No Respect Around Here... Cultural issue: docs are equally important to code and both are equally important to Q/A Know your audience and give them credit (users actually want readable/usable documentation) Train projects' question answerers to gently point users to the pertinent section of the docs and to create bug reports (or update docs) when no pertinent section exists
  • 8. Finding the “Perfect” Tool Markup (Writing Format) Is it easy to learn or a significant barrier to entry? (e.g. WYSIWYG or wiki markup vs XML or LaTeX) Are editors available which understand the syntax? Does it support the required layout? (code excerpts, table of contents, glossary, searchability, internal and external links, indexes, images, charts, localization, notes/warnings, footnotes, etc.)
  • 9. Finding the “Perfect” Tool Outputs (Published Format) Dru's 1st Law of Doc Tools: the number and quality of the outputs is inversely proportional to the ease of the markup language Dru's 2nd Law of Doc Tools: the fewer the number of doc maintainers, the higher the number of desired outputs Understand your audience and your project's limitations
  • 10. Some Painful Examples doc/odt Good: WYSIWYG editor available to any author Bad: templates are painful - collaborative editing and tracking changes is often a tangled mess of emails (who has the latest version?), editing conflicts, or waiting for someone else to make their changes - outputs are limited and require various degrees of cleanup
  • 11. Some Painful Examples wiki Good: entry barrier fairly low and syntax quick to learn Bad: no concept of ToC, content flow, or versioning - if you build it, they don't necessarily come (except for the spambots...) - outputs are very limited and typically require a lot of cleanup; translation tools are clunky
  • 12. Some Painful Examples LaTeX Good: multiple outputs integrate well into build and translation systems Bad: very high barrier to entry as it takes a dedicated time (and interest) commitment to learn (and teach) the formatting language
  • 13. Sphinx Features Relatively easy-to-learn formatting language Supports common outputs: HTML, PDF, ePUB, LaTeX, Texinfo, man pages, txt, API docs Provides a number of extensions (eg automatic figure numbering) Automatic generation of ToC, index, glossary Source files are text and easily integrate into existing revision control, translation, build, and CI infrastructures
  • 14. Sphinx Features Fully customizable conf.py for controlling doc layout Several useful built-in builders (eg link checker) Several built-in themes and support for custom themes; layout fully customizable using CSS Anything can be linked (figures, keywords, headings, etc.) Writers can use any text editor on any system with Python installed (or issue git pull requests)
  • 15. Sphinx Limitations Some odd formatting limitations require CSS workarounds (eg bold italic) Search SUCKS (and ironically there is a search engine of the same name) Documentation is limited and needs more usage examples
  • 19. Helpful Tips What About Existing Docs? Do you plan to convert existing docs or archive those in current format and start with new docs? Open source converter utilities exist for most formats, often mutliple utilities per format Experiment by converting a small doc that contains most of your formatting requirements Expect to spend time cleaning up the conversion
  • 20. Helpful Tips Determine Your Publishing Needs Is your goal to have the docs match a specific software version? to have only one version that is the latest and greatest? What output formats are required? Versioned PDFs? HTML on your project page? Built into the software itself as a help system?
  • 21. Helpful Tips Review Your Code Repository You do have one, right? (if not, you need one!) Determine the required doc versioning system and where to commit your .rst files within the existing code repository Update the README.md (or equivalent) with instructions for authors to create their own doc build environment
  • 22. Helpful Tips Create a Cheat Sheet Review your converted docs and make a list of the formatting tags and conventions used by your project Include any gotchas to help new authors quickly get up-to-speed Publish the cheat sheet (eg README.md in doc directory of repo)
  • 23. Helpful Tips Spend some time playing with conf.py and experiment with existing themes BEFORE writing new docs (themes change the layout which may affect how you use formatting tags) Research, experiment with, and install extensions that are useful for your docs Determine how much layout customization is required and who has the CSS skills for extra customizations