148 lines
7.1 KiB
Markdown
148 lines
7.1 KiB
Markdown
|
---
|
|||
|
title: سازماندهی پروندهها
|
|||
|
weight: 1
|
|||
|
prev: /docs/guide
|
|||
|
---
|
|||
|
|
|||
|
## ساختار دایرکتوری
|
|||
|
|
|||
|
به طور پیشفرض، Hugo پروندههای مارکداون را در فهرست `content` جستجو میکند و ساختار فهرست، ساختار خروجی نهایی وبسایت شما را تعیین میکند. همین سایت را به عنوان مثال در نظر بگیرید:
|
|||
|
|
|||
|
<!--more-->
|
|||
|
|
|||
|
{{< filetree/container >}}
|
|||
|
{{< filetree/folder name="content" >}}
|
|||
|
{{< filetree/file name="_index.md" >}}
|
|||
|
{{< filetree/folder name="docs" state="open" >}}
|
|||
|
{{< filetree/file name="_index.md" >}}
|
|||
|
{{< filetree/file name="getting-started.md" >}}
|
|||
|
{{< filetree/folder name="guide" state="open" >}}
|
|||
|
{{< filetree/file name="_index.md" >}}
|
|||
|
{{< filetree/file name="organize-files.md" >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< filetree/folder name="blog" state="open" >}}
|
|||
|
{{< filetree/file name="_index.md" >}}
|
|||
|
{{< filetree/file name="post-1.md" >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/container >}}
|
|||
|
|
|||
|
هر یک از پروندههای `_index.md` صفحه اصلی هر بخش هستند که برای هر بخش مجزا است. سایر پروندههای مارکداون صفحههای معمولی دیگهای هستند.
|
|||
|
|
|||
|
```
|
|||
|
content
|
|||
|
├── _index.md // <- /
|
|||
|
├── docs
|
|||
|
│ ├── _index.md // <- /docs/
|
|||
|
│ ├── getting-started.md // <- /docs/getting-started/
|
|||
|
│ └── guide
|
|||
|
│ ├── _index.md // <- /docs/guide/
|
|||
|
│ └── organize-files.md // <- /docs/guide/organize-files/
|
|||
|
└── blog
|
|||
|
├── _index.md // <- /blog/
|
|||
|
└── post-1.md // <- /blog/post-1/
|
|||
|
```
|
|||
|
|
|||
|
## طرحبندیها
|
|||
|
|
|||
|
هگزترا سه طرحبندی برای انواع مختلف محتوا ارائه میکند:
|
|||
|
|
|||
|
| طرحبندی | دایرکتوری | ویژگیها |
|
|||
|
| :-------- | :-------------------- | :--------------------------------------------------------------- |
|
|||
|
| `docs` | `content/docs/` | ایدهآل برای مستندات ساختار یافته، مانند این بخش. |
|
|||
|
| `blog` | `content/blog/` | برای نوشتههای وبلاگ، با هر فهرستبندی و هم نمایش جزئیات مقاله. |
|
|||
|
| `default` | همه دایرکتوریهای دیگر | مشاهده مقاله تک صفحهای بدون نوار کناری. |
|
|||
|
|
|||
|
برای سفارشی کردن یک بخش برای منعکس کردن رفتار یک طرح داخلی، نوع طرحبندی مورد نظر را در قسمت بالایی قسمت _index.md` مشخص کنید.
|
|||
|
|
|||
|
```yaml {filename="content/my-docs/_index.md"}
|
|||
|
---
|
|||
|
title: مستندات من
|
|||
|
cascade:
|
|||
|
type: docs
|
|||
|
---
|
|||
|
```
|
|||
|
|
|||
|
پیکربندی مثال بالا تضمین میکند که پروندههای محتوای در داخل `content/my-docs/` بهطور پیشفرض به عنوان مستندات (نوع `docs`) مورد استفاده قرار میگیرند.
|
|||
|
|
|||
|
## ناوبری نوار کناری
|
|||
|
|
|||
|
ناوبری نوار کناری به طور خودکار براساس حروف الفبا ایجاد میشود. برای پیکربندی دستی ترتیب نوار کناری، میتوانید از پارامتر `weight` در قسمت بالایی پروندههای مارکداون استفاده کنید.
|
|||
|
|
|||
|
```yaml {filename="content/docs/guide/_index.md"}
|
|||
|
---
|
|||
|
title: راهنما
|
|||
|
weight: 2
|
|||
|
---
|
|||
|
```
|
|||
|
|
|||
|
{{< callout emoji="ℹ️">}}
|
|||
|
توصیه میکنیم نوار کناری خیلی عمیق نباشد. اگر محتوای زیادی دارید، آنها را **به چند بخش تقسیم کنید**.
|
|||
|
{{< /callout >}}
|
|||
|
|
|||
|
## پیکربندی دایرکتوری محتوا
|
|||
|
|
|||
|
به طور پیشفرض، دایرکتوری ریشه `content/` توسط Hugo برای ساخت سایت استفاده میشود.
|
|||
|
اگر نیاز به استفاده از دایرکتوری متفاوتی برای محتوا دارید، برای مثال `docs/`، این کار را میتوانید با تنظیم پارامتر [`contentDir`](https://gohugo.io/getting-started/configuration/#contentdir) در پیکربندی سایت `hugo.yaml` انجام دهید.
|
|||
|
|
|||
|
## افزودن تصاویر
|
|||
|
|
|||
|
برای افزودن تصاویر، سادهترین راه این است که پروندههای عکسها را در همان دایرکتوری پرونده مارکداون قرار دهید.
|
|||
|
برای مثال، یک پرونده عکس `image.png` را در کنار پرونده `my-page.md` اضافه کنید:
|
|||
|
|
|||
|
{{< filetree/container >}}
|
|||
|
{{< filetree/folder name="content" >}}
|
|||
|
{{< filetree/folder name="docs" >}}
|
|||
|
{{< filetree/file name="my-page.md" >}}
|
|||
|
{{< filetree/file name="image.png" >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/container >}}
|
|||
|
|
|||
|
سپس، میتوانید از سینتکس مارکداون زیر برای افزودن عکس به محتوا استفاده کنید:
|
|||
|
|
|||
|
```markdown {filename="content/docs/my-page.md"}
|
|||
|

