diff --git a/README.fa.md b/README.fa.md new file mode 100644 index 00000000..d37f779d --- /dev/null +++ b/README.fa.md @@ -0,0 +1,47 @@ +
+

هگزترا

+

تم هیوگو مدرن، پاسخگو و دارای امکانات کامل برای ایجاد وب‌سایت‌های استاتیک زیبا.

+ +نسخه‌ی نمایشی → [imfing.github.io/hextra](https://imfing.github.io/hextra/fa) +
+ + + + Hextra + + +
+GitHub Actions Status Netlify Status +
+ +## ویژگی‌ها + +- **طراحی زیبا** - با الهام از Nextra، هگزترا از Tailwind CSS برای ارائه یک طراحی مدرن که سایت شما را برجسته می‌کند، استفاده می‌کند. +- **طراحی واکنش‌گرا و حالت تیره** - در تمام دستگاه‌ها، از تلفن همراه، تبلت تا دسکتاپ، عالی به نظر می‌رسد. حالت تیره نیز برای انطباق با شرایط مختلف روشنایی پشتیبانی می‌شود. +- **سریع و سبک** - طراحی شده توسط Hugo، یک ایجادکننده سایت استاتیک سریع مثل رعد و برق که در یک فایل باینری قرار گرفته است، هگزترا ردپای خود را به حداقل می‌رساند. برای استفاده از آن به جاوااسکریپت یا Node.js نیازی ندارید. +- **جستجوی متن کامل** - جستجوی متن کاملا آفلاین داخلی طراحی شده توسط FlexSearch، بدون نیاز به پیکربندی اضافی. +- **امکانات کامل** - برای بهتر کردن محتوای شما مارک‌داون، برجسته‌کردن سینتکس، فرمول‌های ریاضی LaTeX، نمودارها و عناصر Shortcodeها را شامل میشه. فهرست مطالب، بردکرامب، صفحه‌بندی، پیمایش نوار کناری و موارد دیگر همه به صورت خودکار تولید می‌شوند. +- **چند زبانه و سئو آماده** - سایت‌های چند زبانه با حالت چند زبانه Hugo راحت ساخته می‌شوند. پشتیبانی خارج از جعبه برای برچسب‌های سئو، Open Graph و کارت‌های توییتر گنجانده شده است. + +## شروع کنید + +### شروع سریع از طریق Template + +استفاده از [Hextra Starter Template](https://github.com/imfing/hextra-starter-template) ساده‌ترین روش برای راه‌اندازی سریع یک وب‌سایت جدید با تم هگزترا است. با کلیک بر روی دکمه "Use this template" در بالای صفحه مخزن شروع کنید. + +مخزن تم همچنین شامل یک [گردش کار گیت‌هاب Actions](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) رای به‌کاراندازی وب‌سایت شما در گیت‌هاب Pages است. + +Hextra Starter Template + +### استفاده + +برای اطلاعات بیشتر به بخش [مستندات](https://imfing.github.io/hextra/fa/docs) مراجعه کنید. + +## مشارکت کردن + +از مشارکت افراد جدید استقبال می‌کنیم. + برای شروع، [راهنمای مشارکت](.github/CONTRIBUTING.md) را بررسی کنید. + +## مجوز + +[مجوز MIT](./LICENSE) diff --git a/exampleSite/content/_index.fa.md b/exampleSite/content/_index.fa.md new file mode 100644 index 00000000..de853d48 --- /dev/null +++ b/exampleSite/content/_index.fa.md @@ -0,0 +1,76 @@ +--- +title: تم هگزترا +layout: hextra-home +--- + +{{< hextra/hero-badge >}} +
+ آزاد، متن‌باز + {{< icon name="arrow-circle-left" attributes="height=14" >}} +{{< /hextra/hero-badge >}} + +
+{{< hextra/hero-headline >}} + ساخت وب‌سایت‌های مدرن  با مارک‌داون و هیوگو +{{< /hextra/hero-headline >}} +
+ +
+{{< hextra/hero-subtitle >}} + تم هیوگو سریع و دارای امکانات کامل برای ایجاد وب‌سایت‌های استاتیک زیبا +{{< /hextra/hero-subtitle >}} +
+ +
+{{< hextra/hero-button text="شروع کنید" link="docs" >}} +
+ +
+ +{{< hextra/feature-grid >}} + {{< hextra/feature-card + title="سریع و با امکانات کامل" + subtitle="ساده و آسان برای استفاده، در عین حال قدرتمند و غنی از ویژگی‌ها متنوع." + class="aspect-auto md:aspect-[1.1/1] max-md:min-h-[340px]" + image="/images/hextra-doc.webp" + imageClass="top-[40%] left-[24px] w-[180%] sm:w-[110%] dark:opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(194,97,254,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="مارک‌داون تنها چیزی است که شما نیاز دارید" + subtitle="فقط با مارک‌داون بنویسید. تکمیل و کامل با کامپوننت‌های کد کوتاه." + class="aspect-auto md:aspect-[1.1/1] max-lg:min-h-[340px]" + image="/images/hextra-markdown.webp" + imageClass="top-[40%] left-[36px] w-[180%] sm:w-[110%] dark:opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(142,53,74,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="جستجوی کامل متن" + subtitle="جستجوی متن کامل داخلی با FlexSearch، بدون نیاز به نصب موارد اضافی." + class="aspect-auto md:aspect-[1.1/1] max-md:min-h-[340px]" + image="/images/hextra-search.webp" + imageClass="top-[40%] left-[36px] w-[110%] sm:w-[110%] dark:opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(221,210,59,0.15),hsla(0,0%,100%,0));" + >}} + {{< hextra/feature-card + title="سبک مانند یک پر" + subtitle="برای استفاده از هگزترا به هیچ وابستگی یا Node.js نیاز نیست. با پشتیبانی از هیوگو، یکی از سریع‌ترین تولیدکنندگان سایت استاتیک، سایت شما را تنها در چند ثانیه با یک باینری می‌سازد." + >}} + {{< hextra/feature-card + title=" واکنش‌گرا با حالت تیره" + subtitle="در اندازه‌های مختلف صفحه نمایش عالی به نظر می‌رسد. پشتیبانی از حالت تیره داخلی، با تغییر خودکار براساس اولویت سیستم کاربر." + >}} + {{< hextra/feature-card + title="ساخت و میزبانی رایگان" + subtitle="با گیت‌هاب Actions بسازید و به صورت رایگان در گیت‌هاب Pages میزبانی کنید. یا می‌توانید آن را در هر سرویس میزبانی استاتیک میزبانی کنید." + >}} + {{< hextra/feature-card + title="چند زبانه آسان" + subtitle="فقط با افزودن پسوند محلی به پرونده مارک‌داون صفحات وب‌سایت چند زبانه ایجاد کنید. افزودن پشتیبانی i18n به سایت شما بصری است." + >}} + {{< hextra/feature-card + title="و خیلی بیشتر..." + icon="sparkles" + subtitle="برجسته‌کردن سینتکس / فهرست مطالب / سئو / RSS / LaTeX / Mermaid / سفارشی‌سازی / و موارد دیگر…" + >}} +{{< /hextra/feature-grid >}} diff --git a/exampleSite/content/about/index.fa.md b/exampleSite/content/about/index.fa.md new file mode 100644 index 00000000..ceb6b833 --- /dev/null +++ b/exampleSite/content/about/index.fa.md @@ -0,0 +1,22 @@ +--- +title: درباره ما +toc: false +--- + +هگزترا به گونه‌ای طراحی شده است که یک موضوع ساده، سریع و انعطاف پذیر برای ساخت وب‌سایت‌های استاتیک مدرن باشد. این به ویژه برای وب‌سایت‌های مستندسازی مناسب است اما می‌تواند برای انواع مختلف سایت‌ها مانند وبلاگ‌ها، نمونه‌کار و موارد دیگر نیز استفاده شود. + +Hugo مانند Jekyll، یک ایجادکننده سایت استاتیک است. چیزی که Hugo را متمایز می‌کند این است که یک باینری واحد است و نصب و اجرای آن بر روی پلتفرم‌های مختلف را آسان می‌کند. همچنین بسیار سریع و قابل اعتماد است و می‌تواند یک سایت را با هزاران صفحه در میلی‌ثانیه ارائه دهد. + +هگزترا با ذهنیتی ساخته شده است که بر داشتن حداقل ردپا متمرکز شده است. برای شروع، هیچ وابستگی اضافی مانند بسته‌های Node.js لازم نیست. تنها چیزی که نیاز دارید یک پرونده پیکربندی YAML به همراه محتوای مارک‌داون شما است. بنابراین، شما می‌توانید به جای تنظیم ابزار، روی نوشتن محتوای با کیفیت تمرکز کنید. + +## اعتبار + +ترجمه فارسی مستندات توسط [گودرز جعفری](https://goudarzjafari.com/) انجام شده است. + +هگزترا بدون ابزار و الهامات زیر ساخته نمی‌شود: + +- [هیوگو](https://gohugo.io/) +- [Tailwind CSS](https://tailwindcss.com/) +- [Heroicons](https://heroicons.com/) +- [Nextra](https://nextra.vercel.app/) +- [Next.js](https://nextjs.org/) diff --git a/exampleSite/content/blog/_index.fa.md b/exampleSite/content/blog/_index.fa.md new file mode 100644 index 00000000..daf2cf6c --- /dev/null +++ b/exampleSite/content/blog/_index.fa.md @@ -0,0 +1,10 @@ +--- +title: "وبلاگ" +--- + +
+{{< hextra/hero-badge link="index.xml" >}} + خوراک RSS + {{< icon name="rss" attributes="height=14" >}} +{{< /hextra/hero-badge >}} +
diff --git a/exampleSite/content/blog/markdown.fa.md b/exampleSite/content/blog/markdown.fa.md new file mode 100644 index 00000000..303547a9 --- /dev/null +++ b/exampleSite/content/blog/markdown.fa.md @@ -0,0 +1,157 @@ +--- +title: راهنمای استفاده سینتکس مارک‌داون +date: 2020-01-01 +authors: + - name: imfing + link: https://github.com/imfing + image: https://github.com/imfing.png + - name: Octocat + link: https://github.com/octocat + image: https://github.com/octocat.png +tags: + - Markdown + - مثال + - راهنمای +excludeSearch: true +--- + +این مقاله نمونه‌ای از سینتکس ابتدایی مارک‌داون را آموزش می‌دهد، که می‌توانید در پرونده‌های محتوای Hugo استفاده کنید. + + +## سینتکس ابتدایی + +### سرتیترها + +``` +# سرتیتر ۱ +## سرتیتر ۲ +### سرتیتر ۳ +#### سرتیتر ۴ +##### سرتیتر ۵ +###### سرتیتر ۶ +``` + +## سرتیتر ۲ +### سرتیتر ۳ +#### سرتیتر ۴ +##### سرتیتر ۵ +###### سرتیتر ۶ + +### تاکید + +```text +*این متن کج خواهد بود* +_این متن هم کج خواهد بود_ + +**این متن توپر خواهد بود** +__این متن هم توپر خواهد بود__ + +_شما **می‌توانید** آنها را ترکیب کنید_ +``` + +*این متن کج خواهد بود* + +_این متن هم کج خواهد بود_ + +**این متن توپر خواهد بود** + +__این متن هم توپر خواهد بود__ + +_شما **می‌توانید** آنها را ترکیب کنید_ + +### فهرست‌ها + +#### مرتب نشده + +``` +* مورد ۱ +* مورد ۲ + * مورد ۱الف + * مورد ۲ب +``` + +* مورد ۱ +* مورد ۲ + * مورد ۱الف + * مورد ۲ب + +#### مرتب شده + +``` +۱. مورد ۱ +۲. مورد ۲ +۳. مورد ۳ + ۱. مورد ۳الف + ۲. مورد ۳ب +``` + +### عکس‌ها + +```markdown +![آرم گیت‌هاب](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png) +``` + +![آرم گیت‌هاب](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png) + +### پیوندها + +```markdown +[هیوگو](https://gohugo.io) +``` + +[هیوگو](https://gohugo.io) + +### بلوک نقل‌قول + +```markdown +همانطور که نیوتن گفت: + +> اگر فاصله دورتری را دیده‌ام با ایستادن بر شانه‌های غول‌ها بوده است. +``` + +> اگر فاصله دورتری را دیده‌ام با ایستادن بر شانه‌های غول‌ها بوده است. + +### کد درون‌خطی + +```markdown +`کد` درون‌خطی دارای `بک‌-تیک در اطراف` خود است. +``` + +`کد` درون‌خطی دارای `بک‌-تیک در اطراف` خود است. + +### بلوک‌های کد + +#### برجسته‌کردن سینتکس(Syntax) + +````markdown +```go +func main() { + fmt.Println("Hello World") +} +``` +```` + +```go +func main() { + fmt.Println("Hello World") +} +``` + +### جدول‌ها + +```markdown +| عنوان | توضیحات | +| --------- | ----------- | +| سرتیتر | عنوان | +| پاراگراف | متن | +``` + +| عنوان | توضیحات | +| --------- | ----------- | +| سرتیتر | عنوان | +| پاراگراف | متن | + +## منابع + +- [سینتکس مارک‌داون](https://www.markdownguide.org/basic-syntax/) +- [مارک‌داون هیوگو](https://gohugo.io/content-management/formats/#markdown) diff --git a/exampleSite/content/docs/_index.fa.md b/exampleSite/content/docs/_index.fa.md new file mode 100644 index 00000000..7e6483b8 --- /dev/null +++ b/exampleSite/content/docs/_index.fa.md @@ -0,0 +1,41 @@ +--- +linkTitle: "مستندات" +title: معرفی +--- + +👋 سلام! به مستندات هگزترا خوش آمدید! + + + +## هگزترا چیه؟ + +هگزترا یک تم [Hugo][hugo] مدرن و سریع است که با [Tailwind CSS][tailwind-css] ساخته شده است. + طراحی شده برای ساخت وب‌سایت‌های زیبا برای مستندات، وبلاگ‌ها و وب‌سایت‌ها، ویژگی‌های خارج از جعبه و انعطاف‌پذیری را برای پاسخگویی نیازهای مختلف فراهم می‌کند. + +## ویژگی‌ها + +- **طراحی زیبا** - با الهام از Nextra، هگزترا از Tailwind CSS برای ارائه یک طراحی مدرن که سایت شما را برجسته می‌کند، استفاده می‌کند. +- **طراحی واکنش‌گرا و حالت تیره** - در تمام دستگاه‌ها، از تلفن همراه، تبلت تا دسکتاپ، عالی به نظر می‌رسد. حالت تیره نیز برای انطباق با شرایط مختلف روشنایی پشتیبانی می‌شود. +- **سریع و سبک** - طراحی شده توسط Hugo، یک ایجادکننده سایت استاتیک سریع مثل رعد و برق که در یک فایل باینری قرار گرفته است، هگزترا ردپای خود را به حداقل می‌رساند. برای استفاده از آن به جاوااسکریپت یا Node.js نیازی ندارید. +- **جستجوی متن کامل** - جستجوی متن کاملا آفلاین داخلی طراحی شده توسط FlexSearch، بدون نیاز به پیکربندی اضافی. +- **امکانات کامل** - برای بهتر کردن محتوای شما مارک‌داون، برجسته‌کردن سینتکس، فرمول‌های ریاضی LaTeX، نمودارها و عناصر Shortcodeها را شامل میشه. فهرست مطالب، بردکرامب، صفحه‌بندی، پیمایش نوار کناری و موارد دیگر همه به صورت خودکار تولید می‌شوند. +- **چند زبانه و سئو آماده** - سایت‌های چند زبانه با حالت چند زبانه Hugo راحت ساخته می‌شوند. پشتیبانی خارج از جعبه برای برچسب‌های سئو، Open Graph و کارت‌های توییتر گنجانده شده است. + +## سوال یا بازخورد؟ + +{{< callout emoji="❓" >}} + هگزترا هنوز در حال توسعه است. + سوال یا بازخوردی دارید؟ با خیال راحت [یک موضوع را باز کنید](https://github.com/imfing/hextra/issues)! +{{< /callout >}} + +## بعدی + +برای شروع کردن به بخش زیر مراجعه کنید: + +{{< cards >}} + {{< card link="getting-started" title="شروع کنید" icon="document-text" subtitle="یادگیری نحوه ایجاد وب‌سایت با استفاده از هگزترا" >}} +{{< /cards >}} + +[hugo]: https://gohugo.io/ +[flex-search]: https://github.com/nextapps-de/flexsearch +[tailwind-css]: https://tailwindcss.com/ diff --git a/exampleSite/content/docs/advanced/_index.fa.md b/exampleSite/content/docs/advanced/_index.fa.md new file mode 100644 index 00000000..9bd69910 --- /dev/null +++ b/exampleSite/content/docs/advanced/_index.fa.md @@ -0,0 +1,16 @@ +--- +linkTitle: پیشرفته +title: موضوعات پیشرفته +prev: /docs/guide/shortcodes/steps +next: /docs/advanced/multi-language +--- + +این بخش برخی از موضوعات پیشرفته تم را پوشش می‌دهد. + + + +{{< cards >}} + {{< card link="multi-language" title="چند زبانه" icon="translate" >}} + {{< card link="customization" title="سفارشی‌سازی" icon="pencil" >}} + {{< card link="comments" title="سیستم نظردهی" icon="chat-alt" >}} +{{< /cards >}} diff --git a/exampleSite/content/docs/advanced/comments.fa.md b/exampleSite/content/docs/advanced/comments.fa.md new file mode 100644 index 00000000..852f4026 --- /dev/null +++ b/exampleSite/content/docs/advanced/comments.fa.md @@ -0,0 +1,39 @@ +--- +title: سیستم نظردهی +linkTitle: نظردهی +--- + +هگزترا از افزودن سیستم نظردهی به سایت شما پشتیبانی می‌کند. + در حال حاضر [giscus](https://giscus.app/) پشتیبانی می‌شود. + + + +## giscus + +[giscus](https://giscus.app/) یک سیستم نظردهی است که توسط [GitHub Discussions](https://docs.github.com/en/discussions) طراحی شده است. رایگان و متن باز است. + +برای فعال کردن giscus، باید موارد زیر را به پرونده پیکربندی سایت اضافه کنید: + +```yaml {filename="hugo.yaml"} +params: + comments: + enable: false + type: giscus + + giscus: + repo: + repoId: + category: + categoryId: +``` + +تنظیمات giscus را می توانید از وب‌سایت [giscus.app](https://giscus.app/) ساخت. جزئیات بیشتر را نیز می‌توانید در آنجا ببینید. + +دیدگاه‌ها را می‌توانید برای یک صفحه خاص در بالای همان صفحه فعال یا غیرفعال کرد: + +```yaml {filename="content/docs/about.md"} +--- +title: درباره ما +comments: true +--- +``` diff --git a/exampleSite/content/docs/advanced/customization.fa.md b/exampleSite/content/docs/advanced/customization.fa.md new file mode 100644 index 00000000..8c530659 --- /dev/null +++ b/exampleSite/content/docs/advanced/customization.fa.md @@ -0,0 +1,73 @@ +--- +title: سفارشی‌سازی هگزترا +linkTitle: سفارشی‌سازی +--- + +هگزترا برخی از گزینه‌های سفارشی‌سازی پیش‌فرض را در پرونده `hugo.yaml` برای پیکربندی تم ارائه می‌کند. + این صفحه گزینه‌های موجود و نحوه سفارشی‌سازی بیشتر تم را توضیح می‌دهد. + + + +## CSS سفارشی + +برای افزودن CSS سفارشی، باید یک پرونده `assets/css/custom.css` در سایت خود ایجاد کنیم. هگزترا به طور خودکار این پرونده را بارگیری خواهد کرد. + +### خانواده فونت + +خانواده فونت برای محتوا را می‌توانید با استفاده از این سفارشی کنید: + +```css {filename="assets/css/custom.css"} +.content { + font-family: "Times New Roman", Times, serif; +} +``` + +### عنصر کد درون‌خطی + +رنگ متن ترکیب شده با `متن دیگر` را می‌توانید با موارد زیر سفارشی کرد: + +```css {filename="assets/css/custom.css"} +.content code:not(.code-block code) { + color: #c97c2e; +} +``` + +### رنگ اصلی + +رنگ اصلی تم را می‌توانید با تنظیم متغیرهای `--primary-hue` و `--primary-saturation` سفارشی کرد: + +```css {filename="assets/css/custom.css"} +:root { + --primary-hue: 100deg; + --primary-saturation: 90%; +} +``` + +### برجسته‌کردن سینتکس + +فهرست تم‌های برجسته‌کردن سینتکس در دسترس [گالری Chroma Styles](https://xyproto.github.io/splash/docs/all.html) موجود است. شیوه‌نامه را می‌توانید با استفاده از دستور زیر تولید کرد: + +```shell +hugo gen chromastyles --style=github +``` + +برای نادیده گرفتن طرح زمینه برجسته‌کردن سینتکس پیش‌فرض، می‌توانید استایل‌های تولید شده را به پرونده CSS سفارشی اضافه کنیم. + +## اسکریپت‌های سفارشی + +با افزودن پرونده زیر می‌توانید اسکریپت‌های سفارشی را برای هر صفحه به انتهای اون اضافه کنید: + +``` +layouts/partials/custom/head-end.html +``` + +## طرح‌بندی‌های سفارشی + +با ایجاد پرونده‌ای با همین نام در دایرکتوری `layouts` سایت خود، می‌توانید طرح‌های تم را نادیده بگیرید. + به عنوان مثال، برای لغو طرح‌بندی `single.html` برای مستندات، یک پرونده`layouts/docs/single.html` در سایت خود ایجاد کنید. + +برای اطلاعات بیشتر، به [Templateهای هیوگو](https://gohugo.io/templates/) مراجعه کنید. + +## سفارشی‌سازی بیشتر + +چیزی را که دنبالش بودید پیدا نکردید؟ با خیال راحت [بحثی را باز کنید](https://github.com/imfing/hextra/discussions) یا به موضوع کمک کنید! diff --git a/exampleSite/content/docs/advanced/multi-language.fa.md b/exampleSite/content/docs/advanced/multi-language.fa.md new file mode 100644 index 00000000..37957a5b --- /dev/null +++ b/exampleSite/content/docs/advanced/multi-language.fa.md @@ -0,0 +1,83 @@ +--- +title: "چند زبانه" +weight: 1 +prev: /docs/advanced +--- + +هگزترا از ایجاد سایت با چندین زبان با استفاده از [حالت چند زبانه](https://gohugo.io/content-management/multilingual/) Hugo پشتیبانی می‌کند. + + + +## فعال‌سازی چند زبانه + +برای اینکه سایت ما چند زبانه شود، باید زبان‌های پشتیبانی شده را به Hugo بگوییم. باید به پرونده پیکربندی سایت اضافه کنیم: + +```yaml {filename="hugo.yaml"} +defaultContentLanguage: en +languages: + en: + languageName: English + weight: 1 + fa: + languageName: فارسی + weight: 2 + ja: + languageName: 日本語 + weight: 3 +``` + +## مدیریت ترجمه‌ها بر اساس نام پرونده + +Hugo از مدیریت ترجمه با نام پرونده پشتیبانی می‌کند. به عنوان مثال، اگر یک پرونده `content/docs/_index.md` به زبان انگلیسی داشته باشیم، می توانیم یک پرونده `content/docs/_index.fa.md` برای ترجمه فارسی ایجاد کنیم. + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/folder name="docs" state="open" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="_index.fa.md" >}} + {{< filetree/file name="_index.ja.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +توجه: Hugo همچنین از ت[ترجمه توسط دایرکتوری محتوا](https://gohugo.io/content-management/multilingual/#translation-by-content-directory) پشتیبانی می‌کند. + +## ترجمه آیتم‌های منو + +برای ترجمه آیتم‌های منو در نوار پیمایش، باید فیلد `identifier` را تنظیم کنیم: + +```yaml {filename="hugo.yaml"} +menu: + main: + - identifier: documentation + name: Documentation + pageRef: /docs + weight: 1 + - identifier: blog + name: Blog + pageRef: /blog + weight: 2 +``` + +و آنها را در پرونده i18n مربوطه ترجمه کنید: + +```yaml {filename="i18n/fa.yaml"} +documentation: مستندات +blog: وبلاگ +``` + +## ترجمه رشته‌ها + +برای ترجمه رشته‌ها در مکان‌های دیگر، باید ترجمه را به پرونده i18n مربوطه اضافه کنیم: + +```yaml {filename="i18n/fa.yaml"} +readMore: ادامه مطلب +``` + +فهرستی از رشته‌های استفاده شده در تم را می‌توان در پرونده `i18n/en.yaml` پیدا کرد. + +## بیشتر بخوانید + +- [حالت چند زبانه هیوگو](https://gohugo.io/content-management/multilingual/) +- [هیوگو چند زبانه قسمت ۱: ترجمه محتوا](https://www.regisphilibert.com/blog/2018/08/hugo-multilingual-part-1-managing-content-translation/) +- [هیوگو چند زبانه قسمت ۲: بومی‌سازی رشته‌ها](https://www.regisphilibert.com/blog/2018/08/hugo-multilingual-part-2-i18n-string-localization/) diff --git a/exampleSite/content/docs/getting-started.fa.md b/exampleSite/content/docs/getting-started.fa.md new file mode 100644 index 00000000..e2cc26a3 --- /dev/null +++ b/exampleSite/content/docs/getting-started.fa.md @@ -0,0 +1,190 @@ +--- +title: شروع کنید +weight: 1 +next: /docs/guide +prev: /docs +--- + +## شروع سریع از طریق Template + +{{< icon "github" >}} [imfing/hextra-starter-template](https://github.com/imfing/hextra-starter-template) + +با استفاده از template در بالای صفحه‌ای مخزن می‌توانید به سرعت شروع به کار کنید. + + + +ما یک [گردش کاری GitHub Actions](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow) ارائه کرده‌ایم که می‌تواند به ساخت و به‌کاراندازی خودکار سایت شما در گیت‌هاب Pages، برای میزبانی رایگان کمک کند. برای گزینه‌های بیشتر، [به‌کاراندازی سایت](../guide/deploy-site) را بررسی کنید. + +[🌐 نسخه‌ي نمایشی ↖](https://imfing.github.io/hextra-starter-template/) + +## شروع به عنوان پروژه جدید + +دو راه اصلی برای اضافه کردن تم هگزترا به پروژه Hugo وجود دارد: + +1. **ماژول‌های Hugo (توصیه می‌شود)**: ساده‌ترین و توصیه شده‌ترین. [ماژول‌های Hugo](https://gohugo.io/hugo-modules/) به شما امکان می‌دهند تم را مستقیما از منبع آنلاین آن وارد کنید. تم به صورت خودکار دانلود و توسط Hugo مدیریت می‌شود. +2. **ساب‌ماژول گیت**: در عوض، هگزترا را به عنوان یک [ساب‌ماژول گیت](https://git-scm.com/book/en/v2/Git-Tools-Submodules) اضافه کنید. تم توسط گیت دانلود شده و در پوشه `themes` پروژه شما ذخیره می‌شود. + +### هگزترا را به عنوان ماژول Hugo راه‌اندازی کنید + +#### پیش‌نیازها + +قبل از شروع، باید این نرم‌افزارها را نصب کنید: + +- [Hugo (extended version)](https://gohugo.io/installation/) +- [Git](https://git-scm.com/) +- [Go](https://go.dev/) + +#### مراحل + +{{% steps %}} + +### راه‌انداختن یک سایت جدید Hugo + +```shell +hugo new site my-site --format=yaml +``` + +### پیکربندی تم هگزترا از طریق ‌ماژول + +```shell +# مقداردهی اولیه ماژول هیوگو +cd my-site +hugo mod init github.com/username/my-site + +# افزودن تم هگزترا +hugo mod get github.com/imfing/hextra +``` + +با افزودن موارد زیر، `hugo.yaml` را برای استفاده از تم هگزترا پیکربندی کنید: + +```yaml +module: + imports: + - path: github.com/imfing/hextra +``` + +### اولین صفحه‌های محتوای خود را ایجاد کنید + +ایجاد صفحه محتوای جدید برای صفحه اصلی و صفحه مستندات: + +```shell +hugo new content/_index.md +hugo new content/docs/_index.md +``` + +### پیش‌نمایش سایت به صورت محلی + +```shell +hugo server --buildDrafts --disableFastRender +``` + +پیش‌نمایش سایت جدید شما در `http://localhost:1313/` در دسترس است. + +{{% /steps %}} + + +{{% details title="چگونه تم را به‌روز کنیم؟" %}} + +برای به‌روزرسانی همه ماژول‌های Hugo در پروژه خود به آخرین نسخه‌هایشان، دستور زیر را اجرا کنید: + +```shell +hugo mod get -u +``` + +برای به‌روزرسانی هگزترا به [آخرین نسخه منتشر شده](https://github.com/imfing/hextra/releases)، دستور زیر را اجرا کنید: + +```shell +hugo mod get -u github.com/imfing/hextra +``` + +برای جزئیات بیشتر به [ماژول‌های هیوگو](https://gohugo.io/hugo-modules/use-modules/#update-all-modules) مراجعه کنید. + +{{% /details %}} + +### هگزترا را به عنوان ساب‌ماژول Git راه‌اندازی کنید + +#### پیش‌نیازها + +قبل از شروع، باید این نرم‌افزارها را نصب کنید: + +- [Hugo (extended version)](https://gohugo.io/installation/) +- [Git](https://git-scm.com/) + +#### مراحل + +{{% steps %}} + +### راه‌انداختن یک سایت جدید Hugo + +```shell +hugo new site my-site --format=yaml +``` + +### افزودن تم هگزترا به عنوان یک ساب‌ماژول Git + +```shell +git submodule add https://github.com/imfing/hextra.git themes/hextra +``` + +با افزودن موارد زیر، `hugo.yaml` را برای استفاده از تم هگزترا پیکربندی کنید: + +```yaml +theme: hextra +``` + +### اولین صفحه‌های محتوای خود را ایجاد کنید + +ایجاد صفحه محتوای جدید برای صفحه اصلی و صفحه مستندات: + +```shell +hugo new content/_index.md +hugo new content/docs/_index.md +``` + +### پیش‌نمایش سایت به صورت محلی + +```shell +hugo server --buildDrafts --disableFastRender +``` + +پیش‌نمایش سایت جدید شما در `http://localhost:1313/` در دسترس است. + +{{% /steps %}} + + +هنگام استفاده از [CI/CD](https://en.wikipedia.org/wiki/CI/CD) برای به‌کاراندازی وب‌سایت Hugo، از اجرای دستور زیر قبل از اجرای دستور `hugo` مطمئن شوید و ضروری است. + +```shell +git submodule update --init +``` + +اجرا نشدن این دستور باعث می‌شود که پوشه تم با پرونده‌های تم هگزترا پر نشود و منجر به خرابی ساخت شود. + + +{{% details title="چگونه تم را به‌روز کنیم؟" %}} + +برای به‌روزرسانی تمام ساب‌ماژول‌های در مخزن خود به آخرین commitها که موجود هست، دستور زیر را اجرا کنید: + +```shell +git submodule update --remote +``` + +برای به‌روزرسانی هگزترا به آخرین commit، دستور زیر را اجرا کنید: + +```shell +git submodule update --remote themes/hextra +``` + +برای جزئیات بیشتر به [ساب‌ماژول‌های Git](https://git-scm.com/book/en/v2/Git-Tools-Submodules) مراجعه کنید. + +{{% /details %}} + +## بعدی + +برای شروع اضافه کردن مطالب بیشتر، بخش‌های زیر را کاوش کنید: + +{{< cards >}} + {{< card link="../guide/organize-files" title="سازماندهی پرونده‌ها" icon="document-duplicate" >}} + {{< card link="../guide/configuration" title="پیکربندی" icon="adjustments" >}} + {{< card link="../guide/markdown" title="مارک‌داون" icon="markdown" >}} +{{< /cards >}} diff --git a/exampleSite/content/docs/guide/_index.fa.md b/exampleSite/content/docs/guide/_index.fa.md new file mode 100644 index 00000000..f85d763c --- /dev/null +++ b/exampleSite/content/docs/guide/_index.fa.md @@ -0,0 +1,23 @@ +--- +title: راهنما +weight: 2 +prev: /docs/getting-started +next: /docs/guide/organize-files +sidebar: + open: true +--- + +برای یادگیری نحوه استفاده از هگزترا، بخش‌های زیر را کاوش کنید: + + + +{{< cards >}} + {{< card link="organize-files" title="سازماندهی پرونده‌ها" icon="document-duplicate" >}} + {{< card link="configuration" title="پیکربندی" icon="adjustments" >}} + {{< card link="markdown" title="مارک‌داون" icon="markdown" >}} + {{< card link="syntax-highlighting" title="برجسته‌کردن سینتکس" icon="sparkles" >}} + {{< card link="latex" title="LaTeX" icon="variable" >}} + {{< card link="diagrams" title="نمودارها" icon="chart-square-bar" >}} + {{< card link="shortcodes" title="کدهای کوتاه" icon="template" >}} + {{< card link="deploy-site" title="به‌کاراندازی سایت" icon="server" >}} +{{< /cards >}} diff --git a/exampleSite/content/docs/guide/configuration.fa.md b/exampleSite/content/docs/guide/configuration.fa.md new file mode 100644 index 00000000..4b5ce340 --- /dev/null +++ b/exampleSite/content/docs/guide/configuration.fa.md @@ -0,0 +1,271 @@ +--- +title: پیکربندی +weight: 2 +--- + +Hugo پیکربندی خود را از `hugo.yaml` در ریشه سایت Hugo شما می‌خواند. + پرونده پیکربندی جایی است که می‌توانید تمام جنبه‌های سایت خود را پیکربندی کنید. + پرونده پیکربندی این سایت [`exampleSite/hugo.yaml`](https://github.com/imfing/hextra/blob/main/exampleSite/hugo.yaml) را در گیت‌هاب بررسی کنید تا ایده‌ای جامع از تنظیمات موجود و بهترین شیوه‌ها بدست آورید. + + + +## ناوبری + +### منو + +منوی سمت چپ بالا در قسمت `menu.main` در پرونده پیکربندی تعریف شده است: + +```yaml {filename="hugo.yaml"} +menu: + main: + - name: مستندات + pageRef: /docs + weight: 1 + - name: وبلاگ + pageRef: /blog + weight: 2 + - name: درباره ما + pageRef: /about + weight: 3 + - name: جستجو + weight: 4 + params: + type: search + - name: گیت‌هاب + weight: 5 + url: "https://github.com/imfing/hextra" + params: + icon: github +``` + +انواع مختلفی از آیتم‌های منو وجود دارد: + +1. پیوند به صفحه‌ای در سایت با `pageRef` + ```yaml + - name: مستندات + pageRef: /docs + ``` +2. پیوند به یک نشانی اینترنتی با `url` + ```yaml + - name: گیت‌هاب + url: "https://github.com" + ``` +3. نوار جستجو با `type: search` + ```yaml + - name: جستجو + params: + type: search + ``` +4. آیکون + ```yaml + - name: گیت‌هاب + params: + icon: github + ``` + +این آیتم‌های منو را می‌توانید با تنظیم پارامتر `weight` مرتب کنید. + +### آرم و عنوان + +برای تغییر آرم پیش‌فرض، `hugo.yaml` را ویرایش کنید و مسیر را به پرونده آرم خود در دایرکتوری `static` اضافه کنید. + به صورت اختیاری، می‌توانید پیوندی را که کاربران هنگام کلیک کردن روی آرم شما به آن هدایت می‌شوند، تغییر دهید، همچنین عرض و ارتفاع آرم را به پیکسل تنظیم کنید. + +```yaml {filename="hugo.yaml"} +params: + navbar: + displayTitle: true + displayLogo: true + logo: + path: images/logo.svg + dark: images/logo-dark.svg + link: / + width: 40 + height: 20 +``` + +## نوار کناری + +### نوار کناری اصلی + +برای نوار کناری اصلی، به طور خودکار از ساختار دایرکتوری محتوا تولید می‌شود. + برای جزئیات بیشتر به صفحه [سازماندهی پرونده‌ها](/fa/docs/guide/organize-files) مراجعه کنید. + +برای حذف یک صفحه از نوار کناری سمت راست، پارامتر`sidebar.exclude` را در قسمت بالایی صفحه تنظیم کنید: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: پیکربندی +sidebar: + exclude: true +--- +``` + +### پیوندهای اضافی + +پیوندهای اضافی نوار کناری در زیر بخش `menu.sidebar` در پرونده پیکربندی تعریف شده است: + +```yaml {filename="hugo.yaml"} +menu: + sidebar: + - name: بیشتر + params: + type: separator + weight: 1 + - name: "درباره ما" + pageRef: "/about" + weight: 2 + - name: "مستندات هیوگو ↖" + url: "https://gohugo.io/documentation/" + weight: 3 +``` + +## نوار کناری سمت چپ + +### فهرست مطالب + +فهرست مطالب به طور خودکار از سرتیرهای موجود در پرونده محتوا تولید می‌شود. می‌توان آن را با تنظیم `toc: false` در قسمت بالایی صفحه غیرفعال کرد. + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: پیکربندی +toc: false +--- +``` + +### پیوند ویرایش صفحه + +برای پیکربندی پیوند ویرایش صفحه، می‌توانیم پارامتر `params.editURL.base` را در پرونده پیکربندی تنظیم کنیم: + +```yaml {filename="hugo.yaml"} +params: + editURL: + enable: true + base: "https://github.com/your-username/your-repo/edit/main" +``` + +پیوندهای ویرایش به طور خودکار برای هر صفحه براساس نشانی اینترنتی ارائه شده به عنوان دایرکتوری ریشه ایجاد می‌شود. + اگر می‌خواهید پیوند ویرایش را برای یک صفحه خاص تنظیم کنید، می‌توانید پارامتر `editURL` را در قسمت بالای صفحه تنظیم کنید: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: پیکربندی +editURL: "https://example.com/edit/this/page" +--- +``` + +## پاورقی + +### کپی‌رایت + +برای تغییر متن کپی‌رایت نمایش داده شده در پاورقی وب‌سایت خود، باید پرونده‌ای به نام `i18n/fa.yaml` ایجاد کنید. + در این پرونده متن کپی‌رایت جدید خود را مطابق شکل زیر مشخص کنید: + +```yaml {filename="i18n/fa.yaml"} +copyright: "© ۲۰۲۴ متن شما در اینجا" +``` + +برای مرجع شما، یک مثال [`i18n/en.yaml`](https://github.com/imfing/hextra/blob/main/i18n/en.yaml) را می‌توانید در مخزن گیت‌هاب پیدا کنید. علاوه بر این، می‌توانید از فرمت مارک‌داون در متن کپی‌رایت استفاده کنید. + +## سایر موارد + +### Favicon + +برای سفارشی کردن [favicon](https://en.wikipedia.org/wiki/Favicon) برای سایت خود، پرونده‌های آیکون را درون پوشه `static` قرار دهید تا [faviconهای پیش‌فرض در تم](https://github.com/imfing/hextra/tree/main/static) جایگزین شود: + +{{< filetree/container >}} + {{< filetree/folder name="static" >}} + {{< filetree/file name="android-chrome-192x192.png" >}} + {{< filetree/file name="android-chrome-512x512.png" >}} + {{< filetree/file name="apple-touch-icon.png" >}} + {{< filetree/file name="favicon-16x16.png" >}} + {{< filetree/file name="favicon-32x32.png" >}} + {{< filetree/file name="favicon-dark.svg" >}} + {{< filetree/file name="favicon.ico" >}} + {{< filetree/file name="favicon.svg" >}} + {{< filetree/file name="site.webmanifest" >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +هر دو پرونده `favicon.ico` و `favicon.svg` را در پروژه خود قرار دهید، تا از نمایش صحیح faviconهای سایت خود مطمئن شوید. + +در حالی که `favicon.ico` به طور کلی برای مرورگرهای قدیمی‌تر است، `favicon.svg` توسط مرورگرهای مدرن پشتیبانی می‌شود. favicon`favicon-dark.svg` اختیاری را می‌توانید برای یک تجربه سفارشی در حالت تیره اضافه کرد. + با خیال راحت از ابزارهایی مانند [favicon.io](https://favicon.io/) یا [favycon](https://github.com/ruisaraiva19/favycon) برای تولید این آیکون‌ها استفاده کنید. + +### پیکربندی تم + +از تنظیمات `theme` برای پیکربندی حالت پیش‌فرض تم و دکمه جابه‌جایی استفاده کنید و به بازدیدکنندگان اجازه دهید بین حالت روشن یا تیره جابجا شوند. + +```yaml {filename="hugo.yaml"} +params: + theme: + # light | dark | system + default: system + displayToggle: true +``` + +گزینه‌های `theme.default`: + +- `light` - همیشه از حالت روشن استفاده شود +- `dark` - همیشه از حالت تیره استفاده شود +- `system` - همگام‌سازی با تنظیمات سیستم‌عامل (پیش‌فرض) + +پارامتر `theme.displayToggle` به شما این امکان را می‌دهد که یک دکمه جابجایی برای تغییر حالت تم‌ها نمایش دهید. + وقتی روی `true` تنظیم شود، بازدیدکنندگان می‌توانند بین حالت روشن یا تیره جابه‌جا شوند و تنظیمات پیش‌فرض را نادیده بگیرند. + +### عرض صفحه + +عرض صفحه را می‌توان با پارامتر `params.page.width` در پرونده پیکربندی سفارشی کرد: + +```yaml {filename="hugo.yaml"} +params: + page: + # full (100%), wide (90rem), normal (1280px) + width: wide +``` + +سه گزینه در دسترس وجود دارد: `full`، `wide` و normal`. به طور پیش‌فرض، عرض صفحه روی normal` تنظیم شده است. + +به طور مشابه، عرض نوار ناوبری و پاورقی را می‌توان با پارامترهای `params.navbar.width` و `params.footer.width` سفارشی کرد. + +### فهرست جستجو + +جستجوی متن کامل توسط [FlexSearch](https://github.com/nextapps-de/flexsearch) پیاده‌سازی شده و به طور پیش‌فرض فعال است. + برای سفارشی کردن فهرست جستجو، پارامتر `params.search.flexsearch.index` را در پرونده پیکربندی تنظیم کنید: + +```yaml {filename="hugo.yaml"} +params: + # Search + search: + enable: true + type: flexsearch + + flexsearch: + # index page by: content | summary | heading | title + index: content +``` + +گزینه‌های `flexsearch.index`: + +- `content` - محتوای کامل صفحه (پیش‌فرض) +- `summary` - خلاصه صفحه، برای جزئیات بیشتر به [خلاصه مطالب Hugo](https://gohugo.io/content-management/summaries/) مراجعه کنید +- `heading` - سرتیترهای سطح ۱ و سطح ۲ +- `title` - فقط شامل عنوان صفحه است + +برای حذف یک صفحه از فهرست جستجو، `excludeSearch: true` را در قسمت بالای صفحه تنظیم کنید: + +```yaml {filename="content/docs/guide/configuration.md"} +--- +title: پیکربندی +excludeSearch: true +--- +``` + +### گوگل آنالیتیکس + +برای فعال کردن [گوگل آنالیتیکس](https://marketingplatform.google.com/about/analytics/)، پرچم `services.googleAnalytics.ID` را در `hugo.yaml` تنظیم کنید: + +```yaml {filename="hugo.yaml"} +services: + googleAnalytics: + ID: G-MEASUREMENT_ID +``` diff --git a/exampleSite/content/docs/guide/deploy-site.fa.md b/exampleSite/content/docs/guide/deploy-site.fa.md new file mode 100644 index 00000000..4635993e --- /dev/null +++ b/exampleSite/content/docs/guide/deploy-site.fa.md @@ -0,0 +1,162 @@ +--- +title: به‌کاراندازی سایت +prev: /docs/guide/shortcodes +next: /docs/advanced +--- + +Hugo وب‌سایت‌های استاتیک را ایجاد می‌کند و امکان گزینه‌های میزبانی انعطاف‌پذیر را فراهم می‌کند. + این صفحه راهنماهایی برای به‌کاراندازی سایت هگزترا شما در پلتفرم‌های مختلف ارائه می‌کند. + + + + + +## گیت‌هاب Pages + +[گیت‌هاب Pages](https://docs.github.com/pages) روشی توصیه شده برای به‌کاراندازی و میزبانی وب‌سایت شما به صورت رایگان است. + +اگر سایت را با استفاده از [hextra-starter-template](https://github.com/imfing/hextra-starter-template) راه‌اندازی سریع پیاده‌سازی می‌کنید، گردش کار گیت‌هاب Actions را به صورت خارج از جعبه ارائه کرده‌ایم که به‌کاراندازی خودکار در گیت‌هاب Pages به شما کمک می‌کند. + +{{% details title="پیکربندی گیت‌هاب Actions" closed="true" %}} + +در زیر یک پیکربندی مثال از [hextra-starter-template](https://github.com/imfing/hextra-starter-template) آورده شده است: + +```yaml {filename=".github/workflows/pages.yaml"} +# Sample workflow for building and deploying a Hugo site to GitHub Pages +name: Deploy Hugo site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +# Default to bash +defaults: + run: + shell: bash + +jobs: + # Build job + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.117.0 + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + - name: Setup Go + uses: actions/setup-go@v4 + with: + go-version: '1.21' + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: '0.117.0' + extended: true + - name: Build with Hugo + env: + # For maximum backward compatibility with Hugo modules + HUGO_ENVIRONMENT: production + HUGO_ENV: production + run: | + hugo \ + --gc --minify \ + --baseURL "https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/" + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: ./public + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 +``` + +{{% /details %}} + + +{{< callout >}} + در تنظیمات مخزن خود، **Pages** > **Build and deployment** > **Source** را روی **GitHub Actions** تنظیم کنید: + ![](https://user-images.githubusercontent.com/5097752/266784808-99676430-884e-42ab-b901-f6534a0d6eee.png) +{{< /callout >}} + +به‌طور پیش‌فرض، گردش کار گیت‌هاب Actions بالا `.github/workflows/pages.yaml` فرض می‌کند که سایت در حال به‌کاراندازی در `https://.github.io//` است. + +اگر در حال استفاده از `https://.github.io/` هستید، سپس `--baseURL` را تغییر دهید: + +```yaml {filename=".github/workflows/pages.yaml",linenos=table,linenostart=54,hl_lines=[4]} +run: | + hugo \ + --gc --minify \ + --baseURL "https://${{ github.repository_owner }}.github.io/" +``` + +اگر می‌خواهید روی دامنه شخصی خود استقرار پیدا کند، لطفا مقدار `--baseURL` را بر این اساس تغییر دهید. + + +## کلودفلر Pages + +1. کد منبع سایت خود را در یک مخزن Git (به عنوان مثال گیت‌هاب) قرار دهید +2. وارد [پیشخوان کلودفلر](https://dash.cloudflare.com/) شوید و حساب خود را انتخاب کنید +3. در صفحه اصلی حساب‌کاربری، **Workers & Pages** > **Create application** > **Pages** > **Connect to Git** را انتخاب کنید +4. مخزن را انتخاب کنید و در بخش Set up builds and Deployments اطلاعات زیر را وارد کنید: + +| Configuration | Value | +| ----------------- | -------------------- | +| Production branch | `main` | +| Build command | `hugo --gc --minify` | +| Build directory | `public` | + +برای جزئیات بیشتر، بررسی کنید: +- [یک سایت هیوگو راه‌اندازی کنید.](https://developers.cloudflare.com/pages/framework-guides/deploy-a-hugo-site/#deploy-with-cloudflare-pages). +- [پشتیبانی زبان و ابزار.](https://developers.cloudflare.com/pages/platform/language-support-and-tools/). + + +## Netlify + +1. کد خود را به مخزن Git خود (گیت‌هاب، گیت‌لب و غیره) ارسال کنید. +2. [وارد کردن پروژه](https://app.netlify.com/start) به Netlify +3. اگر از [hextra-starter-template][hextra-starter-template] استفاده نمی‌کنید، موارد زیر را به صورت دستی پیکربندی کنید: + - دستور Build را روی `hugo --gc --minify` پیکربندی کنید + - دایرکتوری Publish را برای `public` مشخص کنید + - `HUGO_VERSION` متغیر محیط استقرار را اضافه کنید و روی `0.119.0` تنظیم کنید +4. استقرار! + +برای جزئیات بیشتر [Hugo را در Netlify](https://docs.netlify.com/integrations/frameworks/hugo/) بررسی کنید. + + +## Vercel + +1. کد خود را به مخزن Git خود (گیت‌هاب، گیت‌لب و غیره) ارسال کنید. +2. به [پیشخوان Vercel](https://vercel.com/dashboard) بروید و پروژه Hugo خود را وارد کنید +3. پروژه را پیکربندی کنید، Hugo را به‌ عنوان چارچوب Preset انتخاب کنید +4. دستور Build و Install را لغو کنید: + 1. دستور Build را روی `hugo --gc --minify` تنظیم کنید + 2. دستور Install را روی `yum install golang` تنظیم کنید + +![پیکربندی استقرار Vercel](https://github.com/imfing/hextra/assets/5097752/887d949b-8d05-413f-a2b4-7ab92192d0b3) diff --git a/exampleSite/content/docs/guide/diagrams.fa.md b/exampleSite/content/docs/guide/diagrams.fa.md new file mode 100644 index 00000000..83fff71f --- /dev/null +++ b/exampleSite/content/docs/guide/diagrams.fa.md @@ -0,0 +1,53 @@ +--- +title: نمودارها +weight: 6 +next: /docs/guide/shortcodes +--- + +در حال حاضر، هگزترا از [Mermaid](#mermaid) برای نمودارها پشتیبانی می‌کند. + + + +## Mermaid + +[Mermaid](https://github.com/mermaid-js/mermaid#readme) یک ابزار نمودار و نمودار مبتنی بر جاوااسکریپت است که تعاریف متنی الهام گرفته از مارک‌داون را دریافت می‌کند و نمودارها را به صورت پویا در مرورگر ایجاد می‌کند. به عنوان مثال، Mermaid می‌تواند نمودارهای فلوچارت، نمودارهای توالی، نمودارهای دایره‌ای و موارد دیگر را رندر کند. + +استفاده از Mermaid در هگزترا به سادگی نوشتن یک بلوک کد با مجموعه زبان `mermaid` است: + +````markdown +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` +```` + +به صورت زیر رندر خواهد شد: + +```mermaid +graph TD; + A-->B; + A-->C; + B-->D; + C-->D; +``` + +نمودار توالی: + +```mermaid +sequenceDiagram + participant Alice + participant Bob + Alice->>John: Hello John, how are you? + loop Healthcheck + John->>John: Fight against hypochondria + end + Note right of John: Rational thoughts
prevail! + John-->>Alice: Great! + John->>Bob: How about you? + Bob-->>John: Jolly good! +``` + +برای اطلاعات بیشتر، لطفا به [مستندات Mermaid](https://mermaid-js.github.io/mermaid/#/) مراجعه کنید. diff --git a/exampleSite/content/docs/guide/latex.fa.md b/exampleSite/content/docs/guide/latex.fa.md new file mode 100644 index 00000000..e91d52e9 --- /dev/null +++ b/exampleSite/content/docs/guide/latex.fa.md @@ -0,0 +1,60 @@ +--- +title: "LaTeX" +weight: 4 +math: true +--- + +$\KaTeX$ برای رندر کردن عبارت‌های ریاضی LaTeX استفاده می‌شود. می‌توان آن را در هر صفحه با تنظیم `math` روی `true` در قسمت بالای صفحه فعال کرد. + + + +```yaml {filename="Markdown"} +--- +title: "صفحه من با LaTeX" +math: true +--- + +``` + +وقتی فعال باشد، اسکریپت‌ها، شیوه‌نامه‌ها و فونت‌های KaTeX به طور خودکار در سایت شما قرار می‌گیرند. می‌توانید از عبارت‌های ریاضی LaTeX در محتوای مارک‌داون خود استفاده کنید. + +## مثال + +هر دو عبارت‌های ریاضی درون‌خطی و پاراگراف جداگانه LaTeX در محتوای مارک‌داون پشتیبانی می‌شوند. + +### درون‌خطی + +```markdown {filename="page.md"} +این $\sigma(z) = \frac{1}{1 + e^{-z}}$ درون‌خطی است. +``` + +این $\sigma(z) = \frac{1}{1 + e^{-z}}$ درون‌خطی است. + +### پاراگراف جداگانه + +```markdown {filename="page.md"} +$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt$$ +``` + +به صورت زیر رندر خواهد شد: + +$$F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-j\omega t} \, dt$$ + + +## توابع پشتیبانی شده + +برای مشاهده فهرست توابع پشتیبانی شده، به [توابع پشتیبانی شده KaTeX](https://katex.org/docs/supported.html) مراجعه کنید. + +## شیمی + +عبارت‌های شیمی از طریق افزونه [mhchem](https://mhchem.github.io/MathJax-mhchem/) پشتیبانی می‌شوند. + +درون‌خطی: $\ce{H2O}$ آب است. + +پاراگراف جداگانه: + +```markdown {filename="page.md"} +$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ +``` + +$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ diff --git a/exampleSite/content/docs/guide/markdown.fa.md b/exampleSite/content/docs/guide/markdown.fa.md new file mode 100644 index 00000000..38214d6d --- /dev/null +++ b/exampleSite/content/docs/guide/markdown.fa.md @@ -0,0 +1,106 @@ +--- +title: مارک‌داون +weight: 2 +--- + +Hugo از سینتکس [مارک‌داون](https://en.wikipedia.org/wiki/Markdown) برای قالب‌بندی متن، ایجاد فهرست و موارد دیگر پشتیبانی می‌کند. این صفحه برخی از رایج‌ترین نمونه‌های سینتکس مارک‌داون را به شما نشان می‌دهد. + + + +## مثال‌های مارک‌داون + +### ظاهر طراحی دادن به متن + +| سبک | سینتکس | مثال | خروجی | +| -------- | -------- | ------ | ------ | +| توپر | `**متن توپر**` | `**متن توپر**` | **متن توپر** | +| کج | `*متن کج*` | `*متن کج*` | *متن کج* | +| خط خورده | `~~متن خط خورده~~` | `~~متن خط خورده~~` | ~~متن خط خورده~~ | +| پایین‌نویس | `` | `این یک متن پایین‌نویس است` | این یک متن پایین‌نویس است | +| بالانویس | `` | `این یک متن بالانویس است` | این یک متن بالانویس است | + +### بلوک نقل‌قول + +بلوک نقل‌قول با ذکر منبع + +> با اشتراک‌گذاری حافظه ارتباط برقرار نکنید، حافظه را با برقراری ارتباط به اشتراک بگذارید.
+> — راب پایک[^1] + +[^1]: نقل‌قول بالا گزیده‌ای از [سخنرانی](https://www.youtube.com/watch?v=PAAkCSZUG1c) راب پایک در Gopherfest، در تاریخ ۲۷ آبان ۱۳۹۴ است. + +### جدول‌ها + +جدول‌ها بخشی از مشخصات اصلی مارک‌داون نیستند، اما Hugo از آنها در خارج از جعبه پشتیبانی می‌کند. + + نام | سن +--------|------ + گودرز | ۳۰ + آصف | ۳۴ + +#### مارک‌داون درون‌خطی درون جدول‌ها + +| کج | توپر | کد | +| -------- | -------- | ------ | +| *کج* | **توپر** | `کد` | + +### بلوک‌های کد + +{{< cards >}} + {{< card link="../../guide/syntax-highlighting" title="برجسته‌کردن سینتکس" icon="sparkles" >}} +{{< /cards >}} + +### فهرست‌ها + +#### فهرست مرتب‌شده + +1. اولین آیتم +2. دومین آیتم +3. سومین آیتم + +#### فهرست مرتب‌نشده + +* فهرست آیتم +* یک آیتم دیگه +* و یک آیتم دیگه + +#### فهرست تو در تو + +* میوه + * سیب + * پرتقال + * موز +* لبنیات + * شیر + * پنیر + +### عکس‌ها + +![](https://source.unsplash.com/featured/800x600?landscape) + +با توضیحات: + +![](https://source.unsplash.com/featured/800x600?landscape "یک چشم‌انداز Unsplash") + +## پیکربندی + +Hugo از [Goldmark](https://github.com/yuin/goldmark) برای تجزیه مارک‌داون استفاده می‌کند. + رندر مارک‌داون را می‌توان در `hugo.yaml` تحت `markup.goldmark` پیکربندی کنید. + در زیر پیکربندی پیش‌فرض هگزترا را می‌توانید ببینید: + +```yaml {filename="hugo.yaml"} +markup: + goldmark: + renderer: + unsafe: true + highlight: + noClasses: false +``` + +برای گزینه‌های پیکربندی بیشتر، به مستندات Hugo در [پیکربندی نشانه‌گذاری](https://gohugo.io/getting-started/configuration-markup/) مراجعه کنید. + +## منابع یادگیری + +* [راهنمای مارک‌داون](https://www.markdownguide.org/) +* [برگه تقلب مارک‌داون](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) +* [آموزش مارک‌داون](https://www.markdowntutorial.com/) +* [مرجع مارک‌داون](https://commonmark.org/help/) diff --git a/exampleSite/content/docs/guide/organize-files.fa.md b/exampleSite/content/docs/guide/organize-files.fa.md new file mode 100644 index 00000000..e6eb50f7 --- /dev/null +++ b/exampleSite/content/docs/guide/organize-files.fa.md @@ -0,0 +1,147 @@ +--- +title: سازماندهی پرونده‌ها +weight: 1 +prev: /docs/guide +--- + +## ساختار دایرکتوری + +به طور پیش‌فرض، Hugo پرونده‌های مارک‌داون را در فهرست `content` جستجو می‌کند و ساختار فهرست، ساختار خروجی نهایی وب‌سایت شما را تعیین می‌کند. همین سایت را به عنوان مثال در نظر بگیرید: + + + +{{< 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"} +![](image.png) +``` + +همچنین می‌توانید از ویژگی [بسته‌های صفحه][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"} +![](image.png) +``` + +همچنین می‌توانید پرونده‌های عکس‌ها را در دایرکتوری `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"} +![](/images/image.png) +``` + +[page-bundles]: https://gohugo.io/content-management/page-bundles/#leaf-bundles diff --git a/exampleSite/content/docs/guide/shortcodes/_index.fa.md b/exampleSite/content/docs/guide/shortcodes/_index.fa.md new file mode 100644 index 00000000..9c335d1f --- /dev/null +++ b/exampleSite/content/docs/guide/shortcodes/_index.fa.md @@ -0,0 +1,21 @@ +--- +title: کدهای کوتاه +weight: 9 +prev: /docs/guide/diagrams +next: /docs/guide/shortcodes/filetree +--- + +[کدهای کوتاه Hugo](https://gohugo.io/content-management/shortcodes/) قطعه‌های ساده‌ای در داخل پرونده‌های محتوای شما هستند که قالب‌های داخلی یا سفارشی را فراخوانی می‌کنند. + +هگزترا مجموعه‌ای از کدهای کوتاه زیبا را برای بهبود محتوای شما ارائه می‌کند. + + +{{< cards >}} + {{< card link="filetree" title="FileTree" icon="folder-tree" >}} + {{< card link="icon" title="آیکون" icon="badge-check" >}} + {{< card link="details" title="جزئیات" icon="chevron-right" >}} + {{< card link="tabs" title="زبانه‌ها" icon="collection" >}} + {{< card link="callout" title="فراخوانی" icon="warning" >}} + {{< card link="cards" title="کارت‌ها" icon="card" >}} + {{< card link="steps" title="مراحل" icon="one" >}} +{{< /cards >}} diff --git a/exampleSite/content/docs/guide/shortcodes/callout.fa.md b/exampleSite/content/docs/guide/shortcodes/callout.fa.md new file mode 100644 index 00000000..96a6a83d --- /dev/null +++ b/exampleSite/content/docs/guide/shortcodes/callout.fa.md @@ -0,0 +1,78 @@ +--- +title: کامپوننت فراخوانی +linkTitle: فراخوانی +aliases: +- فراخوانی‌ها +--- + +یک کامپوننت داخلی برای نشان دادن اطلاعات مهم به خواننده. + + + +## مثال + +{{< callout emoji="👾">}} + **فراخوانی** یک متن کوتاه است که برای جلب توجه در نظر گرفته شده است. +{{< /callout >}} + +{{< callout type="info" >}} + **فراخوانی** یک متن کوتاه است که برای جلب توجه در نظر گرفته شده است. +{{< /callout >}} + +{{< callout type="warning" >}} + **فراخوانی** یک متن کوتاه است که برای جلب توجه در نظر گرفته شده است. +{{< /callout >}} + +{{< callout type="error" >}} + **فراخوانی** یک متن کوتاه است که برای جلب توجه در نظر گرفته شده است. +{{< /callout >}} + +## استفاده + +### پیش‌فرض + +{{< callout emoji="🌐">}} + Hugo را می‌توانید برای ایجاد طیف گسترده‌ای از وب‌سایت‌ها، از جمله وبلاگ‌ها، نمونه‌کارها، سایت‌های مستندسازی و غیره استفاده کرد. +{{< /callout >}} + +```markdown +{{}} + Hugo را می‌توانید برای ایجاد طیف گسترده‌ای از وب‌سایت‌ها، از جمله وبلاگ‌ها، نمونه‌کارها، سایت‌های مستندسازی و غیره استفاده کرد. +{{}} +``` + +### اطلاعات + +{{< callout type="info" >}} + لطفا برای مشاهده آخرین نسخه‌ها به گیت‌هاب مراجعه کنید. +{{< /callout >}} + +```markdown +{{}} + لطفا برای مشاهده آخرین نسخه‌ها به گیت‌هاب مراجعه کنید. +{{}} +``` + +### هشدار + +{{< callout type="warning" >}} + این API در نسخه بعدی منسوخ خواهد شد. +{{< /callout >}} + +```markdown +{{}} + این API در نسخه بعدی منسوخ خواهد شد. +{{}} +``` + +### خطا + +{{< callout type="error" >}} + مشکلی پیش آمد و اتفاقی رخ خواهد شد. +{{< /callout >}} + +```markdown +{{}} + مشکلی پیش آمد و اتفاقی رخ خواهد شد. +{{}} +``` diff --git a/exampleSite/content/docs/guide/shortcodes/cards.fa.md b/exampleSite/content/docs/guide/shortcodes/cards.fa.md new file mode 100644 index 00000000..6810bfac --- /dev/null +++ b/exampleSite/content/docs/guide/shortcodes/cards.fa.md @@ -0,0 +1,64 @@ +--- +title: کامپوننت کارت‌ها +linkTitle: کارت‌ها +--- + +## مثال + +{{< cards >}} + {{< card link="../callout" title="فراخوانی" icon="warning" >}} + {{< card link="/fa" title="بدون آیکون" >}} +{{< /cards >}} + +{{< cards >}} + {{< card link="/" title="کارت تصویر" image="https://source.unsplash.com/featured/800x600?landscape" subtitle="یک چشم‌انداز Unsplash" >}} + {{< card link="/" title="تصویر محلی" image="/images/card-image-unprocessed.jpg" subtitle="تصویر خام در دایرکتوری استاتیک است." >}} + {{< card link="/" title="تصویر محلی" image="images/space.jpg" subtitle="تصویر در دایرکتوری assets می‌باشد و پردازش توسط Hugo شده است." method="Resize" options="600x q80 webp" >}} +{{< /cards >}} + +## استفاده + +``` +{{}} + {{}} + {{}} +{{}} +``` + +``` +{{}} + {{}} + {{}} + {{}} +{{}} +``` + +## پارامترهای کارت + +| پارامتر | توضیحات | +|----------- |---------------------------------------| +| `link` | نشانی اینترنتی (داخلی یا خارجی). | +| `title` | عنوان برای کارت. | +| `subtitle` | عنوان زیرنویس (از مارک‌داون پشتیبانی می‌کند).. | +| `icon` | نام آیکون. | + +## کارت تصویر + +علاوه بر این، کارت از افزودن تصویر و پردازش از طریق این پارامترها پشتیبانی می‌کند: + +| پارامتر | توضیحات | +|----------- |---------------------------------------------| +| `image` | نشانی اینترنتی تصویر کارت را مشخص می‌کند. | +| `method` | روش پردازش تصویر Hugo را تنظیم می‌کند. | +| `options` | گزینه‌های پردازش تصویر Hugo را پیکربندی می‌کند. | + +کارت از سه نوع تصویر پشتیبانی می‌کند: + +1. تصویر از راه دور: نشانی اینترنتی کامل در پارامتر `image`. +2. تصویر استاتیک: از مسیر نسبی در دایرکتوری `static/` Hugo استفاده کنید. +3. تصویر پردازش شده: از مسیر نسبی در دایرکتوری `assets/` Hugo استفاده کنید. + +هگزترا در صورت نیاز به پردازش تصویر در حین ساخت، به طور خودکار تشخیص می‌دهد و پارامتر `options` یا تنظیمات پیش‌فرض را اعمال می‌کند (تغییر اندازه، 800x، کیفیت 80، فرمت WebP). + در حال حاضر این `method` را پشتیبانی می‌کند: `Resize`، `Fit`، `Fill` و `Crop`. + +برای اطلاعات بیشتر در مورد دستورات، روش‌ها و گزینه‌های پردازش تصویر داخلی Hugo به [مستندات پردازش تصویر](https://gohugo.io/content-management/image-processing/) آن‌ها مراجعه کنید. diff --git a/exampleSite/content/docs/guide/shortcodes/details.fa.md b/exampleSite/content/docs/guide/shortcodes/details.fa.md new file mode 100644 index 00000000..f3b9882d --- /dev/null +++ b/exampleSite/content/docs/guide/shortcodes/details.fa.md @@ -0,0 +1,43 @@ +--- +title: جزئیات +--- + +یک کامپوننت داخلی برای نمایش محتوای قابل باز و بسته شدن. + + + +## مثال + +{{% details title="جزئیات" %}} + +این محتوای جزئیات است. + +مارک‌داون **پشتیبانی می‌شود**. + +{{% /details %}} + +{{% details title="برای نمایش روی من کلیک کنید" closed="true" %}} + +این به طور پیش‌فرض پنهان می‌شود. + +{{% /details %}} + +## استفاده + +````markdown +{{%/* details title="جزئیات" */%}} + +این محتوای جزئیات است. + +مارک‌داون **پشتیبانی می‌شود**. + +{{%/* /details */%}} +```` + +````markdown +{{%/* details title="برای نمایش روی من کلیک کنید"closed="true" */%}} + +این به طور پیش‌فرض پنهان می‌شود. + +{{%/* /details */%}} +```` diff --git a/exampleSite/content/docs/guide/shortcodes/filetree.fa.md b/exampleSite/content/docs/guide/shortcodes/filetree.fa.md new file mode 100644 index 00000000..e1c8c40c --- /dev/null +++ b/exampleSite/content/docs/guide/shortcodes/filetree.fa.md @@ -0,0 +1,36 @@ +--- +title: کامپوننت FileTree +linkTitle: FileTree +prev: /docs/guide/shortcodes +next: /docs/guide/shortcodes/icon +--- + +## مثال + +{{< filetree/container >}} + {{< filetree/folder name="content" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/folder name="docs" state="closed" >}} + {{< filetree/file name="_index.md" >}} + {{< filetree/file name="introduction.md" >}} + {{< filetree/file name="introduction.fa.md" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} + {{< filetree/file name="hugo.toml" >}} +{{< /filetree/container >}} + +## استفاده + +```text {filename="Markdown"} +{{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} + {{}} +{{}} +``` diff --git a/exampleSite/content/docs/guide/shortcodes/icon.fa.md b/exampleSite/content/docs/guide/shortcodes/icon.fa.md new file mode 100644 index 00000000..392c6887 --- /dev/null +++ b/exampleSite/content/docs/guide/shortcodes/icon.fa.md @@ -0,0 +1,47 @@ +--- +title: آیکون + +--- + +برای استفاده از این کد کوتاه درون‌خطی، باید آن را در پیکربندی فعال کنید: + +```yaml {filename="hugo.yaml"} +enableInlineShortcodes: true +``` + +فهرست آیکون‌های موجود را می‌توانید در [`data/icons.yaml`](https://github.com/imfing/hextra/blob/main/data/icons.yaml) پیدا کنید. + + + +## مثال + +{{< icon "academic-cap" >}} +{{< icon "cake" >}} +{{< icon "gift" >}} +{{< icon "sparkles" >}} + +## استفاده + +``` +{{}} +``` + +آیکون‌های با طرح‌های متفاوت در [Heroicons](https://v1.heroicons.com/) نسخه ۱ خارج از جعبه در دسترس هستند. + +### چجوری آیکون‌های خودمان را اضافه کنیم + +پرونده `data/icons.yaml` را ایجاد کنید، سپس آیکون‌های SVG خود را در فرمت زیر اضافه کنید: + +```yaml {filename="data/icons.yaml"} +your-icon: your icon svg content +``` + +سپس می‌توان آن را در کد کوتاه مانند زیر استفاده کرد: + +``` +{{}} + +{{}} +``` + +نکته: [Iconify Design](https://iconify.design/) مکانی عالی برای پیدا کردن آیکون‌های SVG برای سایت شما است. diff --git a/exampleSite/content/docs/guide/shortcodes/steps.fa.md b/exampleSite/content/docs/guide/shortcodes/steps.fa.md new file mode 100644 index 00000000..1347336c --- /dev/null +++ b/exampleSite/content/docs/guide/shortcodes/steps.fa.md @@ -0,0 +1,42 @@ +--- +title: مراحل +next: /docs/guide/deploy-site +--- + +یک کامپوننت داخلی برای نمایش یک سری مراحل. + +## مثال + +{{% steps %}} + +### مرحله ۱ +. این اولین مرحله است + +### مرحله ۲ + +این دمین مرحله است. + +### مرحله ۳ + +این سومین مرحله است. + +{{% /steps %}} + + +## استفاده + +سرتیتر مارک‌داون h3 را در کد کوتاه `steps` قرار دهید. + +``` +{{%/* steps */%}} + +### مرحله ۱ + +. این اولین مرحله است + +### مرحله ۲ + +این دمین مرحله است. + +{{%/* /steps */%}} +``` diff --git a/exampleSite/content/docs/guide/shortcodes/tabs.fa.md b/exampleSite/content/docs/guide/shortcodes/tabs.fa.md new file mode 100644 index 00000000..6d01166c --- /dev/null +++ b/exampleSite/content/docs/guide/shortcodes/tabs.fa.md @@ -0,0 +1,92 @@ +--- +title: زبانه‌ها +--- + +## مثال + +{{< tabs items="JSON,YAML,TOML" >}} + +{{< tab >}}**JSON**: جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است.{{< /tab >}} +{{< tab >}}**YAML**: یک زبان برای سریال‌سازی داده قابل-خواندن-برای-انسان است.{{< /tab >}} +{{< tab >}}**TOML**: یک قالب پرونده پیکربندی که به هدف سادگی در خوانایی به کمک داشتن معانی مشخص با هدف «کمینه» و مینیمال بودن ارائه شده است.{{< /tab >}} + +{{< /tabs >}} + +## استفاده + +### پیش‌فرض + +``` +{{}} + + {{}}**JSON**: جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است.{{}} + {{}}**YAML**: یک زبان برای سریال‌سازی داده قابل-خواندن-برای-انسان است.{{}} + {{}}**TOML**: یک قالب پرونده پیکربندی که به هدف سادگی در خوانایی به کمک داشتن معانی مشخص با هدف «کمینه» و مینیمال بودن ارائه شده است.{{}} + +{{}} +``` + +### مشخص کردن زبانه‌ پیش‌فرض + +از ویژگی `defaultIndex` برای مشخص کردن زبانه‌ پیش‌فرض استفاده کنید. این شاخص از 0 شروع می‌شود. + +``` +{{}} + + {{}}**JSON**: جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است.{{}} + {{}}**YAML**: یک زبان برای سریال‌سازی داده قابل-خواندن-برای-انسان است.{{}} + {{}}**TOML**: یک قالب پرونده پیکربندی که به هدف سادگی در خوانایی به کمک داشتن معانی مشخص با هدف «کمینه» و مینیمال بودن ارائه شده است.{{}} + +{{}} +``` + +زبانه‌ `YAML` به طور پیش‌فرض انتخاب می‌شود. + +{{< tabs items="JSON,YAML,TOML" defaultIndex="1" >}} + +{{< tab >}}**JSON**: جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل داده‌ها در وب با استفاده از جفت‌های خصوصیت-کلید را ممکن ساخته است.{{< /tab >}} +{{< tab >}}**YAML**: یک زبان برای سریال‌سازی داده قابل-خواندن-برای-انسان است.{{< /tab >}} +{{< tab >}}**TOML**: یک قالب پرونده پیکربندی که به هدف سادگی در خوانایی به کمک داشتن معانی مشخص با هدف «کمینه» و مینیمال بودن ارائه شده است.{{< /tab >}} + +{{< /tabs >}} + + +### استفاده از مارک‌داون + +سینتکس مارک‌داون از جمله بلوک کد نیز پشتیبانی می‌شود: + +```` +{{}} + + {{}} + ```json + { "سلام": "دنیا" } + ``` + {{}} + + ... زبانه‌های دیگر را به همین ترتیب اضافه کنید + +{{}} +```` + +{{< tabs items="JSON,YAML,TOML" >}} + + {{< tab >}} + ```json + { "سلام": "دنیا" } + ``` + {{< /tab >}} + + {{< tab >}} + ```yaml + سلام: دنیا + ``` + {{< /tab >}} + + {{< tab >}} + ```toml + سلام = "دنیا" + ``` + {{< /tab >}} + +{{< /tabs >}} diff --git a/exampleSite/content/docs/guide/syntax-highlighting.fa.md b/exampleSite/content/docs/guide/syntax-highlighting.fa.md new file mode 100644 index 00000000..cb7a49e9 --- /dev/null +++ b/exampleSite/content/docs/guide/syntax-highlighting.fa.md @@ -0,0 +1,89 @@ +--- +title: "برجسته‌کردن سینتکس" +weight: 3 +--- + +هیوگو از [Chroma](https://github.com/alecthomas/chroma)، یک برجسته‌کننده سینتکس عمومی در Go خالص، برای برجسته‌سازی کردن سینتکس استفاده می‌کند. + توصیه می‌شود از بک‌تیک برای بلوک‌های کد در محتوای مارک‌داون استفاده کنید. مثلا: + + + +````markdown {filename="Markdown"} +```python +def say_hello(): + print("سلام!") +``` +```` + +به صورت زیر رندر خواهد شد: + +```python +def say_hello(): + print("سلام!") +``` + +## ویژگی‌ها + +### Filename + +برای افزودن نام پرونده یا عنوان به بلوک کد، `filename` را مشخص کنید: + +````markdown {filename="Markdown"} +```python {filename="hello.py"} +def say_hello(): + print("سلام!") +``` +```` + +```python {filename="hello.py"} +def say_hello(): + print("سلام!") +``` + +### شماره خطوط + +برای تنظیم شماره خطوط، ویژگی `linenos` را روی `table` قرار دهید و به صورت اختیاری `linenostart` را روی شماره‌ای که خط شروع می‌شود تنظیم کنید: + +````markdown {filename="Markdown"} +```python {linenos=table,linenostart=42} +def say_hello(): + print("سلام!") +``` +```` + +```python {linenos=table,linenostart=42} +def say_hello(): + print("سلام!") +``` + +### برجسته کردن خطوط + +برای برجسته کردن خطوط، ویژگی `hl_lines` را به فهرستی از شماره خطوط تنظیم کنید: + +````markdown {filename="Markdown"} +```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"} +def say_hello(): + print("سلام!") + +def main(): + say_hello() +``` +```` + +```python {linenos=table,hl_lines=[2,4],linenostart=1,filename="hello.py"} +def say_hello(): + print("سلام!") + +def main(): + say_hello() +``` + + +### دکمه کپی + +به طور پیش‌فرض، دکمه کپی برای بلوک‌های کد فعال است. + + +## زبان‌های پشتیبانی شده + +برای مشاهده فهرست زبان‌های پشتیبانی شده، لطفا به [مستندات Chroma](https://github.com/alecthomas/chroma#supported-languages) مراجعه کنید. diff --git a/exampleSite/content/showcase/index.fa.md b/exampleSite/content/showcase/index.fa.md new file mode 100644 index 00000000..70eabb1b --- /dev/null +++ b/exampleSite/content/showcase/index.fa.md @@ -0,0 +1,20 @@ +--- +title: ویترین +description: "پروژه‌های متن‌باز که توسط هگزترا طراحی شده‌اند." +toc: false +layout: wide +--- + +
+ +

+پروژه‌های متن‌باز که توسط هگزترا طراحی شده‌اند. +

+ +{{< cards >}} + {{< card link="https://developers.osuny.org" title="Osuny" image="https://raw.githubusercontent.com/noesya/osuny-developers/main/static/images/showcase-hextra/screenshot.png" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} + {{< card link="https://getporter.org/" title="Porter" image="https://repository-images.githubusercontent.com/155893691/aa249c80-fcf3-11ea-93b0-30079e8d7de4" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} + {{< card link="https://lutheranconfessions.org/" title="LutheranConfessions" image="https://github.com/imfing/hextra/assets/5097752/ad6625e4-88cd-4cad-b102-5399997d0359" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} + {{< card link="https://github.com/imfing/hextra-starter-template/" title="Hextra Starter Template" image="https://user-images.githubusercontent.com/5097752/263551418-c403b9a9-a76c-47a6-8466-513d772ef0b7.jpg" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} + {{< card link="https://developers.clever-cloud.com/" title="Clever Cloud Documentation" image="https://cellar-c2.services.clever-cloud.com/documentation/doc-screenshot.png" imageStyle="object-fit:cover; aspect-ratio:16/9;" >}} +{{< /cards >}} diff --git a/exampleSite/hugo.yaml b/exampleSite/hugo.yaml index 5dabe8eb..15c4c31d 100644 --- a/exampleSite/hugo.yaml +++ b/exampleSite/hugo.yaml @@ -27,6 +27,12 @@ languages: languageCode: zh-CN weight: 2 title: Hextra + fa: + languageName: فارسی + languageCode: fa + languageDirection: rtl + weight: 3 + title: هگزترا module: hugoVersion: diff --git a/exampleSite/i18n/fa.yaml b/exampleSite/i18n/fa.yaml new file mode 100644 index 00000000..595eac52 --- /dev/null +++ b/exampleSite/i18n/fa.yaml @@ -0,0 +1,6 @@ +documentation: "مستندات" +showcase: "ویترین" +blog: "وبلاگ" +about: "درباره ما" +more: "بیشتر" +hugoDocs: "مستندات هیوگو ↖" diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index f3947aec..95dcd659 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,7 +1,7 @@ {{- partial "head.html" . -}} - + {{- partial "navbar.html" . -}} {{- block "main" . }}{{ end -}} {{- if or (eq .Site.Params.footer.enable nil) (.Site.Params.footer.enable) }}