The following is a video recording of this presentation.
"On Sunday, October 19th, I sat down in my San Francisco apartment with a glass of apple cider and a clear mind. After a period of reflection, I had an idea. While I'm not specifically trained as an author of prose, I am trained as an author of code. What would happen if I approached blogging from a software development perspective?"— Blogging like a hacker, Tom Preston-Werner, co-founder of Github
What would happen if we approached software documentation from a software development perspective?
Modern-looking website | » Use Bootstrap |
Re-use across outputs | » Separate config files |
Version each release | » Copy file snaphots |
Authenticate via Salesforce | » Upload into Salesforce |
PDF for pre-sales distribution | » Use Prince XML + script |
Publish to old and new system | » 2 layouts; links == variables |
Integrate design into website | » Namespace classes, body only |
Publish through engineering | » Wait ... build pipeline from git |
Authenticate some content | » Use custom A/B testing tool |
Enable engineers as authors | » Branches, Markdown, Git |
Support localization— 3 langs | » Containers referencing HTML |
Or have your UX team build it
Store content in _includes folder. Then insert like this:
{% include myfile.html %}
Or with parameters:
{% include myfile.html audience="java-developers" %}
{% if site.audience == "administrators" %}
show this to administrators
{% elsif site.audience == "analysts" %}
show this to analysts
{% endif %}
Sample build command:
//build administrators output
jekyll build --config config_administrators.yml --destination ../outputs/admins
//build analysts output
jekyll build --config config_analysts.yml --destination ../outputs/analysts
- title: Overview
output: web, pdf
folderitems:
- title: Get started
url: /index.html
output: web, pdf
type: homepage
- title: Introduction
url: /mydoc_introduction.html
output: web, pdf
- title: Supported features
url: /mydoc_supported_features.html
output: web, pdf
Create the note.html include:
Note: {{include.content}}
Use it like this:
{% include note.html content="Note content here ..." %}
Or live without it.
Or have engineering custom-build it
Output page body to HTML, reincorporate body. Maintain frontmatter.
Or have engineering custom-build it
Tom Johnson
— idratherbewriting.com
— @tomjohnson
— [email protected]