diff --git a/TextformatterLatexMathML.module b/TextformatterLatexMathML.module
index a0a7bec..6222580 100644
--- a/TextformatterLatexMathML.module
+++ b/TextformatterLatexMathML.module
@@ -1,126 +1,126 @@
- 'LatexMathML Text Formatter',
- 'version' => '1.0.0',
- 'summary' => 'Replaces $latexformula$ with inline MathML',
- 'author' = '7u83',
- 'autoload' => true,
- 'singular' => true,
- 'href' => 'https://git.planix.org/7u83/processwire-TextformatterLatexMathML',
- 'requires' => array('ProcessWire>=3.0.0'),
- );
- }
-
- public function format(&$str) {
-
- // Regular expression to match LaTeX formulas within $ symbols
- $latexPattern = '/(?loadHTML(''.$inputString.'', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
-
- // Create a DOMXPath object to navigate the DOMDocument
- $xpath = new \DOMXPath($dom);
-
- // Find all
,
,
... elements
- $elements = $xpath->query('//p | //div | //span | //strong | //b | //i | //em');
-
-
- $nodesForReplacement = array();
-
- // Iterate through the elements and create and arraz of nodes to modify
- foreach ($elements as $element) {
- foreach ($element->childNodes as $node) {
- if ($node->nodeType === XML_TEXT_NODE) {
-
- // convert $formula$ to mathml
- $modifiedValue = preg_replace_callback($latexPattern, array($this,'convertToMathML'), $node->nodeValue);
-
- // unescape esaped $-signs
- $modifiedValue = str_replace('\$', '$',$modifiedValue);
-
- // Save the node and its modified content for later replacement
- $nodesForReplacement[] = array(
- 'node' => $node,
- 'modifiedValue' => $modifiedValue
- );
- }
- }
-
- }
-
- // Replace the nodes
- foreach ($nodesForReplacement as $replacement) {
- $fragment = $dom->createDocumentFragment();
- $fragment->appendXML($replacement['modifiedValue']);
- $replacement['node']->parentNode->replaceChild($fragment, $replacement['node']);
- }
-
-
- // Output the modified HTML
- $str = str_replace(array('','') , '' , $dom->saveHTML($dom->documentElement));
- }
-
- // Define a callback function to convert the matched formula to MathML
- function convertToMathML($matches) {
- $cache = wire('cache');
-
- // $matches[1] contains the matched substring within '$'
- $formula = $matches[1];
-
- $cn = "TFLatexMathML$formula";
- $mathml = base64_decode($cache->get($cn));
- if ($mathml)
- return $mathml;
-
- $mathml = $this->convertFormulaToMathML($formula);
- $cache->save($cn,base64_encode($mathml));
-
- // Return the processed result as the replacement
- return $mathml;
- }
-
- // Function to convert a formula to MathML
- function convertFormulaToMathML($formula) {
-
- $command = 'latexmlmath --quiet -';
- $inputString = '$'.$formula.'$';
-
-
- // Construct the full command with the input string
- $fullCommand = sprintf('echo %s | %s', escapeshellarg($inputString), $command);
-
-
- // Execute the command and capture the output
- $output = shell_exec($fullCommand);
-
- return $output;
- }
-}
-
+ 'LatexMathML Text Formatter',
+ 'version' => '0.9.1',
+ 'summary' => 'Replaces $latexformula$ with inline MathML',
+ 'author' = '7u83',
+ 'autoload' => true,
+ 'singular' => true,
+ 'href' => 'https://git.planix.org/7u83/processwire-TextformatterLatexMathML',
+ 'requires' => array('ProcessWire>=3.0.0'),
+ );
+ }
+
+ public function format(&$str) {
+
+ // Regular expression to match LaTeX formulas within $ symbols
+ $latexPattern = '/(?loadHTML(''.$inputString.'', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
+
+ // Create a DOMXPath object to navigate the DOMDocument
+ $xpath = new \DOMXPath($dom);
+
+ // Find all ,
, ... elements
+ $elements = $xpath->query('//p | //div | //span | //strong | //b | //i | //em');
+
+
+ $nodesForReplacement = array();
+
+ // Iterate through the elements and create and arraz of nodes to modify
+ foreach ($elements as $element) {
+ foreach ($element->childNodes as $node) {
+ if ($node->nodeType === XML_TEXT_NODE) {
+
+ // convert $formula$ to mathml
+ $modifiedValue = preg_replace_callback($latexPattern, array($this,'convertToMathML'), $node->nodeValue);
+
+ // unescape esaped $-signs
+ $modifiedValue = str_replace('\$', '$',$modifiedValue);
+
+ // Save the node and its modified content for later replacement
+ $nodesForReplacement[] = array(
+ 'node' => $node,
+ 'modifiedValue' => $modifiedValue
+ );
+ }
+ }
+
+ }
+
+ // Replace the nodes
+ foreach ($nodesForReplacement as $replacement) {
+ $fragment = $dom->createDocumentFragment();
+ $fragment->appendXML($replacement['modifiedValue']);
+ $replacement['node']->parentNode->replaceChild($fragment, $replacement['node']);
+ }
+
+
+ // Output the modified HTML
+ $str = str_replace(array('','') , '' , $dom->saveHTML($dom->documentElement));
+ }
+
+ // Define a callback function to convert the matched formula to MathML
+ function convertToMathML($matches) {
+ $cache = wire('cache');
+
+ // $matches[1] contains the matched substring within '$'
+ $formula = $matches[1];
+
+ $cn = "TFLatexMathML$formula";
+ $mathml = base64_decode($cache->get($cn));
+ if ($mathml)
+ return $mathml;
+
+ $mathml = $this->convertFormulaToMathML($formula);
+ $cache->save($cn,base64_encode($mathml));
+
+ // Return the processed result as the replacement
+ return $mathml;
+ }
+
+ // Function to convert a formula to MathML
+ function convertFormulaToMathML($formula) {
+
+ $command = 'latexmlmath --quiet -';
+ $inputString = '$'.$formula.'$';
+
+
+ // Construct the full command with the input string
+ $fullCommand = sprintf('echo %s | %s', escapeshellarg($inputString), $command);
+
+
+ // Execute the command and capture the output
+ $output = shell_exec($fullCommand);
+
+ return $output;
+ }
+}
+