This splitting will be optional during macro registration in v2.1.0 release of redmine. Take a look in [Macro Option](http://www.redmine.org/issues/11578)
Tikz/PGF is based on description in http://www.hostedredmine.com/projects/alxa/wiki/PGF_TIKZ_Redmine and latextool.sh is taken from there.
The actual latextool.sh which has been tested here is under plugins/wiki_external_filter/lib/latextool.sh
This part is unstable at the moment due to a lot of possiblities in tikz there only some pictures possible. You might need to adjust latextool.sh for loading libraries for specific tikz picture.
Combination of [Ritex: a Ruby WebTeX to MathML converter](http://ritex.rubyforge.org/) and [SVGMath](http://www.grigoriev.ru/svgmath/) that takes WebTeX
formula specification as input and produces SVG file as output.
Both ritex and SVGMath require some patches/wrappers.
Additionally working installation of xmllint from libxml2 with configured
MathML catalog is required: for Gentoo use [this ebuild](http://bugs.gentoo.org/194501).
Gentoo ebuilds for [ritex](http://www.ndl.kiev.ua/downloads/ritex-0.3.ebuild.tar.gz) and [svgmath](http://www.ndl.kiev.ua/downloads/svgmath-0.3.3.ebuild.tar.gz) are attached.
Example of usage:
{{ritex(
G(y) = \left\{\array{ 1 - e^{-\lambda x} & \text{ if } y \geq 0 \\ 0 & \text{ if } y <0}\right.
These macros use [ffmpeg](http://ffmpeg.org) to convert any supported video file to FLV format and display it on wiki using [FlowPlayer](http://www.flowplayer.org) flash player. *video* macro takes file path on server as its input, as well as attachments names from current wiki page, while *video_url* expects full URL to the video to convert & show.
Splash images for videos are generated automatically from the first frame of the video.
Multiple videos per page are supported, player instance is attached to the selected video as in [this example](http://flowplayer.org/demos/installation/multiple-players.html).
Rendered output (before player is embedded by clicking on the image, using Flowplayer [video demo](http://flowplayer.org/demos/installation/index.html) file):
New macros can easily be added via wiki_external_filter.yml config file.
Every macro may have multiple commands processing the same input - for example for **video** macro two commands are used: first one extracts thumbnail and second one converts the video.
Commands use standard Unix approach for filtering: input is fed
to the command via stdin and output is read on stdout. If command return
status is zero, content type is assumed to be of ``content_type`` specified in
config, otherwise it's assumed to be plain error text together with stderr content.
You can use ``prolog``/``epilog`` config parameters to add standard text before/after
actual macro content passed to filter.
Additionally, ``cache_seconds`` parameter specifies the number of seconds commands
output result should be cached, use zero to disable caching for this macro.
The way filter output is visualized is controlled via
app/views/wiki_external_filter/macro_*.html.erb files. The view to use is selected by ``template`` macro option in config. The view can use all commands outputs for particular macro.
``replace_attachments`` tells plugin that it should parse the text passed to the macro and replace all occurrences of strings matching attachments names with their physical paths on disk.
Macro argument is de-escaped via CGI.unescapeHTML call prior to being fed to
filter.
Current bugs/issues
===================
1. Either Redmine core (if you use default wiki engine) or your custom wiki engine plugin requires patching to get things work. In fact, the whole
wiki formatting design as of now seems to be quite messy.
2. SVG support is more complex it should have been if all browsers had played by the rules - currently quite some trickery with different XHTML elements/CSS tricks is used to show SVGs properly in major browsers. Of course, there's not that much that can be done for IE as it does not support SVG at all, but now at least the plugin substitutes raster fall-back image for IE if it is available.
3. For formula support, theoretically ritex alone is sufficient if you have
MathML-capable browser, however in practice there are too many issues with
this approach: for example Firefox (actually the onlt MathML-capable
browser so far, it seems) requires specific DOCTYPE additions that Redmine
currently lacks; additionally, Redmine emits text/html, while Firefox
expects text/xml in order to parse MathML. Changing content type alone is
not sufficient as Redmine HTML output does not pass more strict checks
required for XML output. Hence, the double conversion (WebTeX to MathML
and then MathML to SVG) is necessary. Once (if ever?) MathML support
matures in other browser, possibly this can be revisited.
4. SVGs could have been embedded into HTML page directly (thus allowing to use
redmine links there) but I'm afraid there are similar problems
as with MathML embedding attempts.
5. RoR caching support is a mess: no way to expire old files from file-based
cache??? Are you joking???
Additional info
===============
1. Somewhat similar plugins (although with narrower scope) are [graphviz plugin](http://github.com/tckz/redmine-wiki_graphviz_plugin) and [latex plugin](http://www.redmine.org/boards/3/topics/4987).
Graphviz functionality is mostly covered by current version of
wiki_external_filter. Latex is not, but only due to the fact I do not have
latex installed nor currently have a need in that: adding macro that