Javascript в MediaWiki
30 Май 2009
Сегодня возникла задача запустить в вики-странице javascript. Кодить скрипт в самой страничке не рекомендуется, и такая возможность запрещена по умолчанию, потому что вики-страницу может отредактировать кто угодно, а значит и подменить ваш скрипт на любой другой, в том числе и зловредный, тоже сможет кто угодно.
К счастью, в излюбленном мною движке MediaWiki, есть возможность добавить парсеру обработчики своих тегов. Я решил добавить свой тег и реализовал функцию, которая возвращает мне нужный код на javascript. В результате, можно будет использовать только мою функцию, и никакого левого кода выполняться не будет. Но вот незадача: в готовом HTML посередине скрипта у меня оказываются неверные тэги (разрывы строк, преобразованные в <p>, и неожиданно появившийся тэг <pre>), хотя я явно запретил дальнейший парсинг движком вики. Пришлось весь скрипт писать в одну строчку. В коде это выглядит просто ужасно и самое страшное, что если кто-то догадается его отформатировать, то всё запорется.
Час был потерян на то, чтобы понять, почему добавляются лишние теги. Но так ничего и не получилось, оставил как есть.
