Skip to content

Commit 49651fe

Browse files
Major edits (#10)
* Minor edit to resources (adds Git for docs link) * Adjust sidebar styles * Adding theme/common for cross-theme content * Point the Hyde head for asciidoctor.css to theme/common/ * Add docx lock file to ignore * Add several new terms to glossary * Add 'contributing' tag * Major revisions and additions
1 parent b3b92cb commit 49651fe

31 files changed

+928
-421
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ scripts/cibuild
99
presentations/
1010
_notes/
1111
blog/
12+
*.docx#

_config/jekyll.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ layouts_dir: _build/theme/hyde/_layouts
1616
images_dir: assets/images
1717
includes_dir: theme/hyde/_includes
1818
css_dir: theme/hyde/css
19+
theme_common_dir: theme/common
1920

2021
asciidoc: {}
2122
asciidoctor:

_data/glossary.yml

Lines changed: 140 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@ terms:
77
88
- term: AsciiDoc
99
definition: |
10-
An extensible lightweight markup language with numerous powerful features such as conditional processing, file includes, and variable text substitutions.
10+
An extensible, dynamic lightweight markup language with numerous powerful features such as conditional processing, file includes, and variable text substitutions.
1111
Pronounced _ASK-ee-doc_.
1212
13+
- term: binary files
14+
definition: |
15+
Complex files consisting of bytecode, often representing archives of flat files and opaque to most source-control systems.
16+
1317
- term: CCO
1418
definition: |
1519
See *complex content object*.
@@ -19,33 +23,89 @@ terms:
1923
Command-line interface.
2024
Any place where a command prompt expects textual input.
2125
Pronounced _C-L-I_.
22-
# tag::cco-example[]
26+
27+
- term: commit
28+
definition: |
29+
A defined set of changes made to the source code of a project managed by source control.
30+
In Git, you organize source changes into commits as a way of organizing contributions to the codebase.
31+
Anyone who makes commits to the project is a _committer_.
32+
2333
- term: complex content object
2434
definition: |
2535
Abbreviated CCO, this is an item that may be more metadata than content, stored many to a file, as opposed to more typical text content units like chapters or topics, which may have some metadata but are mainly text and images.
2636
See <<chapter-managing-complexity>>.
2737
38+
- term: dependency, software
39+
definition: |
40+
A separate software product that is required for the development or operation of another application.
41+
These are either prerequisites that need to be set up or packages that are integrated automatically, but the main software relies on them to perform some crtical task.
42+
43+
- term: deprecation
44+
definition: |
45+
The process of designating product features for cessation of support.
46+
Whenever an existing feature is slated to be disabled in a future release, providers notify users the functionality will cease.
47+
This flagging is the actual act of deprecation.
48+
Actual removal or cessation of support is a separate operation.
49+
# tag::cco-example[]
50+
- term: DevOps
51+
definition: |
52+
An approach to software development that seeks to optimize complementarity between product coding and build/test procedures, mainly through automation and continuous integration.
53+
2854
- term: DITA
2955
definition: |
3056
Acronym for _Darwin Information Typing System_.
3157
An XML standard designed for technical writing, introduced by IBM in 2005.
3258
In addition to a markup standard, DITA incorporates dynamic functionality and mature framework elements.
3359
https://en.wikipedia.org/wiki/Darwin_Information_Typing_Architecture[Wikipedia].
3460
61+
- term: DocBook
62+
definition: |
63+
An XML-based structured semantic markup language designed to convey technical information.
64+
Founded on Usenet in 1991, DocBook was originally popularized as the basis for O'Reilly technical books.
65+
AsciiDoc was designed as a lightweight writing format to be preprocessed into DocBook XML.
66+
3567
- term: DRY
3668
definition: |
3769
For "don't repeat yourself", referring to a single-sourcing approach to code or docs.
3870
# end::cco-example[]
71+
- term: dynamism (in CMSes)
72+
definition: |
73+
At a minimum, a content management system is _dynamic_ if it enables the setting of variables for tokenized substitution inside parsed content.
74+
That is, users can embed references to outside data or content inside preprocessed source, which will be populated by that outside data or content, depending on which external content is established as the _value_ of any given _key_ (token).
75+
Other elements of dynamism may include conditional processing, which is often necessary for the proper establishment and processing of variables.
76+
77+
- term: extensibility
78+
definition: |
79+
Software that offers users the prerogative to heavily alter or add to its performance or abilities is considered “extensible”.
80+
81+
- term: flat files
82+
definition: |
83+
Simple files consisting only of textual characters and easily readable by source-control systems.
84+
85+
- term: framework
86+
definition: |
87+
A set of digital assets as well as structural and methodological conventions designed to enable rapid programming that is accessible to anyone familiar with the framework.
88+
Frameworks use standardized files, namespaces, architectures, and coding principles to enforce conventionality in style while enabling developers to jumpstart (“bootstrap”) their own projects as well as parachute into others' with minimal orientation to the codebase.
89+
3990
- term: FOSS
4091
definition: |
4192
Acronym for _free, open source software_.
42-
“Free” here implies both free as in do what you want with it, and free as in no money need be exchanged.
93+
“Free” here implies both free as in do pretty much whatever you want with it, and free as in no money need be exchanged.
4394
4495
- term: JSON
4596
definition: |
4697
A very common format for semi-structured data, popular for data transfer, especially with JavaScript/Node.js, though quickly becoming the industry standard.
4798
Pronounced _JAY-sahn_.
4899
100+
- term: linter
101+
definition: |
102+
A utility that scans text or code for syntactically, grammatically, or vocabularily incorrect content to flag or reject.
103+
104+
- term: literal (expression)
105+
definition: |
106+
Text in technical documentation that conveys actual code or values.
107+
Literals are usually represented by monospace type to distinguish it as directly expressing practical data or code.
108+
49109
- term: Markdown
50110
definition: |
51111
One of the lightest weight and most popular textual markup languages, popularized on GitHub, StackOverflow, various forums and comments systems, and numerous other places.
@@ -58,34 +118,94 @@ terms:
58118
59119
- term: IDE
60120
definition: |
61-
For _integrated development environment_, a toolchain/platform that facilitates software programming in a customized context that incorporates the particularities of the source language(s) and the product build.
121+
For _integrated development environment_, a toolchain/platform that facilitates software programming in a customized context that incorporates the particularities of the source language(s), any specific configuration for a given project, and elements of the product build procedure.
62122
Pronounced _I-D-E_.
63123
124+
- term: open source
125+
definition: |
126+
Software source code that is specifically licensed for sharing, usually with some restrictions.
127+
See also, FOSS.
128+
129+
- term: platform
130+
definition: |
131+
Any configurable software product that enables one or more users to contribute customized data or content for routine processing using a controlled, predictable environment.
132+
133+
- term: RDB
134+
definition: |
135+
Abbreviation for _relational database_.
136+
137+
- term: regression testing
138+
definition: |
139+
QA to ensure that changes in a new version of a software product work as intended with previous configurations, integrations, and applications.
140+
Thorough integration testing ensures all still-supported features and functionality remain backward compatible.
141+
142+
- term: relational database
143+
definition: |
144+
A complex, multi-table data source that is structured according to a defined schema and primarily accessed using queries.
145+
As opposed to flat files, RDBs are almost always stored as binary files and therefore opaque to most source control systems.
146+
147+
- term: release cycle
148+
definition: |
149+
The full set of procedures involved in planning and distributing a version of a software product.
150+
The release cycle includes planning, coding, testing, packaging, distributing, and any other tasks involved in turning software from a set of ideas to a new edition for production use.
151+
152+
- term: repository, code
153+
definition: |
154+
A file-storage system for _source code_, which tracks metadata about the code files and tracks changes across user-established _versions_.
155+
Commonly referred to as a “repo”.
156+
64157
- term: REST API
65158
definition: |
66159
An API (see <<glossary-api,API>>) that listens for and responds to HTTP requests to established endpoints.
160+
A “RESTful” service waits for an HTTP client request, such as a _POST_, _GET_, or _DELETE_ transaction at a specific URI, enabling third-party developers to build applications to interact with that service based on documented functionality and permissable formats for exchanging data.
161+
(REST stands for “Representational State Transfer”, which I had long-since forgotten before I just looked it up, because it is never used.)
67162
Pronounced _REST A-P-I_.
68163
69164
- term: reStructuredText
70165
definition: |
71166
A dynamic lightweight markup language associated with Python development.
167+
Abbreviated _RST_.
72168
73169
- term: RST
74170
definition: |
75-
Abbreviation for reStructuredText.
171+
Abbreviation for _reStructuredText_.
76172
77173
- term: SaaS
78174
definition: |
79175
Acronym for _software as a service_. Subscription-licensed tools hosted in “the cloud”, SaaS products require no user maintenance and provide thin-client remote access (e.g., browsers, mobile apps).
80176
Relevant examples include Wordpress.com, GitHub, Slack, and Office 365.
81177
Pronounced _sass_.
82178
179+
- term: small data
180+
definition: |
181+
Datasets that are limited in count and complexity.
182+
Small data can be stored in flat files, with or without schematic constraints.
183+
Distinguished more in terms of the subjects of data suitable for such storage systems, namely recordsets of limited volume.
184+
Similar to Big Data, small data structures usually support nested attributes represented by flat formats like XML, JSON, and YAML.
185+
83186
- term: SME
84187
definition: |
85188
Subject matter expert.
86189
Someone close to or highly familiar with the source/product who contributes this expertise to the documentation process.
87190
Please don't pronounce this _sme_ or for god's sake _shme_.
88191
192+
- term: source code
193+
definition: |
194+
Human readable programming instructions intended to be compiled into machine code.
195+
196+
- term: stack
197+
definition: |
198+
The particular set of software utilities or languages used in developing and/or running a software product.
199+
My technical documentation stack includes Ruby, AsciiDoc, YAML, Asciidoctor, and Jekyll.
200+
See also _tooling_.
201+
202+
- term: tooling
203+
definition: |
204+
Software utilities configured to provide routine services.
205+
For documentarians, tooling includes text editors and any utilities that generate and package documentation files.
206+
A _toolchain_ is a specific set of technologies used to perform a given complex procedure, such as writing and building documentation.
207+
See also _stack_.
208+
89209
- term: topic
90210
definition: |
91211
A discrete content item intended to be included (embedded or referenced) in parent document.
@@ -100,6 +220,21 @@ terms:
100220
Initialism for _user interface_.
101221
Pronounced _U-I_.
102222
223+
- term: Unicode
224+
definition: |
225+
A collection of universally standardized character sets that incorporate massively extended non-Western alphabets and extended symbolic characters.
226+
The most common is UTF-8, which incorporates characters consisting of between one and four 8-bit bytes.
227+
228+
- term: UX
229+
definition: |
230+
Initialism for _user experience, the study of overall interactions between users and a product.
231+
Pronounced _U-X_.
232+
233+
- term: workflow
234+
definition: |
235+
The procedures involved in fulfilling a task or project.
236+
Workflows may be formal, as in a prescribed set of protocols, or they informal, as in a description of what actually happens within a team or workspace.
237+
103238
- term: XML
104239
definition: |
105240
Extensible markup language, a tag-based means of conveying semi-structured data.
62.5 KB
Loading
98.2 KB
Loading

book-cw/backmatter/contributing.adoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
[[contributing]]
21
= Collaborative Authorship & Lean Publishing
32

43
This book is an experiment, and you are invited to partake.

book-cw/backmatter/resources.adoc

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
= Resources
33

44
This is a curated page of resources helpful to exploring and implementing a docs-as-code approach to technical documentation.
5-
You are strongly encouraged to submit a pull request including your own favorites!
5+
You are strongly encouraged to submit a merge request including your own favorites!
66

77
== Source Control
88

@@ -15,6 +15,9 @@ I wish I had read this series when I was first learning Git.
1515

1616
=== Git
1717

18+
* https://www.cuttlesoft.com/using-git-software-documentation/[Using Git to Manage Software Documentation]
19+
This overview of Git from a documentarian's perspective might be a good palce to start.
20+
1821
* http://www.codeschool.com/courses/try-git[CodeSchool's Try Git tutorial]
1922

2023
* http://gitimmersion.com/lab_01.html[Git Immersion] +
@@ -51,6 +54,25 @@ A compilation of excellent blog posts examining intermediate and advanced topics
5154

5255
=== MarkDown
5356

57+
== DITA
58+
59+
* http://www.dita-ot.org/1.8/dev_ref/extending-the-ot.html[DITA Open Toolkit] +
60+
I list this extensible, open-source DITA toolkit up front because it is most valuable here as an option for DevOps engineers trying to integrate DITA into their product source control or build infrastructure.
61+
This is the place for hackers to start.
62+
63+
64+
65+
== Regular Expressions (RegEx)
66+
67+
Following up on <<chapter-coding-regex>>, let's explore some RegEx tools and tutorials.
68+
69+
* link:https://regexone.com/[RegexOne] is a great tutorial
70+
71+
* The site link:http://www.rexegg.com/[RexEgg.com] offers some very cool instructionals and in-depth explorations.
72+
73+
* link:https://regexr.com/[Regxr] is a great “fiddle”-style tool for running experiments against test patterns with lots of resources a click away.
74+
75+
5476
== SSG: Static Site Generators
5577

5678
=== Jekyll
@@ -70,6 +92,16 @@ With my limited programming acumen, I find Ruby difficult to learn, though even
7092
That said, these tools are all truly excellent, and there are a great many resources on Ruby, especially on https://stackoverflow.com/tags/ruby/info[StackOverflow], which is a pretty good place to start learning Ruby, and _the_ place to go when you get stuck.
7193
****
7294

95+
=== Minuteman
96+
97+
=== Hugo
98+
99+
=== Awestruct
100+
101+
* http://awestruct.org/[Awestruct site]
102+
103+
* https://github.com/awestruct/awestruct/[source code]
104+
73105
== Conversion and Migration Tools
74106

75107
=== Pandoc
@@ -82,9 +114,7 @@ Short of such programmatic applications, you can explore Pandoc simply by conver
82114
* http://pandoc.org/[pandoc.org]
83115
* https://publishing.sfu.ca/2013/11/building-publishing-workflows-with-pandoc-and-git/[Building Publishing Workflows with Pandoc and Git] (blog entry)
84116

85-
=== Swagger
86-
87-
=== Doxygen
117+
=== Tilt
88118

89119
=== Other Conversion/Migration Tools
90120

@@ -100,6 +130,12 @@ This hacky-to-install but well-documented tool will convert your Google Docs han
100130

101131
* https://github.com/lmmx/gdocs2md-html[GitHub repo]
102132

133+
== API Docs Generators
134+
135+
=== About OpenAPI
136+
137+
=== Doxygen
138+
103139
== CCMS: Component Content Management Systems
104140

105141
Here's where things start to get hairy.
@@ -150,7 +186,7 @@ LeanPub is a great way for authors to self-publish; it includes an e-commerce sy
150186
* link:https://leanpub.com[Leanpub site]
151187

152188
[TIP]
153-
Don't see your favorite platform here? Suggest it in the Issues for this GitHub project or in the
189+
Don't see your favorite platform here? Suggest it in the link:https://github.com/briandominick/codewriting/issues[Issues] for this GitHub project, or add it directly and issue a merge request.
154190

155191
== Blogs
156192

@@ -181,5 +217,15 @@ Though not particularly docs-as-code oriented, this site occasionally features d
181217

182218
* link:http://thecontentwrangler.com/[The Content Wrangler]
183219

220+
== Forums
221+
222+
Write the Docs::
223+
+
224+
While not docs-as-code exclusive, the Write the Docs community is where you'll find the most forward-thinking documentarians.
225+
Their conferences, meetups, and Slack channels are the place to mine peers and experts for their experience and advice.
226+
+
227+
* link:http://www.writethedocs.org[Website]
228+
* link:http://www.writethedocs.org/slack/[Write the Docs Slack workspace]
229+
184230
[[resources-git-tooling]]
185231
== Git Tooling

book-cw/frontmatter/acknowledgements.adoc

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
= Acknowledgements
22

3-
My first shout out has to go to Eric Sammer, CTO at Rocana, who had the foresight to set me up with such a great documentation toolchain.
4-
Eric has given me room to experiment with the docs at Rocana, just as he and the Engineering organization have kept a constant flow of new challenges streaming across my desk.
5-
I did not take this job with any semblance of a notion that I was stumbling into a nascent (niché) field that so fully fuses writing and development.
3+
I must first express appreciation for Eric Sammer, CTO at Rocana, who had the foresight to set me up with such a great documentation toolchain.
4+
Eric gave me room to experiment with the docs at Rocana, just as he and the Engineering organization kept a constant flow of new challenges streaming across my desk.
5+
I did not take that job with any semblance of a notion that I was stumbling into a nascent (niche) field that so fully fuses writing and development.
66
Since those are the only two consistent interests on my resumé, I suspect Eric saw more than I evidently did.
77

8-
I also want to express appreciation for my manager, Arthur Foelsche.
8+
I also want to express appreciation for my direct manager at Rocana, Arthur Foelsche.
99
When your company is so small you're the only tech writer, it helps a lot to have somebody who's well paid to feign an interest in what you do all day.
10-
Truthfully: through countless hours of coding and conversation, Arthur has pushed and helped me to solve more than a few of the problems I'm truly excellent at raising.
11-
He also encouraged me to do this book and pursue the initiatives and projects that inspired it, as did everyone in Rocana's Engineering department.
10+
Truthfully: through countless hours of coding and conversation, Arthur pushed and even directly helped me to solve more than a few of the problems I'm truly excellent at raising.
11+
He also encouraged me to do this book and pursue the initiatives and projects that inspired it, as did so many of my colleagues there.
12+
13+
I hope the Codewriting project serves as an unexpected, lasting artifact of all our days solving “impossible” problems together as Rocana.
1214

1315
== Contributors
1416

0 commit comments

Comments
 (0)