|
|||
|
```
|
|||
|
|
|||
|
همچنین میتوانید از ویژگی [بستههای صفحه][page-bundles] Hugo برای سازماندهی پروندههای عکسها همراه با پرونده مارکداون استفاده کنید. برای رسیدن به این هدف، پرونده `my-page.md` را به یک دایرکتوری `my-page` تبدیل کنید و محتوا را در پروندهای به نام `index.md` قرار دهید و پروندههای عکسها را در دایرکتوری `my-page` قرار دهید:
|
|||
|
|
|||
|
{{< filetree/container >}}
|
|||
|
{{< filetree/folder name="content" >}}
|
|||
|
{{< filetree/folder name="docs" >}}
|
|||
|
{{< filetree/folder name="my-page" >}}
|
|||
|
{{< filetree/file name="index.md" >}}
|
|||
|
{{< filetree/file name="image.png" >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/container >}}
|
|||
|
|
|||
|
```markdown {filename="content/docs/my-page/index.md"}
|
|||
|

|
|||
|
```
|
|||
|
|
|||
|
همچنین میتوانید پروندههای عکسها را در دایرکتوری `static` قرار دهید که عکسها را برای همه صفحات در دسترس قرار میدهد:
|
|||
|
|
|||
|
{{< filetree/container >}}
|
|||
|
{{< filetree/folder name="static" >}}
|
|||
|
{{< filetree/folder name="images" >}}
|
|||
|
{{< filetree/file name="image.png" >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< filetree/folder name="content" >}}
|
|||
|
{{< filetree/folder name="docs" >}}
|
|||
|
{{< filetree/file name="my-page.md" >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/folder >}}
|
|||
|
{{< /filetree/container >}}
|
|||
|
|
|||
|
توجه داشته باشید که مسیر عکس با یک اسلش `/` شروع میشود و نسبت به دایرکتوری استاتیک است:
|
|||
|
|
|||
|
```markdown {filename="content/docs/my-page.md"}
|
|||
|

|
|||
|
```
|
|||
|
|
|||
|
[page-bundles]: https://gohugo.io/content-management/page-bundles/#leaf-bundles
|