Radeox では、http または https の URL を書くと、リンク (XHTML の a 要素) に変換される。これをいじりたい場合の方法を、簡単にまとめてみる。
出す
jar cf radeox.jar radeox_markup.properties
SnipSnap の場合、radeox.jar は WEB-INF/lib にある。
いじる
radeox_markup.properties の中で、リンクに関係しているのは以下 2 項目。
ここでは例として、「外部リンクをたどる時に専用ページを経由させる」というのを考える。Web 上の掲示板で時々見られるやつだ。SnipSnap のページは、タイトルがそのまま URL になるので、リファラを通じて外部のサイトに情報が漏れてしまう。これを防ごうというわけ。
filter.url.match=([^\"'=?]|^)((http|ftp)s?://(%[\\p{Digit}A-Fa-f][\\p{Digit}A-Fa-f]|[-_.!~*';/?:@#&=+$,\\p{Alnum}])+) filter.url.print=<span class=\"nobr\">{0}<a target="_blank" href=\"/util/outerzone?{1}\">{2}</a></span>
経由する専用ページは何で作ってもいいが、jsp で単純な例を示すと、
<% String uri = request.getQueryString(); %> <title>外部リンク</title> 外部のサイトにジャンプしますよ。 <a href="<%= uri %>"><%= uri %></a>
入れる
jar uf radeox.jar radeox_markup.properties
SnipSnap の場合、サーバを落としていないと jar ファイルを更新できないことに注意。