Diátaxis in complex hierarchies¶
Structure of documentation content¶
The application of Diátaxis to most documentation is fairly straightforward. The product that defines the domain of concern has clear boundaries, and it’s possible to come up with an arrangement of documentation contents that looks - for example - like this:Adding a layer of hierarchy¶
Even very large documentation sets can use this effectively, though after a while some grouping of content within sections might be wise. This can be done by adding another layer of hierarchy - for example to be able to address different installation options separately:Contents pages¶
Contents pages - typically a home page and any landing pages - provide an overview of the material they encompass. There is an art to creating a good contents page. The experience they give the users deserves careful consideration.The problem of lists¶
Lists longer than a few items are very hard for humans to read, unless they have an inherent mechanical order - numerical, or alphabetical. Seven items seems to be a comfortable general limit. If you find that you’re looking at lists longer than that in your tables of contents, you probably need to find a way to break them up into small ones. As always, what matters most is the experience of the reader. Diátaxis works because it fits user needs well - if your execution of Diátaxis leads you to formats that seem uncomfortable or ugly, then you need to use it differently.Overviews and introductory text¶
The content of a landing page itself should read like an overview. That is, it should not simply present lists of other content, it should introduce them. Remember that you are always authoring for a human user, not fulfilling the demands of a scheme. Headings and snippets of introductory text catch the eye and provide context; for example, a how-to landing page:Two-dimensional problems¶
A more difficult problem is when the structure outlined by Diátaxis meets another structure - often, a structure of topic areas within the documentation, or when documentation encounters very different user-types. For example we might have a product that is used on land, sea and air, and though the same product, is used quite differently in each case. And it could be that a user who uses it on land is very unlikely to use it at sea. Or, the product documentation addresses the needs of:- users
- developers who build other products around it
- the contributors who help maintain it.
- product-on-public-cloud-one
- product-on-public-cloud-two
- and so on…
