به‌کاراندازی سایت

به‌کاراندازی سایت

Hugo وب‌سایت‌های استاتیک را ایجاد می‌کند و امکان گزینه‌های میزبانی انعطاف‌پذیر را فراهم می‌کند. این صفحه راهنماهایی برای به‌کاراندازی سایت هگزترا شما در پلتفرم‌های مختلف ارائه می‌کند.

شروع سریع از طریق Template

 imfing/hextra-starter-template

با استفاده از template در بالای صفحه‌ای مخزن می‌توانید به سرعت شروع به کار کنید.

ما یک گردش کاری GitHub Actions ارائه کرده‌ایم که می‌تواند به ساخت و به‌کاراندازی خودکار سایت شما در گیت‌هاب Pages، برای میزبانی رایگان کمک کند. برای گزینه‌های بیشتر، به‌کاراندازی سایت را بررسی کنید.

🌐 نسخه‌ي نمایشی ↖

شروع به عنوان پروژه جدید

دو راه اصلی برای اضافه کردن تم هگزترا به پروژه Hugo وجود دارد:

  1. ماژول‌های Hugo (توصیه می‌شود): ساده‌ترین و توصیه شده‌ترین. ماژول‌های Hugo به شما امکان می‌دهند تم را مستقیما از منبع آنلاین آن وارد کنید. تم به صورت خودکار دانلود و توسط Hugo مدیریت می‌شود.
  2. ساب‌ماژول گیت: در عوض، هگزترا را به عنوان یک ساب‌ماژول گیت اضافه کنید. تم توسط گیت دانلود شده و در پوشه themes پروژه شما ذخیره می‌شود.

هگزترا را به عنوان ماژول Hugo راه‌اندازی کنید

پیش‌نیازها

قبل از شروع، باید این نرم‌افزارها را نصب کنید:

مراحل

راه‌انداختن یک سایت جدید Hugo

hugo new site my-site --format=yaml

پیکربندی تم هگزترا از طریق ‌ماژول

# مقداردهی اولیه ماژول هیوگو
cd my-site
hugo mod init github.com/username/my-site

# افزودن تم هگزترا
hugo mod get github.com/imfing/hextra

با افزودن موارد زیر، hugo.yaml را برای استفاده از تم هگزترا پیکربندی کنید:

module:
  imports:
    - path: github.com/imfing/hextra

اولین صفحه‌های محتوای خود را ایجاد کنید

ایجاد صفحه محتوای جدید برای صفحه اصلی و صفحه مستندات:

hugo new content/_index.md
hugo new content/docs/_index.md

پیش‌نمایش سایت به صورت محلی

hugo server --buildDrafts --disableFastRender

پیش‌نمایش سایت جدید شما در http://localhost:1313/ در دسترس است.

چگونه تم را به‌روز کنیم؟

برای به‌روزرسانی همه ماژول‌های Hugo در پروژه خود به آخرین نسخه‌هایشان، دستور زیر را اجرا کنید:

hugo mod get -u

برای به‌روزرسانی هگزترا به آخرین نسخه منتشر شده، دستور زیر را اجرا کنید:

hugo mod get -u github.com/imfing/hextra

برای جزئیات بیشتر به ماژول‌های هیوگو مراجعه کنید.

هگزترا را به عنوان ساب‌ماژول Git راه‌اندازی کنید

پیش‌نیازها

قبل از شروع، باید این نرم‌افزارها را نصب کنید:

مراحل

راه‌انداختن یک سایت جدید Hugo

hugo new site my-site --format=yaml

افزودن تم هگزترا به عنوان یک ساب‌ماژول Git

git submodule add https://github.com/imfing/hextra.git themes/hextra

با افزودن موارد زیر، hugo.yaml را برای استفاده از تم هگزترا پیکربندی کنید:

theme: hextra

اولین صفحه‌های محتوای خود را ایجاد کنید

ایجاد صفحه محتوای جدید برای صفحه اصلی و صفحه مستندات:

hugo new content/_index.md
hugo new content/docs/_index.md

پیش‌نمایش سایت به صورت محلی

hugo server --buildDrafts --disableFastRender

پیش‌نمایش سایت جدید شما در http://localhost:1313/ در دسترس است.

