巨人の肩の上に登る

先人の積み重ねた発見に基づいて、なにかを発見しようとすることを指す。

gollumでwikiを作ってみる(Mac OS X)

f:id:mayo_yamasaki:20140802013348j:plain

ある程度まとまった情報になると、ブログ記事にしても良いのですが、そうでない場合は、メモ(Evernote, Dash, etr)として保存しています。 ですが、かなり大雑把に記録しているため、構造化されておらず不便...。そこで、個人用wikiにまとめてみることにしました。

一口にwikiといっても、SaasだったりOSSだったり、いろいろあります。今回はgit上で保存・管理するgollumを使ってみました。

決め手になったのは、シンプルなUIだったり、Markdown記法が使えたり、機能の拡張もしやすそうなのところです。とりあえずデフォルトのまま、ローカルwiki + githubにバックアップな体制で運用してみます。

Home

f:id:mayo_yamasaki:20140802020446p:plain

編集画面

f:id:mayo_yamasaki:20140802020503p:plain

install

gollumをinstallしようとしたら、icu4cでerrorが出たので,先にinstallしました。
icu4cはC++Unicode文字処理のモジュールみたいです。
github-markdownはoptionalですが、github flavoreなmarkdownが利用できます。

$ brew install icu4c
$ gem install gollum
$ gem install github-markdown

wikiの作成

手順としては次のような流れです。

$ git init wiki
$ cd wiki
$ gollum

http://localhost: 4567 をブラウザで開くと表示されます。

pushの自動化

Githubリポジトリを作成

詳細は省きますが、Githubリポジトリを作成し、originに設定。


push用のシェルスクリプトを作成

gollum用のリポジトリの直下に下記の内容で、sync.shを作成。
忘れずに実行権限を振り当てます。$ chmod a+x sync.sh

#!/bin/bash
DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
(cd $DIR && git pull && git push)


Launchd用のplistを作成

~/Library/LaunchAgents/以下にcom.github.gollum-startup.plistを作成して、以下の内容に先程作成したsync.shのパスを記入して保存します。(Launchdはcron的なやつ)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.github.gollum-sync</string>
  <key>RunAtLoad</key>
  <true/>
  <key>ProgramArguments</key>
  <array>
      <string>ここにsync.shのパスを記入。(e.g. /Users/hoge/fuga/sync.sh)</string>
  </array>
  <key>StartInterval</key>
  <integer>60</integer>

</dict>
</plist>

StartIntervalで更新間隔を設定。とりあえず60秒ごとにpush。

おわりに

あとはお好みで、起動の自動化だったり、書き込み権限の付与だったり、デザイン変更だったりを自由に。