LoginSignup
3
4

More than 5 years have passed since last update.

mw-to-gitの使い方

Last updated at Posted at 2014-12-18

Gitのソースコードには、mw-to-gitという、MediaWikiのデータをgitで取得、投稿できるコードが含まれています。これは、Perlのコードですが、セットアップすると、gitのラッパーとして動作します。

この記事は、概ねGit-MediaWikiの内容に倣います。

下準備

まずは、以下のライブラリを入れます。
* MediaWiki::API
* DateTime::Format::ISO8601

CPANで導入します。
$ sudo cpan MediaWiki::API
$ sudo cpan DateTime::Format::ISO8601

httpsでアクセスしたい場合は、
* LWP::Protocol::https
を入れます。

これらのライブラリがperlの実行時に含まれるようにしてください。

インストール

ライブラリが整ったら、ソースをインストールします。gitをビルドしてもいいし、Perlのコードだけで利用しても構いません。要点は2つあって、
* git --exec-path の相当するパスにgit-remote-mediawikiとgit-mwがあること(.perlなどの拡張子はつけません。シンボリックリンクで構いません)
* $PERL5LIBにgitのソースツリーにあるperlのコード$GIT/perl以下と、mw-to-gitのコード$GIT/contrib/mw-to-gitが含まれていること
です。

実行

コマンドは、以下のとおりです。
$ git clone mediawiki::http://(mediawikiのurl)

でMediaWikiのデータを取得することができます。

あとは、記事をMediaWikiのフォーマットで編集して、いつもどおりgit commitgit pushをすれば、記事を書いた分が反映されます。git logでもちろん記事の履歴を見ることができます。コミットメッセージはMediaWikiの履歴に掲載されます。

取得するためのURLは、MediaWikiのURLがデフォルトの場合には、何もすることがありませんが、Wikipediaのようにmod_rewriteなどで操作している場合には、APIの位置に合わせる必要があります。Wikipediaで言えば、https://ja.wikipedia.org/w になります。これは、MediaWikiの「特別ページ」→「バージョン情報」の「スクリプトパス」で確認できます。

オプション

MediaWikiの特定のコンテンツだけを取得する場合は、
$ git clone -c remote.origin.pages='記事名' mediawiki::http://アドレス

としてください。

また、記事のうち、履歴を取得しない場合は、
$ git -c remote.origin.shallow=true clone mediawiki::http://アドレス

と実行してください。

認証が必要な場合は、remote.origin.mwLoginとremote.origin.mwPasswordをgitのオプションで設定してください。

注意点

記事をプッシュする前には、必ずgit pullをしてください。編集が競合した時の対処法がないからです。

また、Wikipediaのような巨大なプロジェクトのソースを取得するのは、慎重に行ってください。容量が相当大きくなります。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4