Доработка плагина MathX

Требуется доработка плагина MathX — LaTeX, он генерирует растровую картинку, а требуется получить на выходе SVG.

Сам плагин:
modx.com/extras/package/mathxlatexformulasinmodx

По цене и срокам — обсуждаемо…

5 комментариев

avatar
Хо-хо-хо (:

<?php
/**
 * MathX - LaTeX formulas in MODx
 *
 * Copyright 2012 by MadMage <daniele.calisi@gmail.com>
 *
 * MathX - LaTeX formulas in MODx is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the Free
 * Software Foundation; either version 2 of the License, or (at your option) any
 * later version.
 *
 * MathX - LaTeX formulas in MODx is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with
 * MathX - LaTeX formulas in MODx; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 * Suite 330, Boston, MA 02111-1307 USA
 *
 * @package mathx
 */
/**
 * @package mathx
 */

if ($modx->event->name == 'OnWebPagePrerender') {
  $mathx = 'mathx';
  $config = &$modx->getConfig();
  $cache_path = $config['assets_path'] . 'components/' . $mathx . '/';
  $cache_url = $config['assets_url'] . 'components/' . $mathx . '/';
  if (!is_dir($cached_images)) {
    mkdir($cache_path, 0777);
  }
  $cached_images = glob($cache_path . '*');
  
  $output = &$modx->resource->_output;
  
  $fn1 =
    '$cp = "' . $cache_path . '";
    $cu = "' . $cache_url . '";
    $mt = "";
    $img = ';
  $fn2 = 'md5($m[1]) . ".svg";
    if (!file_exists($cp . $img)) {
      $ne = str_replace(" ", "%20", $m[1]);
      $ch = curl_init("http://latex.codecogs.com/svg.latex?';
  $fn3 = '" . $ne);
      $fp = fopen($cp . $img, "w");
      curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_exec($ch); curl_close($ch); fclose($fp);
      $mt = " ";
    }
    return "';
  $fn4 = '";';
  
  $img_html_block = '<img class=\"mathx_block\" src=\"".$cu.$img."\" title=\"".$m[1].$mt."\">';
  $img_html_inline = '<img class=\"mathx_inline\" src=\"".$cu.$img."\" title=\"".$m[1].$mt."\">';
  $fn_block = $fn1.$fn2.$fn3.'<div class=\"mathx_block\">'.$img_html_block.'</div>'.$fn4;
  $fn_inline = $fn1.'"i-".'.$fn2.'\inline%20'.$fn3.'<span class=\"mathx_inline\">'.$img_html_inline.'</span>'.$fn4;
  
  $output = preg_replace_callback('@<math>(.*?)</math>@ui', 
      create_function('$m', $fn_block), $output);
  
  $output = preg_replace_callback('@<m>(.*?)</m>@ui', 
      create_function('$m', $fn_inline), $output);
}
avatar
Можно немного раскрыть тему и поведать, что не так и предложить свои пути решения? :)

Словарь Вильяма Шекспира, по подсчету исследователей, составляет 12 000 слов. Словарь негра из людоедского племени «Мумбо-Юмбо» составляет 300 слов.
Эллочка Щукина легко и свободно обходилась тридцатью...
(Двенадцать стульев)
avatar
В смысле? Я доработал плагин, теперь выдает svg.
avatar
Супер.
Предлагаю дальше перейти в личку…
avatar
Спасибо. Отличное решение…
Написал в личку.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.