質問: 正規表現と、pukiwikiのrename機能について質問です。 renameプラグインで下記の画面が出た時に、正規表現を使うと、単に目的とするページの名前を変えるだけでなく、その名前を含んでいるページも置換できて、リンク切れになるのを防げる・・と理解しています(違っていれば指摘して下さい)。 ただ、正規表現がよく分からないので、具体的にどのように書くと良いか教えて頂けると嬉しいです。 何卒宜しくお願いします。
回答: renameプラグインの正規表現は、そのままではメタ文字が使用できませんので、変更したい箇所がページ名の一部で、複数のページを一括で変更したい場合に有効です。 MyPage01 → MyLocalPage01 MyPage02 → MyLocalPage02 MyPage03 → MyLocalPage03 例えば上記のように変更したい場合、「From:」に「My」、「To:」に「MyLocal」と入力します。 ※変更前にどのように変更されるか確認の画面が表示されます。 「plugin/rename.inc.php」を次のように変更すると、通常PHPで利用するような正規表現でページ名の変更ができるようになります。(※私は検証済みです。) > renameプラグインのソース(plugin/rename.inc.php)の23行目付近を以下のように変更すれば正規表現置換でメタ文字を使用できます。(検証してませんけど) > > > ``` > - $src_pattern = '/' . preg_quote($src, '/') . '/'; > + $src_pattern = '/' . $src . '/'; > > ``` > なお、ページ本文等のリンクの変更は行われません。 プラグインの説明に『ページ内のリンクの書き換えは行ないません。yetlistなどを駆使して対処してください。』とあります。 実際、リンクの変更までは行われませんでしたので、renameプラグインでページ名を変更した後は、yetlistで未作成のページがある一覧(※変更前のページ名の横にそのページにリンクしているページが表示されます。)で確認するか、あるいはsearchで以前のページ名を検索するかして、見つかったページを1つずつ修正する必要があります。 ページの内容が多い場合や、ページ内に複数修正箇所がある場合は、編集欄から一旦テキストエディタに貼り付けて検索・置換を実行後、編集欄に戻すと少しだけ楽になるかもしれません。 ・「rename【ページ名変更】」プラグイン > 概要 > 既存ページの名前を変更します。実行には管理者権限が必要です。 > > ページの本文のほか、指定されたページ名の差分、バックアップ、添付ファイル、カウンターを一気にリネームします。 > > ページ名には変更するページの名前を指定します。省略時はページ名の選択または正規表現置換用文字列入力画面が表示されます。 > > 変換結果は:RenameLog?ページに実行結果を追記されます。 > > 備考 > ページ内のリンクの書き換えは行ないません。yetlistなどを駆使して対処してください。 > > リネーム対象のページが凍結されているかどうかはチェックしていません。 > > 関連ページにリネーム対象の文字列が複数含まれているとおかしくなります。 > > > * たとえば、hogeおよびhoge/hogeという二つのページがあったときに、hogeページをfugaに(関連ページを含んで)リネームすると、hoge/hogeページの名前がfuga/fugaになってしまいます。 > ・「yetlist【未作成ページを表示】」プラグイン > 書式 > > > ``` > ?plugin=yetlist > > ``` > 概要 > まだ作られていないページを一覧表示する。 > > 既存のページでWikiNameあるいはBracketNameで指定されているが、まだ作られていないページを一覧表示します。 > >