System view and use cases

The documentation system describes how content sources and an interface definition are combined to create a website that is published on the web.

  • The tools used by editors and interface developers are not specified here.

  • However, I do make technical choices that influence the choice for those tools.

In a overview diagram, it looks like this:

Documentation system overview
Figure 1. Documentation system overview

User roles

Editor

An editor can also be a developer, and contributes documentation content sources (text, diagrams). The choice of tools to edit and manage content should be flexible, and it outside the scope of this documentation.

Interface designer

A designer is responsible for the layout and styling of the website. Again, the choice of tools should be flexible, and is outside the scope of this documentation.

Publisher

The publisher triggers an update of the website by generating a new version and publishing this version. This is typically part of an automated process.

For my own notes website, I perform all three roles myself.

Systems

Content sources

Implementation-specific, detailed documentation should live close to, or even inside source code or configuration files. Higher-level decisions and architectures can live in separate documentation sections.

Sources are typically spread over multiple locations and repositories, and may cover multiple versions of a part of the documentation.

Interface template

The interface template defines the layout and styling of the website.

Website generator

The website generator combines sources from multiple repositories and versions into a single website.

The website can be published as a static website, to any suitable platform.

Preferably, you can also generate other formats of documentation, such as PDF or EPUB.

chevron_left
chevron_right
Twitter LinkedIn Github Gitlab Meetup RSS Miro Trello Zotero Hypothesis