cupper-hugo-theme/content/patterns/writing/project-structure.md

53 lines
2.2 KiB
Markdown

+++
title = "Project structure"
weight = 1
+++
Before you can set about making documentation, you need to know where everything goes. The simplest folder structure looks like this:
{{% fileTree %}}
* content
* \_index.md
* print-version.md
* patterns
* name-of-my-pattern.md
* name-of-my-other-pattern.md
{{% /fileTree %}}
* **/content** - This is where all of your content lives. You won't need to visit any other folders very frequently.
* **_index.md** — This is the content file for your home page.
* **print-version.md** — This is a placeholder for the single-page / print-friendly version of you library. Leave this file as it is.
* **/patterns** — This is the folder where individual content files are kept. **Infusion** refers to each individual documentation file/page as a "pattern".
## Subsections
You may have noticed that this site's navigation is divided partly into subsections, with labels like "Writing". **Infusion** (or, rather, Hugo) allows you to create such subsections by simply nesting folders under the `/patterns` folder. In the following example, I have a subsection about different types of "popup" pattern.
{{% fileTree %}}
* content
* \_index.md
* patterns
* name-of-my-pattern.md
* name-of-my-other-pattern.md
* popups
* \_index.md
* popup-menu.md
* tooltips.md
{{% /fileTree %}}
Subfolders like `/popups` must each have an `_index.md` file. This file doesn't need any content except the TOML metadata defining the title (name) of that subsection:
```
+++
title = "Popup windows"
+++
```
This title is what labels the subsection in the navigation, *not* the folder name (`/popups`, in this case). For each subfolder you create, you must also create one of these `_index.md` files. The `/patterns` folder itself does not need one, however.
{{% note %}}
**Infusion** does not currently support _sub_-subsections. You can only create child folders under `/patterns`.
{{% /note %}}
Now that you know where to put everything, it's time to talk about how to actually write individual patterns. Don't worry, it's pretty straightforward. Turn to {{% pattern "Markdown & metadata" %}}.