| categories:web

HugoとSimplenoteでgitHub-page

以前は、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

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

Pokhara street

comments powered by Disqus