以前は、Octopress+nvALT(SimpleNote Client) でGitHubPageサイトを運用してました。ブログのシステムをHugoに換えたので、nvALTとの連携とデプロイを再設定しました。
Octopressでは rake deploy で一発で github に更新できたのですが、Hugoではスクリプトを使って行います。
まずは、github (githubpage用) と bitbucket (その他のファイル)の登録設定。
(鍵の登録を行っておくとよいです)
github と bitbucket の登録
$ rm -rf public/
$ git init
$ git remote add origin https://YOUR_ACCOUNT@bitbucket.org/YOUR_ACCOUNT/YOUR_REPOSITORY.git
$ git add -A
$ git commit -m "initial commit"
$ git push origin master
Password for 'https://YOUR_ACCOUNT@bitbucket.org':
Counting objects: 166, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (163/163), done.
Writing objects: 100% (166/166), 322.06 KiB | 0 bytes/s, done.
Total 166 (delta 3), reused 0 (delta 0)
To https://YOUR_ACCOUNT@bitbucket.org/YOUR_ACCOUNT/YOUR_REPOSITORY.git
* [new branch] master -> master
$ git submodule add https://github.com/YOUR_ACCOUNT/goozenlab.github.io.git public
Cloning into 'public'...
remote: Counting objects: 9437, done.
remote: Compressing objects: 100% (419/419), done.
remote: Total 9437 (delta 271), reused 0 (delta 0), pack-reused 8762
Receiving objects: 100% (9437/9437), 47.41 MiB | 30.00 KiB/s, done.
Resolving deltas: 100% (4319/4319), done.
Checking connectivity... done.
$
プレビュー方法
nvALT:Simplenoteのデータは、ファイル単位として保存しています。保存先をHugo内のpostフォルダーにしてしまうと、そのフォルダー内のNote & Setting ファイル(nvALTの設定ファイル?)がサイト構築時にエラーの元になります。
nvALT:SimpleNoteの保存先フォルダーをサイトの外部にし、preview時にrsyncで一方通行の同期を行います。
※ nvALT、あまり知名度が無いように思えるけれどお勧めです。(ctlキーの長押しでプレビューが表示[離すと消える]されたり(数日前に発見!)する。)
これも簡単なスクリプトで行います。hugo server --buildDrafts --theme=default
のテーマ部分は自身の設定に合わせてください。
hugo_preview.sh
#!/bin/bash
echo -e "\033[0;32m---- rsync ----\033[0m"
rsync -avz --delete --exclude 'Notes & Settings' --exclude 'Untitled*' --exclude '.*' /"保存先のフォルダ"/ /"HugoSites"/content/post
echo -e "\033[0;32mhugo preview...\033[0m"
hugo server --buildDrafts --theme=default
デプロイの方法
deploy.sh
#!/bin/bash
echo -e "\033[0;32mDeploying updates to GitHub...\033[0m"
# Build the project.
# if using a theme, replace by `hugo -t <yourtheme>`
hugo
# Go To Public folder
cd public
# Copy CNAME
# Add changes to git.
git add -A
# Commit changes.
msg="rebuilding site `date`"
if [ $# -eq 1 ]
then msg="$1"
fi
git commit -m "$msg"
# Push source and build repos.
git push origin master
# Come Back
cd ..
その他のファイルの更新は、タイミングを計って手動でdeployしています。自動でbitbukket にも更新を入れたい時は
echo -e "\033[0;32mDeploying updates to Bitbukket...\033[0m"
git add -A
git commit -m "$msg"
git push origin master
をdeploy.sh に追加すれば良いのかな。
実行のフラグを付けておしまい。
$ chmod +x deploy.sh