Λ Takuya71 の日記 Λ

ここに記載の内容は個人的な見解で 勤務先、所属先には関連はございません。最近は scala に はまってます。認定スクラムマスター

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 のパブリックな レポジトリにプッシュすると 下書きも公開されます。