Skip to content

Gollum

Gollum

gollum -- A wiki built on top of Git

A simple, Git-powered wiki with a sweet API and local frontend.

syon/wiki

このサイト http://syon-wiki.herokuapp.com は Gollum で構築されています。
- ソースコード(forked): https://github.com/syon/gollum - 記事の Markdown ファイル: https://github.com/syon/wiki/tree/master/source - Gollum に至るまでの経緯: 蓄積したノウハウをどう管理するか - X X X

Features

よく挙げられている特徴

  • Markdown, MediaWiki, Textileなど大抵の記法で書ける。
  • 基本的にgitリポジトリ一つで完結しており、MySQLなどのDBが不要で、簡単にprivate wikiを立ち上げられる。
  • セットアップが非常に楽。
  • gitで動いているので、バージョン管理や差分、コミットを遡ってrevertする、なんてこともWebのUIから簡単に操作できる。
  • 全文検索も実装されている。
  • ruby+sinatraで実装されているので、分かる人は拡張を簡単に書ける気がする。
  • シンタックスハイライトが効く
  • ファイルアップロード機能も一応ある(あんま重要視してない)
  • 管理がGit任せなので、操作に慣れていると楽
  • ほとんどそれだけしか機能が無いこと(ユーザ登録機能すら無いです)

使ってみて気づいたイマイチな点

  • プライベート用途が想定されている
    • 右上のボタンは誰でも操作できる
  • dl dt dd相当の記法がない
    • これは Markdown の仕様っぽいから仕方ない
    • そのままタグで書けば反映される
  • ページ数が増えると
    • リポジトリのディレクトリ内が Markdown ファイルで溢れかえる
    • サブディレクトリを使おうとすると弊害が出る Issue #1 · syon/wiki
  • 公開にあたって
  • トップページだけはいい感じにレイアウトしたい
    • Nginx + Unicorn で分離?難しそう。。

Setup

$ mkdir mywiki
$ cd mywiki
$ git init
$ bundle init
(Gemfile) gem "gollum"
$ brew install icu4c
$ bundle install --path vendor/bundle
$ bundle exec gollum

Gollum on Heroku

Gollum on Heroku

Heroku上でGollumを運用する方法。ただし編集内容は再デプロイ後に消える。Herokuの ephemeral filesystem のため。要するにHeroku上の変更をGitHubにpushできないから変更を維持できない。

Customize

Custom CSS & JS

リポジトリ直下に置いたcustom.css, custom.jsを読み込ませることができる。

Gollum

$ bundle exec gollum --css --js

Rack (config.ru)

Precious::App.set(:wiki_options, { universal_toc: false, live_preview: true, css: true, js: true })

Articles

Error

icu required

***************************************************************************************
*********** icu required (brew install icu4c or apt-get install libicu-dev) ***********
***************************************************************************************
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

言われたとおり実行。Macなので:

$ brew install icu4c

Cygwinの場合:

$ apt-cyg find icu
Searching for installable packages matching icu:
icu
icu-doc
libicu-devel
libicu38
libicu45
libicu48
ploticus
ploticus-common
ploticus-doc
sqlite3-icu

$ apt-cyg install libicu-devel

Gollum::InvalidGitRepositoryError

Gollum::InvalidGitRepositoryError
Gitリポジトリになってない。
$ git init