Search code examples
javascriptconfigurationmathjax

Interesting javascript code in configuration options in MathJax


As far as I know the javascript code can be "defined" as file

<script type="text/javascript" src="script.js"></script>

or as inline code

<script type="text/javascript">
....
// some more code
....
</script>

So, how this is done ? Nevertheless this is javascript code !?!

<script type="text/javascript" src="MathJax.js">
   MathJax.Hub.Config({
      extensions: ["tex2jax.js", "mml2jax.js"],
      jax: ["input/Tex", "input/MathML", "output/HTML-CSS"]
   });
</script>

Video configuring MathJax


Solution

  • (Found out from looking at MathJax demos with Chrome's developer tools)

    It's programmatically creating new <script> tags and places them inside the <head> tag, rather like http://requirejs.org/ or http://headjs.com/ does.

    Something along the lines of

    var scr = document.createElement('script');
    scr.setAttribute('src', 'path/to/script.js');
    headDOMnode.appendChild(src); // 'path/to/script.js' starts to load..
    

    happens when MathJax.Hub.Config() executes.

    Edit: head.js and require.js does it with rather a lot more bells and whistles, of course.