= '5') { require_once("lib/ASCIIMathPHP/ASCIIMathPHP-2.0.class.php"); } else { require_once("lib/ASCIIMathPHP/ASCIIMathPHP.class.php"); } /** * Render ASCII math as MathML * Requires ENABLE_XHTML_XML = true * See http://www.jcphysics.com/ASCIIMath/ * Syntax: http://www1.chapman.edu/~jipsen/mathml/asciimathsyntax.xml * Example: "int_-1^1 sqrt(1-x^2)dx = pi/2" * => -11 1-x2 d x = π2 */ class WikiPlugin_AsciiMath extends WikiPlugin { function getName() { return _("AsciiMath"); } function getDescription() { return _("Render ASCII Math as MathML"); } function getDefaultArguments() { return array(); } function handle_plugin_args_cruft(&$argstr, &$args) { $this->source = $argstr; } function run($dbi, $argstr, &$request, $basepage) { $args = $this->getArgs($argstr, $request); if (empty($this->source)) { return HTML::div(array('class' => "error"), "Please provide a formula to AsciiMath plugin"); } if (phpversion() >= '5') { include("lib/ASCIIMathPHP/ASCIIMathPHP-2.0.cfg.php"); } else { include("lib/ASCIIMathPHP/ASCIIMathPHP.cfg.php"); } $ascii_math = new ASCIIMathPHP($symbol_arr, $this->source); $ascii_math->genMathML(); return HTML::raw($ascii_math->getMathML()); } }; // Local Variables: // mode: php // tab-width: 8 // c-basic-offset: 4 // c-hanging-comment-ender-p: nil // indent-tabs-mode: nil // End: ?>