Skip to main content
Version: 4.1

Writing Project Documentation

This guide will help you create markdown documentation for your projects using our system's supported features.

Directory Structure​

Documentation can be placed in one of two locations:

  • For project-specific documentation: www/projects/<project_id>/docs
  • For common documentation: www/docs

You can organize documentation into directories as needed.

Order in the Index Tree​

Items in the index tree on the left can be ordered using number prefixes on file or directory names. These prefixes are stripped out and do not appear in the labels.

For example:

00-first.md
01-second
02-third.md

Markdown Features​

Headings​

Use # for headings. The number of # symbols indicates the level of the heading.

# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6

Headers and Labels​

The items appear in the index tree with the top-level header as the label.

Header Anchors​

Anchors follow the GitHub style. Links can be created to specific sections within the same document or to other documents. Headers are automatically converted to anchor links by converting to lowercase, replacing spaces with hyphens (-), and removing special characters. Example:

## Section Title

The resulting anchor link will be #section-title.

Custom anchors can be set using the following syntax:

## Section Title \{#custom-anchor}

Paragraphs​

Paragraphs are separated by a blank line.

This is the first paragraph.

This is the second paragraph.

Line Breaks​

End a line with two or more spaces to create a line break.

This is the first line.
This is the second line.

Emphasis​

Use * or _ for emphasis.

*Italic* or _Italic_

**Bold** or __Bold__

***Bold and Italic*** or ___Bold and Italic___

Blockquotes​

Use > for blockquotes. You can nest them by adding additional > symbols.

> This is a blockquote.
>> Nested blockquote.

This is a blockquote

Nested blockquote

Lists​

Unordered Lists​

Use -, *, or + for unordered lists.

Nested lists must be indented by 4 spaces (or one tab) per level. An indent of 1 to 3 spaces is not enough: the item is rendered at the same level as its parent.

- Item 1
- Item 2
- Subitem 1
- Subitem 2
- Sub-subitem

Ordered Lists​

Use numbers followed by a period for ordered lists. The same 4-space rule applies to nesting.

1. First item
2. Second item
1. Subitem 1
2. Subitem 2

Tables​

Use pipes (|) and hyphens (-) to create tables.

Example:

| Header 1 | Header 2 |
|----------|----------|
| Row 1 | Row 1 |
| Row 2 | Row 2 |
Header 1Header 2
Row 1Row 1
Row 2Row 2

Code​

Inline Code​

Use backticks for inline code.

Here is some `inline code`.

Code Blocks​

Use triple backticks for code blocks.

```
Code block
```

Horizontal Rules​

Use three or more -, *, or _ for horizontal rules.

---
***
___

Use [text](url) for links.

[OpenAI](https://www.openai.com)

Relative slug links can be used to link to other files within the documentation. Remove numeric ordering prefixes and omit the .md extension.

[Link to another document](./another-document)

Anchor links can be used to link to specific sections within the same document.

[Link to section](#section-title)

or in another document.

[Link to section](./another-document#section-title)

Images​

Use ![alt text](url) for images.

![HSYCO Logo](https://www.hsyco.com/logo.jpg)

Escaping Characters​

Use a backslash to escape special characters.

\*This text is not italicized\*

Characters that can be excaped include: *, _, {, }, [, ], (, ), #, +, -, ., !, and \.

Extended Features​

Admonitions​

You can include admonitions to highlight important information.

Example:

:::note
This is a note.
:::
note

This is a note.

Supported admonition types: note, tip, info, caution, danger.

Example:

:::tip
This is a tip.
:::
tip

This is a tip.

Custom Titles​

Admonitions can also have custom titles.

Example:

:::note[My Custom Title]
This is a note with a custom title.
:::
My Custom Title

This is a note with a custom title

Meta Data​

At the beginning of each markdown file, you can include meta configuration options. Here are the supported options:

  • sidebar_position: <number> - Defines the position in the sidebar.
  • toc_min_heading_level: <number> - Minimum heading level to include in the table of contents.
  • toc_max_heading_level: <number> - Maximum heading level to include in the table of contents.
  • sidebar_class_name: hidden - Hides the item from the sidebar.

Example:

---
sidebar_position: 1
toc_min_heading_level: 2
toc_max_heading_level: 4
sidebar_class_name: hidden
---