Markdownで書ける、よさげなWikiサーバーソフトまとめ

※この記事は[僕のブログ](http://www.bakudan.farm/blog/?p=92)（最近始めました）のクローン記事です。

-----

なんとなく、グループ内部用のWikiに最適なやつって無いのかなあと思ったのです。特にどのグループというわけじゃありませんが、ええ、なんとなく。

サーバー設置型のWikiソフトウェアというと国内で有名なのは[PukiWiki](https://pukiwiki.osdn.jp/)でしょうか。設置も手軽で拡張性も高く、すでに慣れ親しんだWikiですが、最近では各方面が[Markdown](http://www.markdown.jp/what-is-markdown/)を採用してそれに慣れ親しんでしまい、このブログもプラグインを入れてMarkdownで書いているぐらいなので、Markdownで書けるWikiを探していたのです。

必要要件はこんな感じ。

- サーバー設置型
- グループ内部向けのポータル的Wikiに適している
- Markdownで書ける
- 使い方が簡単
- 日本人に厳しくない
- デザインがナウい

というわけで昨日から丸２日ぐらいぶっ通しで調べぬいた結果はっぴょー。どんどんぱふぱふ。


## [Crowi](http://site.crowi.wiki/)

[![crowi.png](https://qiita-image-store.s3.amazonaws.com/0/42867/0e1588b0-9cd4-5426-8bbb-7f1356ccc3e2.png)](http://site.crowi.wiki)

結論から言うと見つけた限りではたぶんこれが最強です。なぜこれが未だに注目を浴びていないのかわからないぐらい。

国産のWikiソフトで、もともとは[社内用に開発したWikiをオープンソース化した](http://engineering.crocos.jp/post/101407633385/)物だそうな。
Node.jsで書かれたWebアプリ型Wikiで、ユーザー登録しログインしないと閲覧できないクローズドなWikiです。

上で書いた要件をすべて満たしているどころか、最近更新された順のタイムライン表示、ページにコメントする機能、ページをふぁぼる機能、ページのブックマーク機能、Basic認証でサイト全体をパスワード保護する機能、登録できるメールアドレスのホワイトリスト機能、レスポンシブレイアウト対応……などなど、シンプルな設計ながらグループ内部向けWikiとして痒いところに手が届くWikiです。
サイトを一般公開できないようなので公開Wikiには向きませんが、軽くコミュニケーションも取れるし、グループ内部向けのWikiとしてなら最強じゃないでしょうか。

デモは[こちら](http://demo.crowi.wiki/)。特にメールの承認は必要ないようなのでメールアドレスはそれっぽいのを適当に書けばいいと思います。Deploy to Herokuのボタンも用意されているので、自分用のWikiが欲しいと思ったときもHerokuにアカウントがあればそのボタンをポチットナするだけでポンと作れちゃいます。その代わり自分のサーバーの中に立てたい場合はMongoDBやRedisのサーバーも立てる必要があります。

あんまりにもよく出来たWikiなので思わず[Dockerイメージ化](https://hub.docker.com/r/bakudankun/crowi/)してしまいました。~~でもどうもリソースへのアクセスがうまくいかなくて今のところアイコンフォントが表示されません。Node.jsわかんない。~~直りました。たぶん。

というわけでこれが最強なので以降は消化試合です。


## [Gollum](https://github.com/gollum/gollum)

[![gollum.png](https://qiita-image-store.s3.amazonaws.com/0/42867/ebd8504e-5fff-3ffb-719e-97b60fb78f89.png)](https://github.com/gollum/gollum)

Rubyで書かれたサーバーアプリで、GitHubのWikiに似た非常にシンプルなWikiです。特にシンプルなのはサーバーの中身。そこにあるのはGitのリポジトリが一つ。つまりはWiki全体がGitで管理されており、Gollumはその中身を読み書きするサーバーを立てるソフトウェアなわけです。サーバーを立てる時も適当なGitリポジトリの中で`gollum`コマンドを打つだけ。ちょう簡単。

もちろんWebから編集もでき、ファイルのアップロードも可能。実は見た目によらず多機能で、[MathJax](https://www.mathjax.org/)を利用して$\TeX$記法の数式を書けるようにもできるようです。

見た目がちょっとシンプルすぎてむしろ殺風景ですが、カスタムCSSを適用できるようなので頑張ればカバーできそうです。


## [MDwiki](http://dynalon.github.io/mdwiki/)

[![mdwiki.png](https://qiita-image-store.s3.amazonaws.com/0/42867/38a2285a-5b1f-36bc-fc8f-743fd6fd2cd8.png)](http://dynalon.github.io/mdwiki/)

こちらはなんとHTMLファイル１個のWikiです。どいういうこっちゃ。

サーバーに`mdwiki.html`ファイルを置くだけで、そのファイルへのURLに`#!index.md`などと付加することでJavaScriptで回りのMarkdownファイルを読み込んで表示するという、すべてクライアントサイドで処理してしまう仕組みのWikiです。
サーバーサイドで処理しない都合上、ブラウザでページを編集することができません。公開用のWikiとして、自分（やサーバーの中の人）だけが編集できるホームページ的な用途なら使えそう。

あれ、でもそれってWikiじゃなくねえ？
HTMLファイルだけならサーバー立てずにローカルで完結できるんじゃないかと思ったけどそれもうまくいかないし[^1]。

[^1]: [MDwikiのFAQ](http://dynalon.github.io/mdwiki/#!faq.md)の一番上に記述があります。そのすぐ下にはpythonを使って簡易Webサーバーを立てるやり方がオススメされています。

しかし、静的Webサーバーさえあれば良いので、例えば[この記事](http://gadget-girl.hatenablog.com/entry/20111218/1324173403)のようにしてDropboxのPublicフォルダに`mdwiki.html`を配置し、その周りにMarkdownファイルを置き、公開リンクを共有すれば、それだけでWikiのいっちょ上がりなのです。
そのままフォルダを編集権限つきで共有すれば、友達と共同で編集することもでき、立派なWikiになります。

……がしかし、今調べたところDropboxのPublicフォルダは随分前に有料サービス化（既にある人は使い続けられる）していたそうです。Googleドライブも同じようなことをしていたそうですがこちらも[もうすぐ廃止になるそうです](https://support.google.com/drive/answer/2881970?hl=ja)。

まあ静的Webホスティングサービスは他にもGoogle Sitesとかあるので、そこに`mdwiki.html`を配置して、あとはMarkdownファイルをぽんぽん置いていくだけで簡単にWebページが作れる魔法のHTMLファイルとして使うのが良さそうです。

サーバー立てずにローカルで完結できたら美味しそうなのに、うーんもったいない。


## [DokuWiki](https://www.dokuwiki.org/ja:dokuwiki)

[![dokuwiki.png](https://qiita-image-store.s3.amazonaws.com/0/42867/bb29705c-0f0c-9598-23ae-7c561e50fe2a.png)](https://www.dokuwiki.org/ja:dokuwiki)

これはデフォルトではMarkdown非対応ですが、プラグインを入れることでMarkdownで書けるようになります。

PHPで書かれておりデータベースは不要と、構造的にはPukiWikiとかなり近いでしょう。設定で日本語化することもできますが、同梱のマニュアルページは英語のままなので本家のjaページへ誘導したほうが良いでしょう。

プラグインもたくさんあってよさげ。ページデザインもレスポンシブなのでPukiWikiより良いかもしれません。上の３つと違いWikiらしいWikiが作れます。


## まとめ

グループ内部向けのポータルWikiとしてはCrowiが最強、他人に編集させない公開ページとしてならMDwiki、誰でも編集できる普通のWikiが立てたかったらDokuWikiかGollum、といった感じでしょうか。
ページデザイン、サーバー構造などそれぞれ得意分野に微妙な違いがあるので、うまく使い分けたいところです。