プロジェクト情報共有をラクにするMDWiki – MarkdownでFlat-File CMS構築

なぜMarkdownベースのWikiが必要だったのか

プロジェクトや社内での情報共有。意外とこれが大変なものです。メールは探しにくく、チャットは流れていき、共有フォルダのファイルは更新履歴がわかりません。こうした課題を解決するため、様々なWikiツールを検討しました。

求めていたのは、シンプルで導入しやすく、Markdownで書けるWikiシステムです。Markdownは「# 」で見出しになったり、「**」で囲むと太字になったりする、シンプルな記法です。覚えやすく、読みやすい文章が書けるのが魅力でした。

そして出会ったのが「MDWiki」です。一言でいえば「HTMLファイル1つで動くMarkdownベースの超軽量Wiki」。実はWikiというよりも、「Flat-File CMS」というジャンルに近いかもしれません。Flat-File CMSとは、データベースを使わずにファイルシステム上のテキストファイルをコンテンツとして扱うシステムのことです。

この記事では、MDWikiの導入方法と活用法を紹介します。

MDWikiとは何か – その仕組みと特徴

MDWikiは、「mdwiki.html」というたった1つのファイルで動作するWikiシステムです。データベースもサーバープログラムも不要で、JavaScriptだけで動きます。Markdownで書いたファイルを同じフォルダに置くだけで、それがWikiページとして表示されるという仕組みです。

MDWikiの主な特徴

  1. 導入が超簡単 – mdwiki.htmlを置くだけ。データベース設定や複雑なインストール作業は一切不要です。
  2. 軽量で高速 – JavaScriptのみで動作するため、動作が軽快です。ページの読み込みも速く、サーバーへの負荷もほとんどありません。
  3. Markdownがそのまま使える – 専用の記法を覚える必要がなく、一般的なMarkdown記法がそのまま使えます。
  4. レスポンシブデザイン – スマートフォンやタブレットでも見やすいデザインです。Bootstrap3をベースにしているため、様々な画面サイズに対応します。
  5. テーマ切り替え機能 – Bootstrapのテーマを使って、見た目を簡単にカスタマイズできます。
  6. 追加機能(Gimmicks) – GoogleマップやGitHub Gistなどの外部サービスと連携する機能も備えています。

ただし、通常のWikiにあるような「ブラウザからの編集」「更新履歴の管理」「ページ検索」などの機能はありません。あくまでMarkdownファイルを見やすく表示するためのツールだと考えるとよいでしょう。

MDWikiの編集方法

MDWikiの最大の特徴(と言うか制約)は、ブラウザから直接編集できない点です。編集するには、以下のような方法を取ります:

  1. 基本的な編集フロー
    • Markdownファイル(.md)をテキストエディタで直接編集します
    • 編集後、サーバーや共有フォルダにファイルをアップロードします
    • 更新されたファイルがブラウザで表示されます
  2. 実際の編集パターン
    • ローカル編集パターン: FTPソフトでファイルをダウンロード→編集→アップロード
    • 共有フォルダパターン: ネットワーク上の共有フォルダ内のファイルを直接編集
    • Git連携パターン: GitHubなどのリポジトリで管理し、プル→編集→コミット→プッシュ
  3. チームでの編集時の注意点
    • 同時編集による上書きを防ぐため、編集前に声掛けする仕組みが必要です
    • あるいはGitなどのバージョン管理システムを導入すると安全です
    • 非技術者にはDropboxなどと連携させると編集がしやすくなります

この編集の仕組みから、MDWikiは「全員で気軽に編集する」というWikiの思想とは少し異なり、「Markdownで書いた文書を見やすく表示する」という用途に向いています。そのため、「Wikiというよりも、Flat-File CMS」という性格が強いと言えるでしょう。

他のMarkdown対応Wikiとの違い

Markdown対応のWikiシステムには、他にも「Wiki.js」や「GROWI」などがあります。

Wiki.jsは見た目が美しく機能も豊富ですが、Node.jsというサーバー環境が必要です。GROWIも同様に本格的なWikiですが、Node.jsとMongoDBという特殊な環境が必要になります。

一方、MDWikiは機能は限定的ですが、「シンプルさ」と「導入のしやすさ」が最大の強みです。レンタルサーバーはもちろん、社内の共有フォルダやローカルPCだけでも利用できる柔軟性があります。

MDWikiの長所と短所

実際に使ってみて感じたのは、自分のメモや調査結果、アイデアなどを整理するのに最適だということです。導入の手軽さ、Markdownの書きやすさ、見た目のカスタマイズのしやすさなど、個人利用では多くのメリットを享受できます。

一方で、プロジェクト管理の情報整理に使おうと思ったのですが、それはうまくいきませんでした。

  • 検索機能がない: 記事が増えてくると、必要な情報を探すのが困難になります
  • ユーザー管理機能がない: 誰が何を書いたのか分からず、責任の所在が不明確になります
  • 投稿記事をメンバーへ通知できない: 新しい情報や更新があっても、関係者に伝わりません
  • 同時編集による競合リスク: 複数人が同時に編集すると、上書きが発生する可能性があります
  • 技術的なハードル: Markdownの編集やファイルのアップロードに抵抗がある人もいます

