##// END OF EJS Templates
allow the notebook to run without MathJax...
MinRK -
Show More
@@ -219,6 +219,7 b' class NewHandler(AuthenticatedHandler):'
219 base_project_url=u'/', base_kernel_url=u'/',
219 base_project_url=u'/', base_kernel_url=u'/',
220 kill_kernel=False,
220 kill_kernel=False,
221 read_only=False,
221 read_only=False,
222 enable_mathjax=self.application.ipython_app.enable_mathjax,
222 )
223 )
223
224
224
225
@@ -237,6 +238,7 b' class NamedNotebookHandler(AuthenticatedHandler):'
237 base_project_url=u'/', base_kernel_url=u'/',
238 base_project_url=u'/', base_kernel_url=u'/',
238 kill_kernel=False,
239 kill_kernel=False,
239 read_only=self.read_only,
240 read_only=self.read_only,
241 enable_mathjax=self.application.ipython_app.enable_mathjax,
240 )
242 )
241
243
242
244
@@ -128,6 +128,17 b" flags['no-browser']=("
128 {'NotebookApp' : {'open_browser' : False}},
128 {'NotebookApp' : {'open_browser' : False}},
129 "Don't open the notebook in a browser after startup."
129 "Don't open the notebook in a browser after startup."
130 )
130 )
131 flags['no-mathjax']=(
132 {'NotebookApp' : {'enable_mathjax' : False}},
133 """Disable MathJax
134
135 MathJax is the javascript library IPython uses to render math/LaTeX. It is
136 very large, so you may want to disable it if you have a slow internet
137 connection, or for offline use of the notebook.
138
139 When disabled, equations etc. will appear as their untransformed TeX source.
140 """
141 )
131 flags['read-only'] = (
142 flags['read-only'] = (
132 {'NotebookApp' : {'read_only' : True}},
143 {'NotebookApp' : {'read_only' : True}},
133 """Allow read-only access to notebooks.
144 """Allow read-only access to notebooks.
@@ -144,7 +155,7 b" flags['read-only'] = ("
144 # the flags that are specific to the frontend
155 # the flags that are specific to the frontend
145 # these must be scrubbed before being passed to the kernel,
156 # these must be scrubbed before being passed to the kernel,
146 # or it will raise an error on unrecognized flags
157 # or it will raise an error on unrecognized flags
147 notebook_flags = ['no-browser', 'read-only']
158 notebook_flags = ['no-browser', 'no-mathjax', 'read-only']
148
159
149 aliases = dict(ipkernel_aliases)
160 aliases = dict(ipkernel_aliases)
150
161
@@ -230,6 +241,17 b' class NotebookApp(BaseIPythonApplication):'
230 read_only = Bool(False, config=True,
241 read_only = Bool(False, config=True,
231 help="Whether to prevent editing/execution of notebooks."
242 help="Whether to prevent editing/execution of notebooks."
232 )
243 )
244
245 enable_mathjax = Bool(True, config=True,
246 help="""Whether to enable MathJax for typesetting math/TeX
247
248 MathJax is the javascript library IPython uses to render math/LaTeX. It is
249 very large, so you may want to disable it if you have a slow internet
250 connection, or for offline use of the notebook.
251
252 When disabled, equations etc. will appear as their untransformed TeX source.
253 """
254 )
233
255
234 def parse_command_line(self, argv=None):
256 def parse_command_line(self, argv=None):
235 super(NotebookApp, self).parse_command_line(argv)
257 super(NotebookApp, self).parse_command_line(argv)
@@ -415,6 +415,18 b' div.text_cell_render {'
415 font-family: monospace;
415 font-family: monospace;
416 }
416 }
417
417
418 pre.dialog {
419 background-color: #f7f7f7;
420 border: 1px solid #ddd;
421 border-radius: 3px;
422 padding: 0.4em;
423 padding-left: 2em;
424 }
425
426 p.dialog{
427 padding : 0.2em;
428 }
429
418 @media print {
430 @media print {
419 body { overflow: visible !important; }
431 body { overflow: visible !important; }
420 .ui-widget-content { border: 0px; }
432 .ui-widget-content { border: 0px; }
@@ -88,6 +88,13 b' var IPython = (function (IPython) {'
88 // Subclasses must implement create_element.
88 // Subclasses must implement create_element.
89 Cell.prototype.create_element = function () {};
89 Cell.prototype.create_element = function () {};
90
90
91 // typeset with MathJax if MathJax is available
92 Cell.prototype.typeset = function () {
93 if (window.MathJax){
94 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
95 }
96 };
97
91 IPython.Cell = Cell;
98 IPython.Cell = Cell;
92
99
93 return IPython;
100 return IPython;
@@ -520,7 +520,7 b' var IPython = (function (IPython) {'
520 this.element.find('div.output').append(toinsert);
520 this.element.find('div.output').append(toinsert);
521 // If we just output latex, typeset it.
521 // If we just output latex, typeset it.
522 if ((json.latex !== undefined) || (json.html !== undefined)) {
522 if ((json.latex !== undefined) || (json.html !== undefined)) {
523 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
523 this.typeset();
524 };
524 };
525 };
525 };
526
526
@@ -572,7 +572,7 b' var IPython = (function (IPython) {'
572 this.element.find('div.output').append(toinsert);
572 this.element.find('div.output').append(toinsert);
573 // If we just output latex, typeset it.
573 // If we just output latex, typeset it.
574 if ( (json.latex !== undefined) || (json.html !== undefined) ) {
574 if ( (json.latex !== undefined) || (json.html !== undefined) ) {
575 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
575 this.typeset();
576 };
576 };
577 };
577 };
578
578
@@ -12,16 +12,62 b''
12
12
13 $(document).ready(function () {
13 $(document).ready(function () {
14
14
15 MathJax.Hub.Config({
15 if (window.MathJax == undefined){
16 tex2jax: {
16 // MathJax undefined, but expected. Draw warning.
17 inlineMath: [ ['$','$'], ["\\(","\\)"] ],
17 window.MathJax = null;
18 displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
18 var dialog = $('<div></div>').html(
19 },
19 "<p class='dialog'>"+
20 displayAlign: 'left', // Change this to 'center' to center equations.
20 "We were unable to retrieve MathJax. Math/LaTeX rendering will be disabled."+
21 "HTML-CSS": {
21 "</p>"+
22 styles: {'.MathJax_Display': {"margin": 0}}
22 "<p class='dialog'>"+
23 }
23 "With a working internet connection, you can run the following at a Python"+
24 });
24 " or IPython prompt, which will install a local copy of MathJax:"+
25 "</p>"+
26 "<pre class='dialog'>"+
27 ">>> from IPython.external import mathjax; mathjax.install_mathjax()"+
28 "</pre>"+
29 "<p class='dialog'>"+
30 "This will try to install MathJax into the directory where you installed"+
31 " IPython. If you installed IPython to a location that requires"+
32 " administrative privileges to write, you will need to make this call as"+
33 " an administrator."+
34 "</p>"+
35 "<p class='dialog'>"+
36 "On OSX/Linux/Unix, this can be done at the command-line via:"+
37 "</p>"+
38 "<pre class='dialog'>"+
39 "$ sudo python -c 'from IPython.external import mathjax; mathjax.install_mathjax()'"+
40 "</pre>"+
41 "<p class='dialog'>"+
42 "Or you can instruct the notebook server to start without MathJax support, with:"+
43 "<pre class='dialog'>"+
44 "</p>"+
45 "$ ipython notebook --no-mathjax"+
46 "</pre>"+
47 "<p class='dialog'>"+
48 "in which case, equations will not be rendered."+
49 "</p>"
50 ).dialog({
51 title: 'MathJax disabled',
52 width: "70%",
53 modal: true,
54 })
55 }else if (window.MathJax){
56 MathJax.Hub.Config({
57 tex2jax: {
58 inlineMath: [ ['$','$'], ["\\(","\\)"] ],
59 displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
60 },
61 displayAlign: 'left', // Change this to 'center' to center equations.
62 "HTML-CSS": {
63 styles: {'.MathJax_Display': {"margin": 0}}
64 }
65 });
66 }else{
67 // window.MathJax == null
68 // --no-mathjax mode
69 }
70
25 IPython.markdown_converter = new Markdown.Converter();
71 IPython.markdown_converter = new Markdown.Converter();
26 IPython.read_only = $('meta[name=read_only]').attr("content") == 'True';
72 IPython.read_only = $('meta[name=read_only]').attr("content") == 'True';
27
73
@@ -175,7 +175,7 b' var IPython = (function (IPython) {'
175 var text = this.get_source();
175 var text = this.get_source();
176 if (text === "") { text = this.placeholder; }
176 if (text === "") { text = this.placeholder; }
177 this.set_rendered(text);
177 this.set_rendered(text);
178 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
178 this.typeset();
179 this.element.find('div.text_cell_input').hide();
179 this.element.find('div.text_cell_input').hide();
180 this.element.find("div.text_cell_render").show();
180 this.element.find("div.text_cell_render").show();
181 this.rendered = true;
181 this.rendered = true;
@@ -201,7 +201,7 b' var IPython = (function (IPython) {'
201 if (text === "") { text = this.placeholder; }
201 if (text === "") { text = this.placeholder; }
202 var html = IPython.markdown_converter.makeHtml(text);
202 var html = IPython.markdown_converter.makeHtml(text);
203 this.set_rendered(html);
203 this.set_rendered(html);
204 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
204 this.typeset()
205 this.element.find('div.text_cell_input').hide();
205 this.element.find('div.text_cell_input').hide();
206 this.element.find("div.text_cell_render").show();
206 this.element.find("div.text_cell_render").show();
207 var code_snippets = this.element.find("pre > code");
207 var code_snippets = this.element.find("pre > code");
@@ -255,7 +255,7 b' var IPython = (function (IPython) {'
255
255
256 RSTCell.prototype.handle_render = function (data, status, xhr) {
256 RSTCell.prototype.handle_render = function (data, status, xhr) {
257 this.set_rendered(data);
257 this.set_rendered(data);
258 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
258 this.typeset();
259 this.rendered = true;
259 this.rendered = true;
260 };
260 };
261
261
@@ -6,25 +6,24 b''
6
6
7 <title>IPython Notebook</title>
7 <title>IPython Notebook</title>
8
8
9 {% if enable_mathjax %}
9 <!-- <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML" charset="utf-8"></script> -->
10 <!-- <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML" charset="utf-8"></script> -->
10 <script type='text/javascript' src='static/mathjax/MathJax.js?config=TeX-AMS_HTML' charset='utf-8'></script>
11 <script type='text/javascript' src='static/mathjax/MathJax.js?config=TeX-AMS_HTML' charset='utf-8'></script>
11 <script type="text/javascript">
12 <script type="text/javascript">
12 function CheckMathJax(){
13 if (typeof(MathJax) == 'undefined') {
13 var div=document.getElementById("MathJaxFetchingWarning")
14 if(window.MathJax){
15 document.body.removeChild(div)
16 }
17 else{
18 div.style.display = "block";
19 }
20 }
21 if (typeof MathJax == 'undefined') {
22 console.log("No local MathJax, loading from CDN");
14 console.log("No local MathJax, loading from CDN");
23 document.write(unescape("%3Cscript type='text/javascript' src='http://cdn.mathjax.org/mathjax/latest/MathJax.js%3Fconfig=TeX-AMS_HTML' charset='utf-8'%3E%3C/script%3E"));
15 document.write(unescape("%3Cscript type='text/javascript' src='http://cdn.mathjax.org/mathjax/latest/MathJax.js%3Fconfig=TeX-AMS_HTML' charset='utf-8'%3E%3C/script%3E"));
24 }else{
16 }else{
25 console.log("Using local MathJax");
17 console.log("Using local MathJax");
26 }
18 }
27 </script>
19 </script>
20 {% else %}
21 <script type="text/javascript">
22 // MathJax disabled, set as null to distingish from *missing* MathJax,
23 // where it will be undefined, and should prompt a dialog later.
24 window.MathJax = null;
25 </script>
26 {% end %}
28
27
29 <link rel="stylesheet" href="static/jquery/css/themes/aristo/jquery-wijmo.css" type="text/css" />
28 <link rel="stylesheet" href="static/jquery/css/themes/aristo/jquery-wijmo.css" type="text/css" />
30 <link rel="stylesheet" href="static/codemirror/lib/codemirror.css">
29 <link rel="stylesheet" href="static/codemirror/lib/codemirror.css">
@@ -45,7 +44,7 b''
45
44
46 </head>
45 </head>
47
46
48 <body onload='CheckMathJax();'
47 <body
49 data-project={{project}} data-notebook-id={{notebook_id}}
48 data-project={{project}} data-notebook-id={{notebook_id}}
50 data-base-project-url={{base_project_url}} data-base-kernel-url={{base_kernel_url}}
49 data-base-project-url={{base_project_url}} data-base-kernel-url={{base_kernel_url}}
51 >
50 >
@@ -71,29 +70,6 b''
71 <span id="kernel_status">Idle</span>
70 <span id="kernel_status">Idle</span>
72 </div>
71 </div>
73
72
74 <div id="MathJaxFetchingWarning"
75 style="width:80%; margin:auto;padding-top:20%;text-align: justify; display:none">
76 <p style="font-size:26px;">There was an issue trying to fetch MathJax.js
77 from the internet.</p>
78
79 <p style="padding:0.2em"> With a working internet connection, you can run
80 the following at a Python or IPython prompt, which will install a local
81 copy of MathJax:</p>
82
83 <pre style="background-color:lightblue;border:thin silver solid;padding:0.4em">
84 from IPython.external import mathjax; mathjax.install_mathjax()
85 </pre>
86 This will try to install MathJax into the directory where you installed
87 IPython. If you installed IPython to a location that requires
88 administrative privileges to write, you will need to make this call as
89 an administrator. On OSX/Linux/Unix, this can be done at the
90 command-line via:
91 <pre style="background-color:lightblue;border:thin silver solid;padding:0.4em">
92 sudo python -c "from IPython.external import mathjax; mathjax.install_mathjax()"
93 </pre>
94 </p>
95 </div>
96
97 <div id="main_app">
73 <div id="main_app">
98
74
99 <div id="left_panel">
75 <div id="left_panel">
General Comments 0
You need to be logged in to leave comments. Login now