2012-08-22 12 views
23

अपडेट किया गया पोस्टमठ StackExchange तरह MathJax साथ Markdown का उपयोग कैसे करें

ठीक है मैं Markdown और MathJax एक साथ काम करने के लिए प्रबंधित किया है, यह अपेक्षाकृत सरल वास्तव में था। मैंने Math12ax के साथ marked का उपयोग किया है।

$(function() { 
    var $text  = $("#text"), // the markdown textarea 
     $preview = $("#preview"); // the preview div 

    $text.on("keyup", function() { 
     $preview.html(marked($text.val())); // parse markdown 
     MathJax.Hub.Queue(["Typeset", MathJax.Hub, "preview"]); // then let MathJax do its job 
    }) 
}); 

समस्या अब है: मुझे लगता है markdown मेरी गणित 1 पार्स करने से पहले MathJax बदल सकते हैं। मैं इसे कैसे ठीक करूं? मुझे लगता है कि यह मैथ स्टैक ओवरफ्लो पर तय है, लेकिन कैसे? मैं गणित

पार्स करने से markdown रोकने की आवश्यकता

अद्यतन 2

यह काम करता है, लेकिन यकीन नहीं अपना रास्ता math.stackexchange यह करता है, लेकिन यह क्या मैं इतना परीक्षण किया के साथ इसी तरह/एक ही परिणाम का उत्पादन करने लगता है अब तक ...

$(function() { 
    var $text  = $("#text"), 
     $preview = $("#preview"); 

    $text.on("keyup", function() { 
     $preview.html($text.val()); 
     MathJax.Hub.Queue(["Typeset", MathJax.Hub, "preview"]); 
    }); 

    MathJax.Hub.Register.MessageHook("End Process", function (message) { 
     $preview.html(marked($preview.html())); 
    }); 
}); 

पुराने पोस्ट के नीचे

गणित स्टैकएक्सचेंज में, मैं मार्कडाक्स के साथ मैथजेक्स का उपयोग कर सकता हूं। मुझे आश्चर्य है कि मुझे ऐसा करने की क्या ज़रूरत है? मैं मार्कडाउन को प्रस्तुत करने के लिए marked जैसी लाइब्रेरी का उपयोग कर सकता हूं, लेकिन मैथजेक्स के लिए, ऐसा लगता है कि यह पेज लोड पर ही प्रस्तुत करता है। मैं कैसे इसे फिर से प्रस्तुत करना या बेहतर अभी क्या जरूरत रेंडर करने के लिए कॉल कर सकते हैं (मेरे द्वारा निर्दिष्ट)

html = marked("some markdown string") // a HTML string 
// is there something like 
html = MathJax.parse(html) 

अद्यतन

मुझे लगता है मैं http://www.mathjax.org/docs/1.1/typeset.html#manipulating-individual-math-elements पर विचार करना चाहिए। लेकिन जब मैं

$text.on("keyup", function() { 
    $preview.html(marked($text.val())); 
    var math = MathJax.Hub.getAllJax("preview"); 
    console.log(math); 
    MathJax.Hub.Queue(["Text", math, "a+b"]); 
}) 

कहाँ का प्रयास करें:

  • $text: मेरे पाठ क्षेत्र
  • $preview के लिए jQuery तत्व है:, पूर्वावलोकन div

मुझे लगता है कि math अपरिभाषित है तो ऐसा लगता है कि var math = MathJax.Hub.getAllJax("preview") काम नहीं कर रहा है। मेरे पास div#preview बीटीडब्ल्यू है।

+0

मार्कडाउन से पहले मैथजेक्स करना चालाक है (मार्कडाउन एचटीएमएल पास करता है) लेकिन इसका मतलब है कि गणित * हर जगह * प्रदान किया जाएगा। उदाहरण के लिए यह अस्पष्ट है कि आप इसे 'शाब्दिक' पाठ में प्रस्तुत करना चाहते हैं। –

उत्तर

4

गणित को अपने मार्कडाउन-पार्सर से बचाने का सबसे तेज़ तरीका है।

डेविड सर्वोन द्वारा विस्तृत उत्तर के लिए this question देखें, जिसमें गणित द्वारा उपयोग किए गए कोड के लिंक शामिल हैं।