Wikiのページを自動生成-perl-

ここではperlを使ってpuki wikiのページを自動で生成する方法を簡単に解説します。
  • 1.PukiWiki 1.4.7(UTF-8)をインストールする。バージョンはどんなものでもよいかと思いますが、筆者はこのバージョンを使っています。
  • 2.perlで必要なモジュールがあるかどうか確認してください。筆者はhttp postにLWPを使用しています。
  • 3.perlソース(UTF-8)でwikiに記事、ページ名をpostするのはこのようなソースになります。関数にしたので、便利かと思います。
  • 
    sub postWiki{
    
    #引数1番目 記事内容 ここはwikiフォーマットでpostしてください。
    #URLエンコードはLWPがやってくれてしまうので、必要なし。
    $msg = $_[0];     
    
    #引数2番目 ページ名 ここも実際のwikiフォーマットでpostしてください。
    $pageName = $_[1]; 
    
    $ua = LWP::UserAgent->new;
    $req = POST 'http://past-seven.com/wiki/',#自分の環境に合わせる。
    [ encode_hint => 'ぷ', 	#pukiwikiデフォルト
    cmd => 'edit',		#pukiwikiデフォルト
    page => "$pageName",
    digest => 'd41d8cd98f00b204e9800998ecf8427e', #pukiwikiデフォルト
    msg => "$msg",
    notimestamp => 'true',	#pukiwikiデフォルト
    write => 'ページの更新'];#pukiwikiデフォルト
    $user = ""; 	#必要があればベーシック認証ID
    $pwd = "";   	#必要があればベーシック認証PW。
    $domain="past-seven.com"; #自分の環境に合わせる。
    $port=80;
    $realm="PukiWikiAuth";	#pukiwikiデフォルト
    $ua->credentials("$domain:$port",$realm,$user,$pwd);
    print $ua->request($req);
    
    }
    
  • pukiwikiの新規ページ作成時、digest値は固定文字列が入るようです。念のため、自分の値を確認するには、ページの新規作成→編集ページに遷移したあと、HTMLソースのhidden digestの値を確認してください。
  • あとはこのperlソースを使って、RSS、メールを自動取得、cronにしかけたりして、wikiを自動的に生成することができます。

メニュー