Изначально это было репозиторий только для комментариев к блогу. Но я решил, что это нерациональное использование репозиториев и исходники блога хранить надо тут же. Поэтому задача инициализации проекта оказалась немного сложнее, чем я думал.
Делаем это над пустым каталогом /srv/hexoblog/
git clone https://github.com/KarelWintersky/hexo-blog.git
Перемещаем в каталог из бэкапа всякие конфиги, .gitignore
и прочее. Выполняем:
git status
git add .
git commit -m "initial config"
git push
Теперь клонируем тему. Я использую тему Freemind, исходный репозиторий https://github.com/wzpan/hexo-theme-freemind , но я её форкнул и подправил под свои нужды.
git submodule add https://github.com/KarelWintersky/hexo-theme-freemind.git themes/freemind
git status
git commit -m "theme: freemind as submodule"
git push
Теперь я возвратил на место каталоги sources
, node_modules
и прочее.
git add sources/*
git commit -m "Added sources"
git push
Тут все как обычно:
hexo server
Он публикует себя по адресу http://localhost:4000/
, но я хожу к нему из локалки по адресу 192.168.1.80:4000
Генерация контента делается командой
hexo generate
но я написал файлик build.sh
, который генерит контент, потом очищает папку на удалённом хосте, потом wput-ом заливает файлы на сервер. Зачем
очищать папку? Есть подозрение, что из-за разницы во времени у меня и на сервере wput
с ключом --time-stamping
может в некоторых случаях
считать что файл на сервере более актуальный, чем файл на локальной машине, хотя это неправда.
Для работы этого скрипта нужны: wput
, wget
, lftp
и файл конфига (.config
), который я по понятным причинам в репозиторий не добавляю :)
Впрочем структура этого файла проста:
#!/bin/bash
FTP_HOST='хост (айпи)'
FTP_LOGIN='логин'
FTP_PASSWORD='пароль'
FTP_PATH='путь от корня виртуального хостинга до папки с блогом'
Let's fun.