小規模なプロジェクトや、技術者ばかりのチームであれば、これらの欠点は工夫で乗り越えられるかもしれません。例えば、Gitでの管理や、別途検索ツールの導入などで補完できます。しかし、非技術者も含むチームでは、これらの制約はかなり大きな障壁となるでしょう。

結論としては、MDWikiは「個人利用」や「少人数の技術者チーム」「シンプルな情報共有が目的」といった限定的な用途では非常に優れたツールです。しかし、本格的な社内Wikiを構築したい場合は、Wiki.jsやGROWIなどの機能が豊富なツールを検討した方が良いでしょう。

長所

  1. 導入の手軽さ: ファイルを置くだけで使えるシンプルさは他のツールにはない魅力です。
  2. 軽量で高速: データベースを使わないため、動作が軽快です。
  3. Markdownの書きやすさ: 覚えやすい記法で、読みやすいドキュメントが作れます。
  4. 環境を選ばない: 共有フォルダやレンタルサーバーなど、様々な場所で利用できます。
  5. 見た目のカスタマイズ: Bootstrapテーマで簡単に見た目を変更できます。

短所

  1. ブラウザからの編集ができない: ファイルを直接編集する必要があるため、非技術者には少しハードルが高いです。
  2. 更新履歴の管理機能がない: 誰がいつ何を変更したかの記録がないため、Gitなどの外部ツールと組み合わせる必要があります。
  3. 検索機能がない: コンテンツが多くなると目的のページを探しにくく、情報の発見が困難になります。
  4. 目次が大見出ししか表示されない: 長いページでは不便に感じることがあります。
  5. ユーザー管理機能がない: 誰が何を書いたのか分からず、責任の所在が不明確になります。
  6. 投稿記事をメンバーへ通知できない: 新しい情報や更新があっても、関係者に伝わりません。
  7. 同時編集による競合リスク: 複数人が同時に編集すると、上書きが発生する可能性があります。

MDWikiの導入方法 – 5分でできる設定手順

MDWikiの導入はとても簡単です。以下の手順で5分もあれば完了します。

  • 1. MDWikiのダウンロード
  • 2. ファイルの配置
  • 3. 最初のページを作成
  • 4. リンク先のページを作成
  • 5. ナビゲーションバーの設定(オプション)
  • 6. アクセスして確認

まず、MDWikiの公式サイトから最新版の「mdwiki.html」をダウンロードします。右クリックして「名前を付けて保存」を選びましょう。

ダウンロードした「mdwiki.html」を、Wikiを設置したい場所(レンタルサーバーや共有フォルダなど)にアップロードします。もし「index.html」という名前に変更すれば、URLでファイル名を省略できて便利です。

次に、最初のページとなる「index.md」というファイルを作成します。これがWikiのトップページになります。以下のような内容で作成してみましょう:

# プロジェクトWiki

## ようこそ

このWikiはプロジェクト情報を共有するために作られました。

## コンテンツ

- [プロジェクト概要](project-overview.md)
- [メンバー紹介](members.md)
- [進捗状況](progress.md)
Code language: CSS (css)

UTF-8形式で保存し、「mdwiki.html」と同じ場所にアップロードします。

上記の例では、3つのページへのリンクを作りました。これらのページも同様にMarkdownファイルとして作成し、アップロードします。例えば「project-overview.md」は以下のようになります:

# プロジェクト概要

## 目的

このプロジェクトは...

## スケジュール

- フェーズ1: 要件定義 (4月1日〜4月15日)
- フェーズ2: 設計 (4月16日〜5月15日)
- フェーズ3: 開発 (5月16日〜7月31日)
Code language: PHP (php)

より本格的なWikiにするなら、ナビゲーションバーを設定すると便利です。「navigation.md」というファイルを作成し、以下のように記述します:

# プロジェクトWiki

[ホーム](index.md)
[プロジェクト概要](project-overview.md)
[メンバー紹介](members.md)
[進捗状況](progress.md)
Code language: CSS (css)

これで画面上部にナビゲーションバーが表示されるようになります。

ブラウザで「mdwiki.html」(または「index.html」に変更した場合はそちら)にアクセスすると、Wikiが表示されます。自動的に「index.md」の内容が読み込まれます。

ここまでで基本的な導入は完了です。他のページはリンクをクリックして移動できます。

MDWikiのカスタマイズ

MDWikiは基本機能だけでも十分使えますが、少し手を加えることでより便利になります。

テーマの変更

MDWikiはBootstrapベースなので、テーマを簡単に変更できます。「navigation.md」に以下の行を追加するだけです:

[gimmick:theme](slate)
Code language: CSS (css)

「slate」の部分は、お好みのBootstrapテーマ名に変更できます。ユーザーがテーマを選べるようにするには:

[gimmick:themechooser](テーマを選択)
Code language: CSS (css)

設定ファイルの利用

「config.json」というファイルを作成すると、さらに細かい設定が可能です:

