Takuya71 のぶろぐ

外資系ソフトウェア会社で働いてます、認定スクラムマスター

blogsync 使って はてなブログの内容を github にアップ

blogsync 使って はてなブログの内容を github にアップ

12月に blogsync という はてなブログを markdown 形式でローカルに保存したり、 ローカルの markdown に加えた変更を はてなブログに反映させることができる ツールがあることを知りました。

motemen.hatenablog.com

これを使えば GitHub でブログの内容を管理することができるなとおもい、 試してみました。

やりたいこととしては

はてなブログ 
--> blogsync で ローカルレポジトリへ同期
--> GitHub へ push

というような流れを考えています。

ブログを書くのは モバイルつかって書くことが最近多いので、はてなブログ側で書くことを想定。

まずは blogsync のインストール。

インストールした後は

~/.config/blogsync/config.yml ファイルを作成し、はてなブログのユーザ名、パスワード、ローカルのパスを設定します。

takuya71.hatenablog.com:
  username: takuya71
  password: xxxxxxxx
default:
  local_root: /home/takuya/src/takuya71_hatenablog

設定後 まずは ローカルにPULL します。

> blogsync pull takuya71.hatenablog.com

あとは ローカルの内容を github へ push します。

git push github  master

私は 以下のような シェルスクリプトを 用意しておいて cron で毎日定時にローカルに持ってきてその後 GitHubへPUSH するようにしています。

#!/bin/bash

echo -e "\033[0;32mDeploying updates to GitHub...\033[0m"

cd ~/src/takuya71_hatenablog

blogsync pull takuya71.hatenablog.com

# Add changes to git.
git add -A

# Commit changes.
msg="Updated Hatenablog site `date`"
if [ $# -eq 1 ]
  then msg="$1"
fi
git commit -m "$msg"

# Push source and build repos.
git push github  master

cron の設定

ATH=/usr/local/rbenv/shims:/usr/local/rbenv/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/go/bin:/home/takuya/.local/bin:/home/takuya/bin:/home/takuya/.go/bin

GOPATH=/home/takuya/.go/

30 8 * * * /home/takuya/src/takuya71_hatenablog/deploy.sh > /tmp/cron_err.log 2>&1

注意

下書きも ローカルに同期されるので GitHub のパブリックな レポジトリにプッシュすると 下書きも公開されます。