Writing Documentation
Overview to writing docs
This article discusses the protocol and conventions to follow when writing documentation for CTRL in the ctrl-docs
repository.
Folder Structure
Documentation follows an object-oriented approach:
- Each folder represents an object (e.g.,
architecture
,repository-structure
). - Each file represents a procedure or topic related to that object.
- Each folder can contain a
meta.json
file with metadata for that object.
Example meta.json
:
{
"title": "Engineering",
"icon": "terminal",
"pages": [
"architecture",
"repository-structure",
"development-setup",
"unit-testing",
"playwright",
"build-and-releases",
"translations",
"writing-docs"
]
}
File Structure
Add the following metadata to the top of each .mdx
file:
---
title: "Writing docs"
description: "Overview to writing docs"
tags: ['Engineering']
keywords: ['Engineering', 'Writing docs', 'Docs conventions']
---
title
: Appears in the sidebar and at the top of the article.description
: Appears in search results.tags
: Used to group articles.keywords
: Improve search results.
Nomenclature
- Folder and file names use kebab-case (e.g.,
account-settings
). - Only the first letter is capitalised if it is a proper noun.
- Tags: First letter capitalised, usually objects or actions. Only add a tag if it will be reused.
Descriptions
- Should be concise and to the point (preferably one line).
- Descriptions appear in search results and should clearly indicate the article's purpose.
Images
Place any images in the public/
folder and name them appropriately.
Before You Commit
- Run
yarn build
to build the docs. - Ensure the build is successful and there are no errors or warnings about missing links or images.
By following these conventions, we ensure that documentation in ctrl-docs
is consistent, searchable, and easy to maintain.
Docs built with Fumadocs
CTRL's documentation is compiled using Fumadocs
which is an opensource documentation tool built with the Next.js
framework: