Pārlūkot izejas kodu

org-e-html: Fix mathjax

Jambunathan K 13 gadi atpakaļ
vecāks
revīzija
4d58568076
1 mainītis faili ar 30 papildinājumiem un 35 dzēšanām
  1. 30 35
      EXPERIMENTAL/org-e-html.el

+ 30 - 35
EXPERIMENTAL/org-e-html.el

@@ -120,7 +120,8 @@
     (:html-preamble nil nil org-e-html-preamble)
     (:html-table-tag nil nil org-e-html-table-tag)
     (:xml-declaration nil nil org-e-html-xml-declaration)
-    (:LaTeX-fragments nil "LaTeX" org-export-with-LaTeX-fragments))
+    (:LaTeX-fragments nil "LaTeX" org-export-with-LaTeX-fragments)
+    (:mathjax "MATHJAX" nil "" space))
   "Alist between export properties and ways to set them.
 
 The car of the alist is the property name, and the cdr is a list
@@ -1567,39 +1568,31 @@ This function shouldn't be used for floats.  See
 
 (defun org-e-html-mathjax-config (template options in-buffer)
   "Insert the user setup into the matchjax template."
-  (let (name val (yes "   ") (no "// ") x)
-    (mapc
-     (lambda (e)
-       (setq name (car e) val (nth 1 e))
-       (if (string-match (concat "\\<" (symbol-name name) ":") in-buffer)
-	   (setq val (car (read-from-string
-			   (substring in-buffer (match-end 0))))))
-       (if (not (stringp val)) (setq val (format "%s" val)))
-       (if (string-match (concat "%" (upcase (symbol-name name))) template)
-	   (setq template (replace-match val t t template))))
-     options)
-    (setq val (nth 1 (assq 'mathml options)))
-    (if (string-match (concat "\\<mathml:") in-buffer)
-	(setq val (car (read-from-string
-			(substring in-buffer (match-end 0))))))
-    ;; Exchange prefixes depending on mathml setting
-    (if (not val) (setq x yes yes no no x))
-    ;; Replace cookies to turn on or off the config/jax lines
-    (if (string-match ":MMLYES:" template)
-	(setq template (replace-match yes t t template)))
-    (if (string-match ":MMLNO:" template)
-	(setq template (replace-match no t t template)))
-    ;; Return the modified template
-    template))
-
-(defun org-e-html-mathjax (info)
-  (when (or (eq (plist-get info :HTML-fragments) 'mathjax)
-	    (and org-export-have-math
-		 (eq (plist-get info :HTML-fragments) t)))
-    (org-e-html-mathjax-config
-     org-e-html-mathjax-template
-     org-e-html-mathjax-options
-     (or (plist-get info :mathjax) ""))))
+  (when (member (plist-get info :LaTeX-fragments) '(mathjax t))
+    (let (name val (yes "   ") (no "// ") x)
+      (mapc
+       (lambda (e)
+	 (setq name (car e) val (nth 1 e))
+	 (if (string-match (concat "\\<" (symbol-name name) ":") in-buffer)
+	     (setq val (car (read-from-string
+			     (substring in-buffer (match-end 0))))))
+	 (if (not (stringp val)) (setq val (format "%s" val)))
+	 (if (string-match (concat "%" (upcase (symbol-name name))) template)
+	     (setq template (replace-match val t t template))))
+       options)
+      (setq val (nth 1 (assq 'mathml options)))
+      (if (string-match (concat "\\<mathml:") in-buffer)
+	  (setq val (car (read-from-string
+			  (substring in-buffer (match-end 0))))))
+      ;; Exchange prefixes depending on mathml setting
+      (if (not val) (setq x yes yes no no x))
+      ;; Replace cookies to turn on or off the config/jax lines
+      (if (string-match ":MMLYES:" template)
+	  (setq template (replace-match yes t t template)))
+      (if (string-match ":MMLNO:" template)
+	  (setq template (replace-match no t t template)))
+      ;; Return the modified template
+      template)))
 
 (defun org-e-html-preamble (info)
   (when (plist-get info :html-preamble)
@@ -1732,7 +1725,9 @@ original parsed data.  INFO is a plist holding export options."
 <head>"
    (org-e-html-meta-info info)		; meta
    (org-e-html-style info)		; style
-   (org-e-html-mathjax info)		; mathjax
+   (org-e-html-mathjax-config		; mathjax
+    org-e-html-mathjax-template org-e-html-mathjax-options
+    (or (plist-get info :mathjax) ""))
    "
 </head>"