هنگام استفاده از CI/CD برای به‌کاراندازی وب‌سایت Hugo، از اجرای دستور زیر قبل از اجرای دستور hugo مطمئن شوید و ضروری است.

git submodule update --init

اجرا نشدن این دستور باعث می‌شود که پوشه تم با پرونده‌های تم هگزترا پر نشود و منجر به خرابی ساخت شود.

چگونه تم را به‌روز کنیم؟

برای به‌روزرسانی تمام ساب‌ماژول‌های در مخزن خود به آخرین commitها که موجود هست، دستور زیر را اجرا کنید:

git submodule update --remote

برای به‌روزرسانی هگزترا به آخرین commit، دستور زیر را اجرا کنید:

git submodule update --remote themes/hextra

برای جزئیات بیشتر به ساب‌ماژول‌های Git مراجعه کنید.

بعدی

برای شروع اضافه کردن مطالب بیشتر، بخش‌های زیر را کاوش کنید:

گیت‌هاب Pages

گیت‌هاب Pages روشی توصیه شده برای به‌کاراندازی و میزبانی وب‌سایت شما به صورت رایگان است.

اگر سایت را با استفاده از hextra-starter-template راه‌اندازی سریع پیاده‌سازی می‌کنید، گردش کار گیت‌هاب Actions را به صورت خارج از جعبه ارائه کرده‌ایم که به‌کاراندازی خودکار در گیت‌هاب Pages به شما کمک می‌کند.

پیکربندی گیت‌هاب Actions

در زیر یک پیکربندی مثال از hextra-starter-template آورده شده است:

.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
در تنظیمات مخزن خود، Pages > Build and deployment > Source را روی GitHub Actions تنظیم کنید:

به‌طور پیش‌فرض، گردش کار گیت‌هاب Actions بالا .github/workflows/pages.yaml فرض می‌کند که سایت در حال به‌کاراندازی در https://<USERNAME>.github.io/<REPO>/ است.

اگر در حال استفاده از https://<USERNAME>.github.io/ هستید، سپس --baseURL را تغییر دهید:

.github/workflows/pages.yaml
54
55
56
57
run: |
  hugo \
    --gc --minify \
    --baseURL "https://${{ github.repository_owner }}.github.io/"

اگر می‌خواهید روی دامنه شخصی خود استقرار پیدا کند، لطفا مقدار --baseURL را بر این اساس تغییر دهید.

کلودفلر Pages

  1. کد منبع سایت خود را در یک مخزن Git (به عنوان مثال گیت‌هاب) قرار دهید
  2. وارد پیشخوان کلودفلر شوید و حساب خود را انتخاب کنید
  3. در صفحه اصلی حساب‌کاربری، Workers & Pages > Create application > Pages > Connect to Git را انتخاب کنید
  4. مخزن را انتخاب کنید و در بخش Set up builds and Deployments اطلاعات زیر را وارد کنید:
ConfigurationValue
Production branchmain
Build commandhugo --gc --minify
Build directorypublic

برای جزئیات بیشتر، بررسی کنید:

Netlify

  1. کد خود را به مخزن Git خود (گیت‌هاب، گیت‌لب و غیره) ارسال کنید.
  2. وارد کردن پروژه به Netlify
  3. اگر از [hextra-starter-template][hextra-starter-template] استفاده نمی‌کنید، موارد زیر را به صورت دستی پیکربندی کنید:
    • دستور Build را روی hugo --gc --minify پیکربندی کنید
    • دایرکتوری Publish را برای public مشخص کنید
    • HUGO_VERSION متغیر محیط استقرار را اضافه کنید و روی 0.119.0 تنظیم کنید
  4. استقرار!

برای جزئیات بیشتر Hugo را در Netlify بررسی کنید.

Vercel

  1. کد خود را به مخزن Git خود (گیت‌هاب، گیت‌لب و غیره) ارسال کنید.
  2. به پیشخوان Vercel بروید و پروژه Hugo خود را وارد کنید
  3. پروژه را پیکربندی کنید، Hugo را به‌ عنوان چارچوب Preset انتخاب کنید
  4. دستور Build و Install را لغو کنید:
    1. دستور Build را روی hugo --gc --minify تنظیم کنید
    2. دستور Install را روی yum install golang تنظیم کنید

پیکربندی استقرار Vercel