diff options
author | Benjamin Tan <demoneaux@gmail.com> | 2018-02-08 20:54:21 +0800 |
---|---|---|
committer | Benjamin Tan <demoneaux@gmail.com> | 2018-02-08 20:54:21 +0800 |
commit | b2d532ea28eaaf0b7b2cf225c713c8a8d3f4a3bf (patch) | |
tree | f736afd40fe27d13652f3ee618de4b3f9212d0be /plugin/math | |
parent | 7cd2c9138d2a28f4395799bcfd3e810dfee511ea (diff) | |
download | perl-software-in-gnu-guix-b2d532ea28eaaf0b7b2cf225c713c8a8d3f4a3bf.tar perl-software-in-gnu-guix-b2d532ea28eaaf0b7b2cf225c713c8a8d3f4a3bf.tar.gz |
Allow users to customise MathJax options.
Ref. #1856, #2006, #2045.
This is a more open approach to allow customisation of all MathJax options instead of select options only.
Diffstat (limited to 'plugin/math')
-rwxr-xr-x | plugin/math/math.js | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/plugin/math/math.js b/plugin/math/math.js index 7867376..29445cd 100755 --- a/plugin/math/math.js +++ b/plugin/math/math.js @@ -7,19 +7,26 @@ var RevealMath = window.RevealMath || (function(){ var options = Reveal.getConfig().math || {}; - options.mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js'; - options.config = options.config || 'TeX-AMS_HTML-full'; - options.tex2jax = options.tex2jax || { - inlineMath: [['$','$'],['\\(','\\)']] , - skipTags: ['script','noscript','style','textarea','pre'] }; + var mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js'; + var config = options.config || 'TeX-AMS_HTML-full'; + var url = mathjax + '?config=' + config; - loadScript( options.mathjax + '?config=' + options.config, function() { + var defaultOptions = { + messageStyle: 'none', + tex2jax: { + inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ], + skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ] + }, + skipStartupTypeset: true + }; - MathJax.Hub.Config({ - messageStyle: 'none', - tex2jax: options.tex2jax, - skipStartupTypeset: true - }); + defaults( options, defaultOptions ); + defaults( options.tex2jax, defaultOptions.tex2jax ); + options.mathjax = options.config = null; + + loadScript( url, function() { + + MathJax.Hub.Config( options ); // Typeset followed by an immediate reveal.js layout since // the typesetting process could affect slide height @@ -35,6 +42,16 @@ var RevealMath = window.RevealMath || (function(){ } ); + function defaults( options, defaultOptions ) { + + for ( var i in defaultOptions ) { + if ( !options.hasOwnProperty( i ) ) { + options[i] = defaultOptions[i]; + } + } + + } + function loadScript( url, callback ) { var head = document.querySelector( 'head' ); |