RedmineのWikiでJSを使う.

RedmineのWikiでJSを使いたかった. 本来WikiでJSを扱えるようにすると,セキュリティ上の問題があるが,限定的なメンバーのみで編集するため,使えるようにした.

まず,scriptタグを使えるようにする.

sudo vi /usr/share/redmine/lib/redcloth3.rb
    #ALLOWED_TAGS = %w(redpre pre code notextile)
    ALLOWED_TAGS = %w(redpre pre code notextile script)
sudo service apache restart

実際にWikiにJSを書く.

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>alert('Hello, world!');</script>

ここで注意する必要があるのが改行と不等号である. 改行に関しては,brタグが挿入されてしまうため,Wikiのpre記法とコメントアウトを組み合わせて使う.

<script>//<pre>
alert('Hello, world!');
//</pre></script>

不等号に関しては,文字列中の不等号ならエスケープシーケンスが効くのでこれを使う. しかし,プログラム中の不等号に関しては解決方法が自分では見つけられなかった(誰か教えて).

<script>alert('"\x3cHello, world!\x3e"');</pre></script>

WikiのデータをJSで処理できると結構面白い. 実際にWikiで文献リストを共有しているんだけど,文献リストをパースしてbibtex形式に落としこむ プログラムとかを書いた.結構捗る.