Создавать домашний сайт с заметками для себя и других на основе CMS wordpress и аналогичных довольно расточительно и понижает безопасность сервера. Главные плюсы это скорость загрузки страниц и безопасность. Поэтому буду использовать под эти цели один из лучших вариантов для создания статического сайта при помощи Hugo.
Установка Hugo в Debian
Для установки расширенной версии Hugo
sudo apt install hugo
При помощи Snap - это решение предотвращает от установки недостающих пакетов при использовании более старой ОСи.
sudo apt install snapd
sudo snap install hugo
Так же можно скачать последнюю версию deb пакет с официальность сайта, выбрать версию extended для amd64. Запустить терминал в папке с файлом и набрать:
sudo dpkg -i hugo_extended_0.110.0_linux-amd64.deb
hugo_extended_0.110.0_linux-amd64.deb указан для примера версия может отличаться. В данном примере версия 0.110.0
Проверка установки и версии Hugo
hugo version
Про самостоятельную сборку читать официальный сайт.
Установка Git
Так же для удобства создания сайтов установить git
sudo apt install git-all
Так же можно собрать самому, если есть желание обладать самой свежей версией, хотя это не факт.
Возможно будут ошибки, тогда выполнить следующую команду, если все гладко, то ничего делать больше не надо:
sudo apt -f install git-all
Быстрое создание сайта при помощи Hugo в Debian
Теперь можно протестировать, создать тестовый сайт. Половина работы будет делаться из командной строки, так быстрее. Запустить Терминал . Создать каталог для проекта _hugo . Создать каталог sites перейти туда.
mkdir _hugocd
mkdir _hugocd/sites
cd _hugocd/sites
Сделать сайт с помощью Hugo
Тестовый сайт при помощи Hugo.
hugo new site test
В каталоге sites будет создана директория test в которой автоматически созданы все файлы и каталоги для начала работы по созданию сайта при помощи Hugo
Перейти в каталог test и сделать инициализацию пустого репозитория git. Будет создана скрытая директория .git
cd test
git init
Назначения директорий сайта Hugo
Краткое описание назначения каталогов созданных Hugo
└───test
│ config.toml
│
├───archetypes
│ default.md
│
├───assets
├───content
├───data
├───layouts
├───public
├───static
└───themes
Чтобы вывести дерево каталогов используется команда tree
- config.toml : Конфигурационный файл. Содержит настройки сайта
- archetypes : Для шаблонов, часто используемых элементов на страницах сайта.
- assets : Хранит все файлы, которые должны быть обработаны Hugo Pipes . Только файлы, чьи
.Permalink
или.RelPermalink
будут опубликованы в public каталоге. - content : Контент одним словом. Тексты постов.
- data : Этот каталог используется для хранения файлов конфигурации, которые используются Hugo при создании веб-сайта. Файлы должны быть в формате YAML, JSON или TOML. В дополнение к файлам, которые размещаются в этой папке, можно создавать шаблоны данных , которые извлекаются из динамического содержимого.
- layouts : Хранит шаблоны в виде файлов .html, которые определяют, как просмотры вашего контента будут отображаться на статическом веб-сайте.
- public : Здесь будет находится готовый сайт, файлы этой папки необходимо размещать на своем хостинге. Любым удобным способом скопировать на сервер.
- static : Любые статические файла изображения, видео, css, html и т.д. и т.п.
- themes : Папка для хранения тем, которые скачиваем или клонируем. Их может быть множество, но использоваться может только одна.
Выбор темы сайта Hugo
Зайти на сайт https://themes.gohugo.io/ выбрать понравившуюся.
Добавить тему Hugo
Есть несколько вариантов установки темы для сайта: clone, submodule add, или просто скачать архив и распаковать в директорию themes. В любом случае у автора темы есть описание, как устанавливать и обновлять его тему на GitHub. Пока еще невкурил разницу между между клонированием и субмодулем.
Для примера установка темы PaperMod подробное описание установки, возможностей, настройки по ссылке https://github.com/adityatelange/hugo-PaperMod
git clone https://github.com/adityatelange/hugo-PaperMod themes/PaperMod --depth=1
Обновить тему Hugo
Обновление любой темы происходит по следующей схеме, перейти в папку с темой и выполнить команду обновления.
cd themes/PaperMod
git pull
Теперь нужно активировать тему, для этого нужно добавить файл конфигурации. Файл конфигурации по умолчанию уже есть, просто добавить имя темы. Если еще не установлен Visual Studio Code открыть файл конфигурации в текстовом редакторе:
nano _hugo/sites/test/config.toml
в конце добавить строчку :
theme = 'PaperMod'
Сохранить файл Cntr+O *Enter, закрыть Cntrl+X
Из инструкции по теме следует создать файл конфигурации в формате yml
, т.к. считается он проще для восприятия и понимания. Создадим такой файл в текстовом редакторе :
nano _hugo/sites/test/config.yml
с содержимым :
baseURL: http://example.org/
languageCode: en-us
title: My New Hugo Site
theme: PaperMod
Сохранить файл Cntr+O *Enter, закрыть Cntrl+X
Но проще изначально создать сайт командой:
hugo new site test -f yml
Запуск сервера Hugo
Запускаем локальный сервер:
hugo server
Если нужно отобразить все созданные страницы, даже те которые помечены, как неопубликованные или запланированные к публикации нужно добавить ключ -D
hugo server -D
Наблюдаем следующую картинку:
Start building sites …
hugo v0.110.0-e32a493b7826d02763c3b79623952e625402b168+extended linux/amd64 BuildDate=2023-01-17T12:16:09Z VendorInfo=snap:0.110.0
| EN
-------------------+-----
Pages | 7
Paginator pages | 0
Non-page files | 0
Static files | 0
Processed images | 0
Aliases | 1
Sitemaps | 1
Cleaned | 0
Built in 49 ms
Watching for changes in /home/user/_hugo/sites/test/{archetypes,assets,content,data,layouts,static,themes}
Watching for config changes in /home/user/_hugo/sites/test/config.toml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
Заходим в браузер, в строке адреса вставляем или жмем по этой ссылке [http://localhost:1313/](http://localhost:1313/)
и наблюдаем свой сайт.
Регистрация на GitHub
Лишним не будет завести аккаунт на гитхабе перед установкой визуал студио коде идем github.com жмем Sign Up следуем инструкциям по регистрации.
Установка Visual Studio Code в Debian
Для более удобной работы по созданию сайта нужно установить рабочую среду Visual Studio Code.
Установить ключи репозиторий:
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /usr/share/keyrings/microsoft-archive-keyring.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
Обновить кэш и установить пакет:
sudo apt install apt-transport-https
sudo apt update
sudo apt install code # or code-insiders
Возможно после выполнения sudo apt update
будут такие предупреждения:
N: Пропускается получение настроенного файла «main/binary-armhf/Packages», так как репозиторий «https://packages.microsoft.com/repos/vscode stable InRelease» не поддерживает архитектуру «armhf»
N: Пропускается получение настроенного файла «main/binary-arm64/Packages», так как репозиторий «https://packages.microsoft.com/repos/vscode stable InRelease» не поддерживает архитектуру «arm64»
Решается редактированием файла sudo nano '/etc/apt/sources.list.d/vscode.list'
все нежелательные архитектуры удалить между квадратных скобок. Было:
deb [arch=amd64 , armhf , arm64 signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/vscode stable main
Стало:
deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/repos/vscode stable main
Запуск Visual Studio Code в Debian
Из терминала в нужном каталоге
code .
Русский язык в Visual Studio Code
После установки, если нужно меняем язык интерфейса на русский. Нажать сочетание клавиш Ctrl+Shift+X откроется окошко с магазином расширений в строке поиска начать набирать russian
увидим найденное расширение Russian Language Pack for Visual Studio выбираем его, жмем install после установки внизу справа появится окошко с кнопкой Change Language and Restart нажать. После перезапуска программы наступит счастье.
Синхронизация Visual Studio Code с GitHub
Так же включим облачные изменения, если есть аккаунт на гитхабе. Слева внизу над шестеренкой значок человека в кружке при наведении высвечивается надпись Учетные записи жмем и выбираем Включить облачные изменения наверху выбрать Вход с помощью GitHub если в браузере выполнен вход в аккаунт гитхаба, то вход и программы произойдет автоматически, если нет то откроется окно браузера с запросом о входе в учетку гитхаба, выполнить.
Далее по ходу создания сайта будем отрабатывать навыки работы в Visual Studio Code. И более подробно разбираться с механизмами создания сайта при помощи Hugo.
Комментарии