Hugo. Шаблон для научных работников. Подготовка структуры
Hugo. Шаблон для научных работников. Подготовка структуры
Содержание
1 Именование каталогов
- Организация рабочего каталога
- Использую каталог
~/work/blogдля всего, связанного с моим блогом. - Сам блог находится в каталоге
~/work/blog/blog.
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. - В режиме
hoistedpnpm создаёт более плоскую структуру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 Конфигурация языка
Будем делать поддержку языков на основе 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
