60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
---
|
|
title: Project Structure
|
|
weight: 1
|
|
---
|
|
|
|
## Folder Structure
|
|
|
|
There are **4 main folders for Hugo-based sites**:
|
|
|
|
- `content/` for your Markdown-formatted content files (homepage, etc.)
|
|
- `_index.md` the homepage (**Hugo requires that the homepage and archive pages have an underscore prefix**)
|
|
- `assets/`
|
|
- `media/` for your media files (images, videos)
|
|
- `icons/custom/` upload any custom SVG icons you want to use
|
|
- `config/_default/` for your site configuration files
|
|
- `hugo.yaml` to configure Hugo (site title, URL, Hugo options, setup per-folder page features)
|
|
- `module.yaml` to install or uninstall Hugo themes and plugins
|
|
- `params.yaml` to configure Hugo Blox options (SEO, analytics, site features)
|
|
- `menus.yaml` to configure your menu links (if the menu is enabled in `params.yaml`)
|
|
- `languages.yaml` to configure your site's language or to set language-specific options in a multilingual site
|
|
- `static/uploads/` for any files you want visitors to download, such as a PDF
|
|
- `go.mod` sets the version of Hugo themes/plugins which your site uses
|
|
|
|
|
|
## Hugo File Naming Convention
|
|
|
|
Hugo gives us two options to name standard page files: as `TITLE/index.md` or `TITLE.md` where `TITLE` is your page name.
|
|
|
|
The page name should be lowercase and using hyphens (`-`) instead of spaces.
|
|
|
|
Both approaches result in the same output, so you can choose your preferred approach to naming and organizing files. A benefit to the folder-based approach is that all your page's files (such as images) are self-contained within the page's folder, so it's more portable if you wish to share the original Markdown page with someone.
|
|
|
|
The homepage is a special case as **Hugo requires the homepage and listing pages to be named** `_index.md`.
|
|
|
|
## Docs Navigation
|
|
|
|
The docs navigation is automatically generated based on the content in the `docs/` folder and is sorted alphabetically.
|
|
|
|
The order of pages can be changed by adding the `weight` parameter in the front matter of your Markdown files.
|
|
|
|
In the example below, the `example.md` page will appear before the `test.md` page as it has a lower `weight`:
|
|
|
|
Page `example.md`:
|
|
|
|
```yaml
|
|
---
|
|
title: My Example
|
|
weight: 1
|
|
---
|
|
```
|
|
|
|
Page `test.md`:
|
|
|
|
```yaml
|
|
---
|
|
title: My Test
|
|
weight: 2
|
|
---
|
|
```
|