**[[質問箱4/40]] [#ke29f817] #author("2018-03-11T19:19:21+09:00;2010-01-25T15:58:29+09:00","","") **[[質問箱/4040]] [#ke29f817] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|指定の単語から始まるページをautolink.datに含めたくない| |~バージョン|1.4.7| |~投稿者|[[もこ]]| |~状態|完了| |~投稿日|&new{2007-04-04 (水) 22:34:13};| ***質問 [#k56f3a84] AutoLinkを多用していたのですが、先日[[dev:BugTrack2/81]]の症状が出てページの内容が表示されなくなってしまいました。 私のサイトでは 日記/なんとか というような長い名前のページが沢山あり、このページ名はautolinkされなくても良いので、日記/から始まるページ名をautolink.datに含めないようにすればautolink.datのサイズが小さくなり再びautolinkを使えるようになると思うのですが、指定の単語から始まるページをautolink.datに含めないようにすることは出来るでしょうか。 ***回答 [#n9dd7e67] - [[dev::config/AutoLink]] -- &new{2007-04-04 (水) 23:18:19}; -- [[質問箱3/251]], [[質問箱4/552]] -- &new{2010-01-25 (月) 15:58:29}; -- [[質問箱/3251]], [[質問箱/4552]] -- &new{2010-01-25 (月) 15:58:29}; - ForceIgnoreListは試してみましたが、autolink.datの末尾に ForceIgnoreListに載っている単語で作られた別の正規表現が追加になるだけでした -- [[もこ]] &new{2007-04-04 (水) 23:54:34}; - 緊急避難的になら、func.phpのfunction get_autolink_patternの中でちょこっといじればできますが…。次の行の正規表現部分に手を入れればいい。 $auto_pages_a = array_values(preg_grep('/^[A-Z]+$/i', $auto_pages)); 同じ要望が多ければ…というか、autolinkにはやっかいな問題もあるんで、そのうち抜本的な改良も加えられるだろうから、それまでの暫定で。-- [[yahoo]] &new{2007-04-17 (火) 19:37:00}; - 同様のケースで悩んでいます。上記正規表現の変更事例(たとえば例に出ている「日記」の除外方法)の詳細を教えてください。 -- &new{2007-04-25 (水) 11:50:14}; - 上の部分に入れ子すると見にくくなるので、個人的にお勧めの方法。 function get_autolink_pattern(& $pages) { - global $WikiName, $autolink, $nowikiname; + global $WikiName, $autolink, $nowikiname, $non_list; $config = &new Config('AutoLink'); $config->read(); $ignorepages = $config->get('IgnoreList'); $forceignorepages = $config->get('ForceIgnoreList'); unset($config); $auto_pages = array_merge($ignorepages, $forceignorepages); foreach ($pages as $page) if (preg_match('/^' . $WikiName . '$/', $page) ? $nowikiname : strlen($page) >= $min_len) $auto_pages[] = $page; + $auto_pages = array_diff($auto_pages, preg_grep('/' . $non_list . '/S', $auto_pages)); + $auto_pages = array_diff($auto_pages, preg_grep('/^test/S', $auto_pages)); + if (empty($auto_pages)) { (以降、省略) 1つ目に追加した正規表現は、pukiwiki.ini.php で設定する$non_list に該当するページを、 autolink 登録用のページリストから削除するためのものです。~ 2つ目が、$non_list 以外のページをリストから消すための、じか書き用の場所です。~ 必要な方(あるいは両方)を利用してください。~ ちなみに、2つ目の例では、「test」で始まるすべてのページが、対象から外れます。 -- &new{2007-06-25 (月) 10:18:02}; - ものすごく遅くなりましたが↑の方の書き込みで解決しましたありがとうございました -- [[もこ]] &new{2007-10-26 (金) 17:59:00}; //#comment