Hugo. Шаблон для научных работников. Подготовка структуры

2026-07-02 · 2 мин. для прочтения
blog computer-science

Hugo. Шаблон для научных работников. Подготовка структуры

Содержание

1 Именование каталогов

2 Скачать шаблон

  • Создать каталог:

    mkdir -p ~/work/blog
    
  • Скачать и настроить шаблон:

    npx hugoblox create site --template academic-cv
    
  • Проект назовём blog.

  • Эта команда скачает все необходимые файлы и создаст структуру вашего будущего сайта в новой папке.

  • Также будут скачаны необходимые модули Node.js.

    • В противном случае их надо будет установить вручную.
  • Перейти в созданную папку:

    cd ~/work/blog/blog
    
  • Запустите локальный сервер, чтобы увидеть сайт:

    hugo server
    
  • Откройте браузер и перейдите по адресу http://localhost:1313/.

2.1 Примечание

  • Шаблон по умолчанию содержит ссылки на изображения на https://images.unsplash.com/.
  • Этот сайт не доступен.
  • Удалите все ссылки на этот сайт из файлов.

3 Скачивание необходимых модулей node.js

  • Список необходимых модулей Node.js находится в файле package.json.
  • Их нужно установить.

3.1 Установка с npm

  • Установите с помощью npm:
    npm install
    

3.2 Установка с pnpm

  • pnpm создаёт shell-скрипты для вызова программ node.js.
  • hugo не поддерживает структуру файлов, создаваемых pnpm.
  • Чтобы pnpm создавал символические ссылки (symlinks) вместо shell-скриптов, нужно добавить в файл .npmrc в корне вашего проекта следующую строку:
    prefer-symlinked-executables=true
    
  • После этого pnpm будет создавать в node_modules/.bin прямые ссылки на исполняемые JS-файлы (на POSIX-системах).
  • Эта опция автоматически включается, когда в .npmrc установлено node-linker=hoisted.
  • В режиме hoisted pnpm создаёт более плоскую структуру node_modules, похожую на npm.
  • При этом pnpm сам переключится на использование symlinks.
  • Современные версии pnpm вместо .npmrc читает pnpm-workspace.yaml.
  • Добавьте параметры в этот файл:
    pnpm config set node-linker hoisted --location project
    pnpm config set prefer-symlinked-executables true --location project
    
  • Установите модули с помощью pnpm:
    pnpm install
    

4 Конфигурация языка

  • Hugo. Поддержка многоязычности

  • Будем делать поддержку языков на основе page-bundle.

  • Добавьте язык в файл config/_default/languages.yaml.

  • Здесь вы определяете языки и указываете, в каких папках лежит их контент.

    # config/_default/languages.yaml
    
    # Английский язык (по умолчанию)
    en:
      locale: en-us
      title: "My Academic Website"
      params:
        description: "Personal academic website"
    
    # Русский язык
    ru:
      locale: ru-ru
      title: "Мой академический сайт"
      params:
        description: "Персональный академический сайт"
    
  • В файле конфигурации hugo.yaml укажите язык по умолчанию:

    # config/_default/hugo.yaml
    defaultContentLanguage: "en"
    defaultContentLanguageInSubdir: true
    
  • Меню тоже можно перевести.

  • В файле config/_default/languages.yaml добавьте секцию menu для каждого языка.

# config/_default/languages.yaml

en:
  # ...
  menu:
    main:
      - name: "About"
        url: "#about"
        weight: 1
      - name: "Publications"
        url: "#publications"
        weight: 2

ru:
  # ...
  menu:
    main:
      - name: "Обо мне"
        url: "#about"
        weight: 1
      - name: "Публикации"
        url: "#publications"
        weight: 2
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы. Научные интересы относятся к области теоретической физики и математического моделирования.