Merge pull request #964 from simonzack/mathjax_livepreview

Enable mathjax in live preview
This commit is contained in:
Dawa Ometto
2015-04-02 13:13:25 +02:00
5 changed files with 54 additions and 9 deletions
+7 -1
View File
@@ -149,7 +149,7 @@ module Precious
@allow_uploads = wiki.allow_uploads @allow_uploads = wiki.allow_uploads
if page = wikip.page if page = wikip.page
if wiki.live_preview && page.format.to_s.include?('markdown') && supported_useragent?(request.user_agent) if wiki.live_preview && page.format.to_s.include?('markdown') && supported_useragent?(request.user_agent)
live_preview_url = '/livepreview/index.html?page=' + encodeURIComponent(@name) live_preview_url = '/livepreview/?page=' + encodeURIComponent(@name)
if @path if @path
live_preview_url << '&path=' + encodeURIComponent(@path) live_preview_url << '&path=' + encodeURIComponent(@path)
end end
@@ -363,6 +363,12 @@ module Precious
mustache :page mustache :page
end end
get '/livepreview/' do
wiki = wiki_new
@mathjax = wiki.mathjax
mustache :livepreview, { :layout => false }
end
get '/history/*' do get '/history/*' do
@page = wiki_page(params[:splat].first).page @page = wiki_page(params[:splat].first).page
@page_num = [params[:page].to_i, 1].max @page_num = [params[:page].to_i, 1].max
@@ -315,6 +315,10 @@ var makePreviewHtml = function () {
// preview.innerHTML = text; // this doesn't work on IE. // preview.innerHTML = text; // this doesn't work on IE.
previewSet( text ); previewSet( text );
if (win.MathJax) {
win.MathJax.Hub.Queue(['Typeset', win.MathJax.Hub, 'contentframe']);
}
// highlight code blocks. // highlight code blocks.
var codeElements = preview.getElementsByTagName( 'pre' ); var codeElements = preview.getElementsByTagName( 'pre' );
var codeElementsLength = codeElements.length; var codeElementsLength = codeElements.length;
+1 -1
View File
@@ -38,7 +38,7 @@
<script type="text/javascript"> <script type="text/javascript">
window.MathJax = { window.MathJax = {
tex2jax: { tex2jax: {
inlineMath: [ ['\\(','\\)'] ], inlineMath: [ ['$','$'], ['\\(','\\)'] ],
displayMath: [ ['$$','$$'], ['\\[','\\]'] ], displayMath: [ ['$$','$$'], ['\\[','\\]'] ],
processEscapes: true processEscapes: true
}, },
@@ -40,5 +40,27 @@ var require = {
<script src='js/sundown.js'></script> <script src='js/sundown.js'></script>
<script src='js/md_sundown.js'></script> <script src='js/md_sundown.js'></script>
<script src='js/livepreview.js'></script> <script src='js/livepreview.js'></script>
{{#mathjax}}
{{^mathjax_config}}
<script type="text/javascript">
window.MathJax = {
tex2jax: {
inlineMath: [ ['$','$'], ['\\(','\\)'] ],
displayMath: [ ['$$','$$'], ['\\[','\\]'] ],
processEscapes: true
},
TeX: { extensions: ["autoload-all.js"] }
};
</script>
{{/mathjax_config}}
{{#mathjax_config}}
<script type="text/javascript" src="{{base_url}}/{{mathjax_config}}"></script>
{{/mathjax_config}}
<script>(function(d,j){
j = d.createElement('script');
j.src = '//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML';
(d.head || d.getElementsByTagName('head')[0]).appendChild(j);
}(document));
</script>{{/mathjax}}
</body> </body>
</html> </html>
+13
View File
@@ -0,0 +1,13 @@
module Precious
module Views
class Livepreview < Layout
def mathjax
@mathjax
end
def mathjax_config
@mathjax_config
end
end
end
end