{
    "useSideMenu": true,
    "lineBreaks": "gfm",
    "additionalFooterText": "All content and images © by Our Team",
    "anchorCharacter": "#",
    "title": "プロジェクトWiki"
}
Code language: JSON / JSON with Comments (json)

これでタイトルやフッターテキストなどをカスタマイズできます。

JavaScriptによる拡張

MDWikiのHTMLファイルを直接編集すれば、機能を拡張することも可能です。例えば、H1見出しをページタイトルに設定するコードを追加するなどができます:

var titleSetter = {
    name: 'titlesetter',
    version: $.md.version,
    once: function() {
        var titletext = $('h1:last').text();
        document.title = titletext + " - プロジェクトWiki";
    }
};
$.md.registerGimmick(titleSetter);
Code language: JavaScript (javascript)

ただし、HTMLファイルを編集する場合は、パフォーマンスやセキュリティに注意が必要です。

アクセス制限の方法(セキュリティ対策)

MDWikiは標準ではアクセス制限機能を持っていません。社内情報を扱う場合は、別途セキュリティ対策が必要です。

ベーシック認証による保護

最も簡単なのは、Webサーバーの機能を使った「ベーシック認証」です。これはブラウザ上でユーザー名とパスワードの入力を求める仕組みです。

Apache Webサーバーの場合、「.htaccess」ファイルを作成して以下のように記述します:

AuthType Basic
AuthName "Wiki Access"
AuthUserFile /絶対パス/.htpasswd
Require valid-user
Code language: PHP (php)

「.htpasswd」ファイルには、ユーザー名とパスワードを設定します。多くのレンタルサーバーでは、管理画面から簡単に設定できるようになっています。

その他のセキュリティ対策

  1. IPアドレス制限: 社内からのアクセスのみを許可したい場合は、特定のIPアドレスからのみアクセスできるよう制限できます。
  2. SSL/TLSの導入: 通信を暗号化するためにHTTPS接続を設定しましょう。多くのレンタルサーバーでは無料のSSL証明書が利用できます。
  3. 定期的なバックアップ: 万が一の改ざんや削除に備えて、定期的にファイルをバックアップしておくことが重要です。

MDWikiの実際の活用例

MDWikiは様々な場面で活用できます。実際の使用例をいくつか紹介します。

プロジェクト管理での活用

プロジェクトの概要、メンバー紹介、進捗状況、会議録などを一元管理するWikiとして利用できます。例えば:

  • トップページ: プロジェクト全体の概要と最新のアップデート情報
  • プロジェクト計画: 目標、スケジュール、マイルストーン
  • メンバー紹介: 担当者と連絡先情報
  • 会議録: 日付別の会議内容のまとめ
  • 課題管理: 現在の課題と対応状況

Markdownの特性を活かして、表や箇条書きを多用するとより見やすくなります。

社内知識ベースとしての活用

業務マニュアルや社内FAQなどの知識ベースとしても活用できます:

  • 業務手順書: 各業務の手順とポイント
  • システム操作マニュアル: 社内システムの使い方
  • トラブルシューティング: よくある問題と解決方法
  • 新人研修資料: 新入社員向けの研修内容

従来のWord文書やPDFと違い、更新が容易で検索性も高いため、日々進化する業務知識の蓄積に適しています。

個人的な知識管理

個人の調査メモや学習記録としても活用できます。クラウドサーバーに設置すれば、PCやスマホなど様々な端末からアクセスできます。

まとめ – MDWikiの適材適所を考える

MDWikiは、そのシンプルさと導入のしやすさが最大の魅力です。一般的なWikiシステムと比べると機能は限定的ですが、「Markdownで書けて、見やすく表示したい」というニーズには十分応えてくれます。

シンプルで使いやすいツールを選ぶことは大切ですが、用途に合わせて適材適所で選択することがさらに重要です。MDWikiという選択肢を持っておくことで、状況に応じた最適な情報共有の形が見えてくるのではないでしょうか。


  1. MDWiki公式サイト – 開発者によるMDWikiの公式ドキュメントで、基本的な使い方や機能の詳細を解説
  2. Markdownを一つのHTMLファイルでWiki風に表示するMDWikiの紹介 – Qiitaでの詳細な解説記事で、実際の使用感やFAQが参考になる
  3. MDWikiを導入してみてわかったこと – 実際に導入した際の知見や注意点がまとめられている
  4. MDwiki:Markdownベースの超シンプルCMS – カスタマイズ方法やJavaScriptによる拡張方法など、より高度な使い方を解説
  5. MarkDownで書いたファイルを置くだけでWiki化できるMDWikiを導入してみた – 導入の具体的な手順と初期設定方法を詳しく解説
  6. MDWikiのダウンロードページ – 最新版のMDWikiをダウンロードできる公式GitHubリポジトリ
  7. MDwikiに感動した – 個人利用での活用事例や具体的なメリットが書かれている
  8. Markdown Guide – Markdownの基本的な書き方から応用までを学べる総合ガイド
  9. Bootstrap Themes – MDWikiで使用できるBootstrapテーマ集で、デザインカスタマイズに役立つ