##// END OF EJS Templates
First draft of toolbar....
Brian Granger -
Show More
@@ -0,0 +1,82 b''
1 //----------------------------------------------------------------------------
2 // Copyright (C) 2008-2011 The IPython Development Team
3 //
4 // Distributed under the terms of the BSD License. The full license is in
5 // the file COPYING, distributed as part of this software.
6 //----------------------------------------------------------------------------
7
8 //============================================================================
9 // ToolBar
10 //============================================================================
11
12 var IPython = (function (IPython) {
13
14 var ToolBar = function (selector) {
15 this.selector = selector;
16 if (this.selector !== undefined) {
17 this.element = $(selector);
18 this.style();
19 this.bind_events();
20 }
21 };
22
23
24 ToolBar.prototype.style = function () {
25 this.element.addClass('border-box-sizing');
26 this.element.find('#save_b').button({
27 icons : {primary: 'ui-icon-disk'},
28 text : false
29 });
30 this.element.find('#cut_b').button({
31 icons: {primary: 'ui-icon-scissors'},
32 text : false
33 });
34 this.element.find('#copy_b').button({
35 icons: {primary: 'ui-icon-copy'},
36 text : false
37 });
38 this.element.find('#paste_b').button({
39 icons: {primary: 'ui-icon-clipboard'},
40 text : false
41 });
42 this.element.find('#cut_copy_paste').buttonset();
43 this.element.find('#move_up_b').button({
44 icons: {primary: 'ui-icon-arrowthick-1-n'},
45 text : false
46 });
47 this.element.find('#move_down_b').button({
48 icons: {primary: 'ui-icon-arrowthick-1-s'},
49 text : false
50 });
51 this.element.find('#move_up_down').buttonset();
52 this.element.find('#insert_above_b').button({
53 icons: {primary: 'ui-icon-arrowthickstop-1-n'},
54 text : false
55 });
56 this.element.find('#insert_below_b').button({
57 icons: {primary: 'ui-icon-arrowthickstop-1-s'},
58 text : false
59 });
60 this.element.find('#insert_above_below').buttonset();
61 this.element.find('#run_b').button({
62 icons: {primary: 'ui-icon-play'},
63 text : false
64 });
65 this.element.find('#interrupt_b').button({
66 icons: {primary: 'ui-icon-stop'},
67 text : false
68 });
69 this.element.find('#run_int').buttonset();
70 };
71
72
73 ToolBar.prototype.bind_events = function () {
74
75 };
76
77
78 IPython.ToolBar = ToolBar;
79
80 return IPython;
81
82 }(IPython));
@@ -1,383 +1,389 b''
1 /**
1 /**
2 * Primary styles
2 * Primary styles
3 *
3 *
4 * Author: IPython Development Team
4 * Author: IPython Development Team
5 */
5 */
6
6
7
7
8 body {
8 body {
9 background-color: white;
9 background-color: white;
10 /* This makes sure that the body covers the entire window and needs to
10 /* This makes sure that the body covers the entire window and needs to
11 be in a different element than the display: box in wrapper below */
11 be in a different element than the display: box in wrapper below */
12 position: absolute;
12 position: absolute;
13 left: 0px;
13 left: 0px;
14 right: 0px;
14 right: 0px;
15 top: 0px;
15 top: 0px;
16 bottom: 0px;
16 bottom: 0px;
17 overflow: hidden;
17 overflow: hidden;
18 }
18 }
19
19
20 span#save_widget {
20 span#save_widget {
21 padding: 5px;
21 padding: 5px;
22 margin: 0px 0px 0px 300px;
22 margin: 0px 0px 0px 300px;
23 display:inline-block;
23 display:inline-block;
24 }
24 }
25
25
26 span#notebook_name {
26 span#notebook_name {
27 height: 1em;
27 height: 1em;
28 line-height: 1em;
28 line-height: 1em;
29 padding: 3px;
29 padding: 3px;
30 border: none;
30 border: none;
31 font-size: 146.5%;
31 font-size: 146.5%;
32 }
32 }
33
33
34 #menubar {
34 #menubar {
35 /* Initially hidden to prevent FLOUC */
35 /* Initially hidden to prevent FLOUC */
36 display: none;
36 display: none;
37 }
37 }
38
38
39 .ui-menubar-item .ui-button .ui-button-text {
39 .ui-menubar-item .ui-button .ui-button-text {
40 padding: 0.4em 1.0em;
40 padding: 0.4em 1.0em;
41 font-size: 100%;
41 font-size: 100%;
42 }
42 }
43
43
44 .ui-menu {
44 .ui-menu {
45 -moz-box-shadow: 0px 6px 10px -1px #adadad;
45 -moz-box-shadow: 0px 6px 10px -1px #adadad;
46 -webkit-box-shadow: 0px 6px 10px -1px #adadad;
46 -webkit-box-shadow: 0px 6px 10px -1px #adadad;
47 box-shadow: 0px 6px 10px -1px #adadad;
47 box-shadow: 0px 6px 10px -1px #adadad;
48 }
48 }
49
49
50 .ui-menu .ui-menu-item a {
50 .ui-menu .ui-menu-item a {
51 padding: 2px 1.6em;
51 padding: 2px 1.6em;
52 }
52 }
53
53
54 .ui-menu hr {
54 .ui-menu hr {
55 margin: 0.3em 0;
55 margin: 0.3em 0;
56 }
56 }
57
57
58 #toolbar {
59 /* Initially hidden to prevent FLOUC */
60 display: none;
61 padding: 3px 15px;
62 }
63
58 span#quick_help_area {
64 span#quick_help_area {
59 position: static;
65 position: static;
60 padding: 5px 0px;
66 padding: 5px 0px;
61 margin: 0px 0px 0px 0px;
67 margin: 0px 0px 0px 0px;
62 }
68 }
63
69
64 span#kernel_status {
70 span#kernel_status {
65 position: absolute;
71 position: absolute;
66 padding: 8px 5px 5px 5px;
72 padding: 8px 5px 5px 5px;
67 right: 10px;
73 right: 10px;
68 font-weight: bold;
74 font-weight: bold;
69 }
75 }
70
76
71
77
72 .status_idle {
78 .status_idle {
73 color: gray;
79 color: gray;
74 visibility: hidden;
80 visibility: hidden;
75 }
81 }
76
82
77 .status_busy {
83 .status_busy {
78 color: red;
84 color: red;
79 }
85 }
80
86
81 .status_restarting {
87 .status_restarting {
82 color: black;
88 color: black;
83 }
89 }
84
90
85 #kernel_persist {
91 #kernel_persist {
86 float: right;
92 float: right;
87 }
93 }
88
94
89 .help_string {
95 .help_string {
90 float: right;
96 float: right;
91 width: 170px;
97 width: 170px;
92 padding: 0px 5px;
98 padding: 0px 5px;
93 text-align: left;
99 text-align: left;
94 font-size: 85%;
100 font-size: 85%;
95 }
101 }
96
102
97 .help_string_label {
103 .help_string_label {
98 float: right;
104 float: right;
99 font-size: 85%;
105 font-size: 85%;
100 }
106 }
101
107
102 div#notebook_panel {
108 div#notebook_panel {
103 margin: 0px 0px 0px 0px;
109 margin: 0px 0px 0px 0px;
104 padding: 0px;
110 padding: 0px;
105 }
111 }
106
112
107 div#notebook {
113 div#notebook {
108 overflow-y: scroll;
114 overflow-y: scroll;
109 overflow-x: auto;
115 overflow-x: auto;
110 width: 100%;
116 width: 100%;
111 /* This spaces the cell away from the edge of the notebook area */
117 /* This spaces the cell away from the edge of the notebook area */
112 padding: 5px 5px 15px 5px;
118 padding: 5px 5px 15px 5px;
113 margin: 0px
119 margin: 0px
114 background-color: white;
120 background-color: white;
115 }
121 }
116
122
117 div#pager_splitter {
123 div#pager_splitter {
118 height: 8px;
124 height: 8px;
119 }
125 }
120
126
121 div#pager {
127 div#pager {
122 padding: 15px;
128 padding: 15px;
123 overflow: auto;
129 overflow: auto;
124 display: none;
130 display: none;
125 }
131 }
126
132
127 div.cell {
133 div.cell {
128 width: 100%;
134 width: 100%;
129 padding: 5px 5px 5px 0px;
135 padding: 5px 5px 5px 0px;
130 /* This acts as a spacer between cells, that is outside the border */
136 /* This acts as a spacer between cells, that is outside the border */
131 margin: 2px 0px 2px 0px;
137 margin: 2px 0px 2px 0px;
132 }
138 }
133
139
134 div.code_cell {
140 div.code_cell {
135 background-color: white;
141 background-color: white;
136 }
142 }
137 /* any special styling for code cells that are currently running goes here */
143 /* any special styling for code cells that are currently running goes here */
138 div.code_cell.running {
144 div.code_cell.running {
139 }
145 }
140
146
141 div.prompt {
147 div.prompt {
142 /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
148 /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
143 width: 11ex;
149 width: 11ex;
144 /* This 0.4em is tuned to match the padding on the CodeMirror editor. */
150 /* This 0.4em is tuned to match the padding on the CodeMirror editor. */
145 padding: 0.4em;
151 padding: 0.4em;
146 margin: 0px;
152 margin: 0px;
147 font-family: monospace;
153 font-family: monospace;
148 text-align:right;
154 text-align:right;
149 }
155 }
150
156
151 div.input {
157 div.input {
152 page-break-inside: avoid;
158 page-break-inside: avoid;
153 }
159 }
154
160
155 /* input_area and input_prompt must match in top border and margin for alignment */
161 /* input_area and input_prompt must match in top border and margin for alignment */
156 div.input_area {
162 div.input_area {
157 color: black;
163 color: black;
158 border: 1px solid #ddd;
164 border: 1px solid #ddd;
159 border-radius: 3px;
165 border-radius: 3px;
160 background: #f7f7f7;
166 background: #f7f7f7;
161 }
167 }
162
168
163 div.input_prompt {
169 div.input_prompt {
164 color: navy;
170 color: navy;
165 border-top: 1px solid transparent;
171 border-top: 1px solid transparent;
166 }
172 }
167
173
168 div.output {
174 div.output {
169 /* This is a spacer between the input and output of each cell */
175 /* This is a spacer between the input and output of each cell */
170 margin-top: 5px;
176 margin-top: 5px;
171 }
177 }
172
178
173 div.output_prompt {
179 div.output_prompt {
174 color: darkred;
180 color: darkred;
175 }
181 }
176
182
177 /* This class is the outer container of all output sections. */
183 /* This class is the outer container of all output sections. */
178 div.output_area {
184 div.output_area {
179 padding: 0px;
185 padding: 0px;
180 page-break-inside: avoid;
186 page-break-inside: avoid;
181 }
187 }
182
188
183 /* This class is for the output subarea inside the output_area and after
189 /* This class is for the output subarea inside the output_area and after
184 the prompt div. */
190 the prompt div. */
185 div.output_subarea {
191 div.output_subarea {
186 padding: 0.4em 6.1em 0.4em 0.4em;
192 padding: 0.4em 6.1em 0.4em 0.4em;
187 }
193 }
188
194
189 /* The rest of the output_* classes are for special styling of the different
195 /* The rest of the output_* classes are for special styling of the different
190 output types */
196 output types */
191
197
192 /* all text output has this class: */
198 /* all text output has this class: */
193 div.output_text {
199 div.output_text {
194 text-align: left;
200 text-align: left;
195 color: black;
201 color: black;
196 font-family: monospace;
202 font-family: monospace;
197 }
203 }
198
204
199 /* stdout/stderr are 'text' as well as 'stream', but pyout/pyerr are *not* streams */
205 /* stdout/stderr are 'text' as well as 'stream', but pyout/pyerr are *not* streams */
200 div.output_stream {
206 div.output_stream {
201 padding-top: 0.0em;
207 padding-top: 0.0em;
202 padding-bottom: 0.0em;
208 padding-bottom: 0.0em;
203 }
209 }
204 div.output_stdout {
210 div.output_stdout {
205 }
211 }
206 div.output_stderr {
212 div.output_stderr {
207 background: #fdd; /* very light red background for stderr */
213 background: #fdd; /* very light red background for stderr */
208 }
214 }
209
215
210 div.output_latex {
216 div.output_latex {
211 text-align: left;
217 text-align: left;
212 color: black;
218 color: black;
213 }
219 }
214
220
215 div.output_html {
221 div.output_html {
216 }
222 }
217
223
218 div.output_png {
224 div.output_png {
219 }
225 }
220
226
221 div.output_jpeg {
227 div.output_jpeg {
222 }
228 }
223
229
224 div.text_cell {
230 div.text_cell {
225 background-color: white;
231 background-color: white;
226 padding: 5px 5px 5px 5px;
232 padding: 5px 5px 5px 5px;
227 }
233 }
228
234
229 div.text_cell_input {
235 div.text_cell_input {
230 color: black;
236 color: black;
231 border: 1px solid #ddd;
237 border: 1px solid #ddd;
232 border-radius: 3px;
238 border-radius: 3px;
233 background: #f7f7f7;
239 background: #f7f7f7;
234 }
240 }
235
241
236 div.text_cell_render {
242 div.text_cell_render {
237 font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
243 font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
238 outline: none;
244 outline: none;
239 resize: none;
245 resize: none;
240 width: inherit;
246 width: inherit;
241 border-style: none;
247 border-style: none;
242 padding: 5px;
248 padding: 5px;
243 color: black;
249 color: black;
244 }
250 }
245
251
246 .CodeMirror {
252 .CodeMirror {
247 line-height: 1.231; /* Changed from 1em to our global default */
253 line-height: 1.231; /* Changed from 1em to our global default */
248 }
254 }
249
255
250 .CodeMirror-scroll {
256 .CodeMirror-scroll {
251 height: auto; /* Changed to auto to autogrow */
257 height: auto; /* Changed to auto to autogrow */
252 /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
258 /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
253 /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
259 /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
254 overflow-y: hidden;
260 overflow-y: hidden;
255 overflow-x: auto; /* Changed from auto to remove scrollbar */
261 overflow-x: auto; /* Changed from auto to remove scrollbar */
256 }
262 }
257
263
258 /* CSS font colors for translated ANSI colors. */
264 /* CSS font colors for translated ANSI colors. */
259
265
260
266
261 .ansiblack {color: black;}
267 .ansiblack {color: black;}
262 .ansired {color: darkred;}
268 .ansired {color: darkred;}
263 .ansigreen {color: darkgreen;}
269 .ansigreen {color: darkgreen;}
264 .ansiyellow {color: brown;}
270 .ansiyellow {color: brown;}
265 .ansiblue {color: darkblue;}
271 .ansiblue {color: darkblue;}
266 .ansipurple {color: darkviolet;}
272 .ansipurple {color: darkviolet;}
267 .ansicyan {color: steelblue;}
273 .ansicyan {color: steelblue;}
268 .ansigrey {color: grey;}
274 .ansigrey {color: grey;}
269 .ansibold {font-weight: bold;}
275 .ansibold {font-weight: bold;}
270
276
271 .completions , .tooltip {
277 .completions , .tooltip {
272 position: absolute;
278 position: absolute;
273 z-index: 10;
279 z-index: 10;
274 overflow: auto;
280 overflow: auto;
275 border: 1px solid black;
281 border: 1px solid black;
276 }
282 }
277
283
278 .completions select {
284 .completions select {
279 background: white;
285 background: white;
280 outline: none;
286 outline: none;
281 border: none;
287 border: none;
282 padding: 0px;
288 padding: 0px;
283 margin: 0px;
289 margin: 0px;
284 font-family: monospace;
290 font-family: monospace;
285 }
291 }
286
292
287 @-moz-keyframes fadeIn {
293 @-moz-keyframes fadeIn {
288 from {opacity:0;}
294 from {opacity:0;}
289 to {opacity:1;}
295 to {opacity:1;}
290 }
296 }
291
297
292 @-webkit-keyframes fadeIn {
298 @-webkit-keyframes fadeIn {
293 from {opacity:0;}
299 from {opacity:0;}
294 to {opacity:1;}
300 to {opacity:1;}
295 }
301 }
296
302
297 @keyframes fadeIn {
303 @keyframes fadeIn {
298 from {opacity:0;}
304 from {opacity:0;}
299 to {opacity:1;}
305 to {opacity:1;}
300 }
306 }
301
307
302 /*"close" "expand" and "Open in pager button" of
308 /*"close" "expand" and "Open in pager button" of
303 /* the tooltip*/
309 /* the tooltip*/
304 .tooltip a {
310 .tooltip a {
305 float:right;
311 float:right;
306 }
312 }
307
313
308 /*properties of tooltip after "expand"*/
314 /*properties of tooltip after "expand"*/
309 .bigtooltip {
315 .bigtooltip {
310 height:30%;
316 height:30%;
311 }
317 }
312
318
313 /*properties of tooltip before "expand"*/
319 /*properties of tooltip before "expand"*/
314 .smalltooltip {
320 .smalltooltip {
315 text-overflow: ellipsis;
321 text-overflow: ellipsis;
316 overflow: hidden;
322 overflow: hidden;
317 height:15%;
323 height:15%;
318 }
324 }
319
325
320 .tooltip {
326 .tooltip {
321 /*transition when "expand"ing tooltip */
327 /*transition when "expand"ing tooltip */
322 -webkit-transition-property: height;
328 -webkit-transition-property: height;
323 -webkit-transition-duration: 1s;
329 -webkit-transition-duration: 1s;
324 -moz-transition-property: height;
330 -moz-transition-property: height;
325 -moz-transition-duration: 1s;
331 -moz-transition-duration: 1s;
326 transition-property: height;
332 transition-property: height;
327 transition-duration: 1s;
333 transition-duration: 1s;
328 max-width:700px;
334 max-width:700px;
329 border-radius: 0px 10px 10px 10px;
335 border-radius: 0px 10px 10px 10px;
330 box-shadow: 3px 3px 5px #999;
336 box-shadow: 3px 3px 5px #999;
331 /*fade-in animation when inserted*/
337 /*fade-in animation when inserted*/
332 -webkit-animation: fadeIn 200ms;
338 -webkit-animation: fadeIn 200ms;
333 -moz-animation: fadeIn 200ms;
339 -moz-animation: fadeIn 200ms;
334 animation: fadeIn 200ms;
340 animation: fadeIn 200ms;
335 vertical-align: middle;
341 vertical-align: middle;
336 background: #FDFDD8;
342 background: #FDFDD8;
337 outline: none;
343 outline: none;
338 padding: 3px;
344 padding: 3px;
339 margin: 0px;
345 margin: 0px;
340 font-family: monospace;
346 font-family: monospace;
341 min-height:50px;
347 min-height:50px;
342 }
348 }
343
349
344 /*fixed part of the completion*/
350 /*fixed part of the completion*/
345 .completions p b {
351 .completions p b {
346 font-weight:bold;
352 font-weight:bold;
347 }
353 }
348
354
349 .completions p {
355 .completions p {
350 background: #DDF;
356 background: #DDF;
351 /*outline: none;
357 /*outline: none;
352 padding: 0px;*/
358 padding: 0px;*/
353 border-bottom: black solid 1px;
359 border-bottom: black solid 1px;
354 padding: 1px;
360 padding: 1px;
355 font-family: monospace;
361 font-family: monospace;
356 }
362 }
357
363
358 pre.dialog {
364 pre.dialog {
359 background-color: #f7f7f7;
365 background-color: #f7f7f7;
360 border: 1px solid #ddd;
366 border: 1px solid #ddd;
361 border-radius: 3px;
367 border-radius: 3px;
362 padding: 0.4em;
368 padding: 0.4em;
363 padding-left: 2em;
369 padding-left: 2em;
364 }
370 }
365
371
366 p.dialog {
372 p.dialog {
367 padding : 0.2em;
373 padding : 0.2em;
368 }
374 }
369
375
370 .shortcut_key {
376 .shortcut_key {
371 display: inline-block;
377 display: inline-block;
372 width: 15ex;
378 width: 15ex;
373 text-align: right;
379 text-align: right;
374 font-family: monospace;
380 font-family: monospace;
375 }
381 }
376
382
377 .shortcut_descr {
383 .shortcut_descr {
378 }
384 }
379
385
380 /* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
386 /* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
381 to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
387 to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
382 */
388 */
383 pre, code, kbd, samp { white-space: pre-wrap; }
389 pre, code, kbd, samp { white-space: pre-wrap; }
@@ -1,48 +1,49 b''
1 //----------------------------------------------------------------------------
1 //----------------------------------------------------------------------------
2 // Copyright (C) 2008-2011 The IPython Development Team
2 // Copyright (C) 2008-2011 The IPython Development Team
3 //
3 //
4 // Distributed under the terms of the BSD License. The full license is in
4 // Distributed under the terms of the BSD License. The full license is in
5 // the file COPYING, distributed as part of this software.
5 // the file COPYING, distributed as part of this software.
6 //----------------------------------------------------------------------------
6 //----------------------------------------------------------------------------
7
7
8 //============================================================================
8 //============================================================================
9 // Layout
9 // Layout
10 //============================================================================
10 //============================================================================
11
11
12 var IPython = (function (IPython) {
12 var IPython = (function (IPython) {
13
13
14 var LayoutManager = function () {
14 var LayoutManager = function () {
15 this.bind_events();
15 this.bind_events();
16 };
16 };
17
17
18
18
19 LayoutManager.prototype.bind_events = function () {
19 LayoutManager.prototype.bind_events = function () {
20 $(window).resize($.proxy(this.do_resize,this));
20 $(window).resize($.proxy(this.do_resize,this));
21 };
21 };
22
22
23
23
24 LayoutManager.prototype.do_resize = function () {
24 LayoutManager.prototype.do_resize = function () {
25 var win = $(window);
25 var win = $(window);
26 var w = win.width();
26 var w = win.width();
27 var h = win.height();
27 var h = win.height();
28 var header_height = $('div#header').outerHeight(true);
28 var header_height = $('div#header').outerHeight(true);
29 var menubar_height = $('div#menubar').outerHeight(true);
29 var menubar_height = $('div#menubar').outerHeight(true);
30 var app_height = h-header_height-menubar_height-2; // content height
30 var toolbar_height = $('div#toolbar').outerHeight(true);
31 var app_height = h-header_height-menubar_height-toolbar_height-2; // content height
31
32
32 $('div#main_app').height(app_height + 2); // content+padding+border height
33 $('div#main_app').height(app_height + 2); // content+padding+border height
33
34
34 var pager_height = IPython.pager.percentage_height*app_height;
35 var pager_height = IPython.pager.percentage_height*app_height;
35 var pager_splitter_height = $('div#pager_splitter').outerHeight(true);
36 var pager_splitter_height = $('div#pager_splitter').outerHeight(true);
36 $('div#pager').height(pager_height);
37 $('div#pager').height(pager_height);
37 if (IPython.pager.expanded) {
38 if (IPython.pager.expanded) {
38 $('div#notebook').height(app_height-pager_height-pager_splitter_height);
39 $('div#notebook').height(app_height-pager_height-pager_splitter_height);
39 } else {
40 } else {
40 $('div#notebook').height(app_height-pager_splitter_height);
41 $('div#notebook').height(app_height-pager_splitter_height);
41 }
42 }
42 };
43 };
43
44
44 IPython.LayoutManager = LayoutManager;
45 IPython.LayoutManager = LayoutManager;
45
46
46 return IPython;
47 return IPython;
47
48
48 }(IPython));
49 }(IPython));
@@ -1,115 +1,117 b''
1 //----------------------------------------------------------------------------
1 //----------------------------------------------------------------------------
2 // Copyright (C) 2008-2011 The IPython Development Team
2 // Copyright (C) 2008-2011 The IPython Development Team
3 //
3 //
4 // Distributed under the terms of the BSD License. The full license is in
4 // Distributed under the terms of the BSD License. The full license is in
5 // the file COPYING, distributed as part of this software.
5 // the file COPYING, distributed as part of this software.
6 //----------------------------------------------------------------------------
6 //----------------------------------------------------------------------------
7
7
8 //============================================================================
8 //============================================================================
9 // On document ready
9 // On document ready
10 //============================================================================
10 //============================================================================
11
11
12
12
13 $(document).ready(function () {
13 $(document).ready(function () {
14 if (window.MathJax){
14 if (window.MathJax){
15 // MathJax loaded
15 // MathJax loaded
16 MathJax.Hub.Config({
16 MathJax.Hub.Config({
17 tex2jax: {
17 tex2jax: {
18 inlineMath: [ ['$','$'], ["\\(","\\)"] ],
18 inlineMath: [ ['$','$'], ["\\(","\\)"] ],
19 displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
19 displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
20 },
20 },
21 displayAlign: 'left', // Change this to 'center' to center equations.
21 displayAlign: 'left', // Change this to 'center' to center equations.
22 "HTML-CSS": {
22 "HTML-CSS": {
23 styles: {'.MathJax_Display': {"margin": 0}}
23 styles: {'.MathJax_Display': {"margin": 0}}
24 }
24 }
25 });
25 });
26 }else if (window.mathjax_url != ""){
26 }else if (window.mathjax_url != ""){
27 // Don't have MathJax, but should. Show dialog.
27 // Don't have MathJax, but should. Show dialog.
28 var dialog = $('<div></div>')
28 var dialog = $('<div></div>')
29 .append(
29 .append(
30 $("<p></p>").addClass('dialog').html(
30 $("<p></p>").addClass('dialog').html(
31 "Math/LaTeX rendering will be disabled."
31 "Math/LaTeX rendering will be disabled."
32 )
32 )
33 ).append(
33 ).append(
34 $("<p></p>").addClass('dialog').html(
34 $("<p></p>").addClass('dialog').html(
35 "If you have administrative access to the notebook server and" +
35 "If you have administrative access to the notebook server and" +
36 " a working internet connection, you can install a local copy" +
36 " a working internet connection, you can install a local copy" +
37 " of MathJax for offline use with the following command on the server" +
37 " of MathJax for offline use with the following command on the server" +
38 " at a Python or IPython prompt:"
38 " at a Python or IPython prompt:"
39 )
39 )
40 ).append(
40 ).append(
41 $("<pre></pre>").addClass('dialog').html(
41 $("<pre></pre>").addClass('dialog').html(
42 ">>> from IPython.external import mathjax; mathjax.install_mathjax()"
42 ">>> from IPython.external import mathjax; mathjax.install_mathjax()"
43 )
43 )
44 ).append(
44 ).append(
45 $("<p></p>").addClass('dialog').html(
45 $("<p></p>").addClass('dialog').html(
46 "This will try to install MathJax into the IPython source directory."
46 "This will try to install MathJax into the IPython source directory."
47 )
47 )
48 ).append(
48 ).append(
49 $("<p></p>").addClass('dialog').html(
49 $("<p></p>").addClass('dialog').html(
50 "If IPython is installed to a location that requires" +
50 "If IPython is installed to a location that requires" +
51 " administrative privileges to write, you will need to make this call as" +
51 " administrative privileges to write, you will need to make this call as" +
52 " an administrator, via 'sudo'."
52 " an administrator, via 'sudo'."
53 )
53 )
54 ).append(
54 ).append(
55 $("<p></p>").addClass('dialog').html(
55 $("<p></p>").addClass('dialog').html(
56 "When you start the notebook server, you can instruct it to disable MathJax support altogether:"
56 "When you start the notebook server, you can instruct it to disable MathJax support altogether:"
57 )
57 )
58 ).append(
58 ).append(
59 $("<pre></pre>").addClass('dialog').html(
59 $("<pre></pre>").addClass('dialog').html(
60 "$ ipython notebook --no-mathjax"
60 "$ ipython notebook --no-mathjax"
61 )
61 )
62 ).append(
62 ).append(
63 $("<p></p>").addClass('dialog').html(
63 $("<p></p>").addClass('dialog').html(
64 "which will prevent this dialog from appearing."
64 "which will prevent this dialog from appearing."
65 )
65 )
66 ).dialog({
66 ).dialog({
67 title: "Failed to retrieve MathJax from '" + window.mathjax_url + "'",
67 title: "Failed to retrieve MathJax from '" + window.mathjax_url + "'",
68 width: "70%",
68 width: "70%",
69 modal: true,
69 modal: true,
70 })
70 })
71 }else{
71 }else{
72 // No MathJax, but none expected. No dialog.
72 // No MathJax, but none expected. No dialog.
73 }
73 }
74
74
75
75
76 IPython.markdown_converter = new Markdown.Converter();
76 IPython.markdown_converter = new Markdown.Converter();
77 IPython.read_only = $('meta[name=read_only]').attr("content") == 'True';
77 IPython.read_only = $('meta[name=read_only]').attr("content") == 'True';
78
78
79 $('div#header').addClass('border-box-sizing');
79 $('div#header').addClass('border-box-sizing');
80 $('div#main_app').addClass('border-box-sizing ui-widget ui-widget-content');
80 $('div#main_app').addClass('border-box-sizing ui-widget ui-widget-content');
81 $('div#notebook_panel').addClass('border-box-sizing ui-widget');
81 $('div#notebook_panel').addClass('border-box-sizing ui-widget');
82
82
83 IPython.layout_manager = new IPython.LayoutManager();
83 IPython.layout_manager = new IPython.LayoutManager();
84 IPython.pager = new IPython.Pager('div#pager', 'div#pager_splitter');
84 IPython.pager = new IPython.Pager('div#pager', 'div#pager_splitter');
85 IPython.save_widget = new IPython.SaveWidget('span#save_widget');
85 IPython.save_widget = new IPython.SaveWidget('span#save_widget');
86 IPython.quick_help = new IPython.QuickHelp('span#quick_help_area');
86 IPython.quick_help = new IPython.QuickHelp('span#quick_help_area');
87 IPython.login_widget = new IPython.LoginWidget('span#login_widget');
87 IPython.login_widget = new IPython.LoginWidget('span#login_widget');
88 IPython.notebook = new IPython.Notebook('div#notebook');
88 IPython.notebook = new IPython.Notebook('div#notebook');
89 IPython.kernel_status_widget = new IPython.KernelStatusWidget('#kernel_status');
89 IPython.kernel_status_widget = new IPython.KernelStatusWidget('#kernel_status');
90 IPython.menubar = new IPython.MenuBar('#menubar')
90 IPython.menubar = new IPython.MenuBar('#menubar')
91 IPython.toolbar = new IPython.ToolBar('#toolbar')
91 IPython.kernel_status_widget.status_idle();
92 IPython.kernel_status_widget.status_idle();
92
93
93 IPython.layout_manager.do_resize();
94 IPython.layout_manager.do_resize();
94
95
95 // These have display: none in the css file and are made visible here to prevent FLOUC.
96 // These have display: none in the css file and are made visible here to prevent FLOUC.
96 $('div#header').css('display','block');
97 $('div#header').css('display','block');
97
98
98 if(IPython.read_only){
99 if(IPython.read_only){
99 // hide various elements from read-only view
100 // hide various elements from read-only view
100 $('div#pager').remove();
101 $('div#pager').remove();
101 $('div#pager_splitter').remove();
102 $('div#pager_splitter').remove();
102 $('span#login_widget').removeClass('hidden');
103 $('span#login_widget').removeClass('hidden');
103
104
104 // set the notebook name field as not modifiable
105 // set the notebook name field as not modifiable
105 $('#notebook_name').attr('disabled','disabled')
106 $('#notebook_name').attr('disabled','disabled')
106 }
107 }
107
108
108 $('div#menubar').css('display','block');
109 $('div#menubar').css('display','block');
110 $('div#toolbar').css('display','block');
109 $('div#main_app').css('display','block');
111 $('div#main_app').css('display','block');
110
112
111 IPython.layout_manager.do_resize();
113 IPython.layout_manager.do_resize();
112 IPython.notebook.load_notebook();
114 IPython.notebook.load_notebook();
113
115
114 });
116 });
115
117
@@ -1,189 +1,221 b''
1 <!DOCTYPE HTML>
1 <!DOCTYPE HTML>
2 <html>
2 <html>
3
3
4 <head>
4 <head>
5 <meta charset="utf-8">
5 <meta charset="utf-8">
6
6
7 <title>IPython Notebook</title>
7 <title>IPython Notebook</title>
8
8
9 {% if mathjax_url %}
9 {% if mathjax_url %}
10 <script type="text/javascript" src="{{mathjax_url}}?config=TeX-AMS_HTML" charset="utf-8"></script>
10 <script type="text/javascript" src="{{mathjax_url}}?config=TeX-AMS_HTML" charset="utf-8"></script>
11 {% end %}
11 {% end %}
12 <script type="text/javascript">
12 <script type="text/javascript">
13 // MathJax disabled, set as null to distingish from *missing* MathJax,
13 // MathJax disabled, set as null to distingish from *missing* MathJax,
14 // where it will be undefined, and should prompt a dialog later.
14 // where it will be undefined, and should prompt a dialog later.
15 window.mathjax_url = "{{mathjax_url}}";
15 window.mathjax_url = "{{mathjax_url}}";
16 </script>
16 </script>
17
17
18 <link rel="stylesheet" href="/static/jquery/css/themes/base/jquery-ui.min.css" type="text/css" />
18 <link rel="stylesheet" href="/static/jquery/css/themes/base/jquery-ui.min.css" type="text/css" />
19 <link rel="stylesheet" href="/static/codemirror/lib/codemirror.css">
19 <link rel="stylesheet" href="/static/codemirror/lib/codemirror.css">
20 <link rel="stylesheet" href="/static/codemirror/theme/ipython.css">
20 <link rel="stylesheet" href="/static/codemirror/theme/ipython.css">
21
21
22 <link rel="stylesheet" href="/static/prettify/prettify.css"/>
22 <link rel="stylesheet" href="/static/prettify/prettify.css"/>
23
23
24 <link rel="stylesheet" href="/static/css/boilerplate.css" type="text/css" />
24 <link rel="stylesheet" href="/static/css/boilerplate.css" type="text/css" />
25 <link rel="stylesheet" href="/static/css/layout.css" type="text/css" />
25 <link rel="stylesheet" href="/static/css/layout.css" type="text/css" />
26 <link rel="stylesheet" href="/static/css/base.css" type="text/css" />
26 <link rel="stylesheet" href="/static/css/base.css" type="text/css" />
27 <link rel="stylesheet" href="/static/css/notebook.css" type="text/css" />
27 <link rel="stylesheet" href="/static/css/notebook.css" type="text/css" />
28 <link rel="stylesheet" href="/static/css/renderedhtml.css" type="text/css" />
28 <link rel="stylesheet" href="/static/css/renderedhtml.css" type="text/css" />
29
29
30 {% comment In the notebook, the read-only flag is used to determine %}
30 {% comment In the notebook, the read-only flag is used to determine %}
31 {% comment whether to hide the side panels and switch off input %}
31 {% comment whether to hide the side panels and switch off input %}
32 <meta name="read_only" content="{{read_only and not logged_in}}"/>
32 <meta name="read_only" content="{{read_only and not logged_in}}"/>
33
33
34 </head>
34 </head>
35
35
36 <body
36 <body
37 data-project={{project}} data-notebook-id={{notebook_id}}
37 data-project={{project}} data-notebook-id={{notebook_id}}
38 data-base-project-url={{base_project_url}} data-base-kernel-url={{base_kernel_url}}
38 data-base-project-url={{base_project_url}} data-base-kernel-url={{base_kernel_url}}
39 >
39 >
40
40
41 <div id="header">
41 <div id="header">
42 <span id="ipython_notebook"><h1><a href='..' alt='dashboard'><img src='/static/ipynblogo.png' alt='IPython Notebook'/></a></h1></span>
42 <span id="ipython_notebook"><h1><a href='..' alt='dashboard'><img src='/static/ipynblogo.png' alt='IPython Notebook'/></a></h1></span>
43 <span id="save_widget">
43 <span id="save_widget">
44 <span id="notebook_name"></span>
44 <span id="notebook_name"></span>
45 <span id="save_status"></span>
45 <span id="save_status"></span>
46 </span>
46 </span>
47
47
48 <span id="login_widget">
48 <span id="login_widget">
49 {% comment This is a temporary workaround to hide the logout button %}
49 {% comment This is a temporary workaround to hide the logout button %}
50 {% comment when appropriate until notebook.html is templated %}
50 {% comment when appropriate until notebook.html is templated %}
51 {% if logged_in %}
51 {% if logged_in %}
52 <button id="logout">Logout</button>
52 <button id="logout">Logout</button>
53 {% elif not logged_in and login_available %}
53 {% elif not logged_in and login_available %}
54 <button id="login">Login</button>
54 <button id="login">Login</button>
55 {% end %}
55 {% end %}
56 </span>
56 </span>
57
57
58 <span id="kernel_status">Idle</span>
58 <span id="kernel_status">Idle</span>
59 </div>
59 </div>
60
60
61 <div id="menubar">
61 <div id="menubar">
62 <ul id="menus">
62 <ul id="menus">
63 <li><a href="#">File</a>
63 <li><a href="#">File</a>
64 <ul>
64 <ul>
65 <li id="new_notebook"><a href="#">New</a></li>
65 <li id="new_notebook"><a href="#">New</a></li>
66 <li id="open_notebook"><a href="#">Open...</a></li>
66 <li id="open_notebook"><a href="#">Open...</a></li>
67 <hr/>
67 <hr/>
68 <li id="copy_notebook"><a href="#">Make a Copy...</a></li>
68 <li id="copy_notebook"><a href="#">Make a Copy...</a></li>
69 <li id="rename_notebook"><a href="#">Rename...</a></li>
69 <li id="rename_notebook"><a href="#">Rename...</a></li>
70 <li id="save_notebook"><a href="#">Save</a></li>
70 <li id="save_notebook"><a href="#">Save</a></li>
71 <hr/>
71 <hr/>
72 <li><a href="#">Download as</a>
72 <li><a href="#">Download as</a>
73 <ul>
73 <ul>
74 <li id="download_ipynb"><a href="#">IPython (.ipynb)</a></li>
74 <li id="download_ipynb"><a href="#">IPython (.ipynb)</a></li>
75 <li id="download_py"><a href="#">Python (.py)</a></li>
75 <li id="download_py"><a href="#">Python (.py)</a></li>
76 </ul>
76 </ul>
77 </li>
77 </li>
78 <hr/>
78 <hr/>
79 <li id="print_notebook"><a href="/{{notebook_id}}/print" target="_blank">Print View</a></li>
79 <li id="print_notebook"><a href="/{{notebook_id}}/print" target="_blank">Print View</a></li>
80 </ul>
80 </ul>
81 </li>
81 </li>
82 <li><a href="#">Edit</a>
82 <li><a href="#">Edit</a>
83 <ul>
83 <ul>
84 <li id="cut_cell"><a href="#">Cut</a></li>
84 <li id="cut_cell"><a href="#">Cut</a></li>
85 <li id="copy_cell"><a href="#">Copy</a></li>
85 <li id="copy_cell"><a href="#">Copy</a></li>
86 <li id="paste_cell" class="ui-state-disabled"><a href="#">Paste</a></li>
86 <li id="paste_cell" class="ui-state-disabled"><a href="#">Paste</a></li>
87 <li id="paste_cell_above" class="ui-state-disabled"><a href="#">Paste Above</a></li>
87 <li id="paste_cell_above" class="ui-state-disabled"><a href="#">Paste Above</a></li>
88 <li id="paste_cell_below" class="ui-state-disabled"><a href="#">Paste Below</a></li>
88 <li id="paste_cell_below" class="ui-state-disabled"><a href="#">Paste Below</a></li>
89 <li id="delete_cell"><a href="#">Delete</a></li>
89 <li id="delete_cell"><a href="#">Delete</a></li>
90 <hr/>
90 <hr/>
91 <li id="split_cell"><a href="#">Split</a></li>
91 <li id="split_cell"><a href="#">Split</a></li>
92 <li id="merge_cell_above"><a href="#">Merge Above</a></li>
92 <li id="merge_cell_above"><a href="#">Merge Above</a></li>
93 <li id="merge_cell_below"><a href="#">Merge Below</a></li>
93 <li id="merge_cell_below"><a href="#">Merge Below</a></li>
94 <hr/>
94 <hr/>
95 <li id="move_cell_up"><a href="#">Move Up</a></li>
95 <li id="move_cell_up"><a href="#">Move Up</a></li>
96 <li id="move_cell_down"><a href="#">Move Down</a></li>
96 <li id="move_cell_down"><a href="#">Move Down</a></li>
97 <hr/>
97 <hr/>
98 <li id="select_previous"><a href="#">Select Previous</a></li>
98 <li id="select_previous"><a href="#">Select Previous</a></li>
99 <li id="select_next"><a href="#">Select Next</a></li>
99 <li id="select_next"><a href="#">Select Next</a></li>
100 </ul>
100 </ul>
101 </li>
101 </li>
102 <li><a href="#">Insert</a>
102 <li><a href="#">Insert</a>
103 <ul>
103 <ul>
104 <li id="insert_cell_above"><a href="#">Insert Cell Above</a></li>
104 <li id="insert_cell_above"><a href="#">Insert Cell Above</a></li>
105 <li id="insert_cell_below"><a href="#">Insert Cell Below</a></li>
105 <li id="insert_cell_below"><a href="#">Insert Cell Below</a></li>
106 </ul>
106 </ul>
107 </li>
107 </li>
108 <li><a href="#">Cell</a>
108 <li><a href="#">Cell</a>
109 <ul>
109 <ul>
110 <li id="run_cell"><a href="#">Run</a></li>
110 <li id="run_cell"><a href="#">Run</a></li>
111 <li id="run_cell_in_place"><a href="#">Run in Place</a></li>
111 <li id="run_cell_in_place"><a href="#">Run in Place</a></li>
112 <li id="run_all_cells"><a href="#">Run All</a></li>
112 <li id="run_all_cells"><a href="#">Run All</a></li>
113 <hr/>
113 <hr/>
114 <li id="to_code"><a href="#">Code Cell</a></li>
114 <li id="to_code"><a href="#">Code Cell</a></li>
115 <li id="to_markdown"><a href="#">Markdown Cell</a></li>
115 <li id="to_markdown"><a href="#">Markdown Cell</a></li>
116 <hr/>
116 <hr/>
117 <li id="toggle_output"><a href="#">Toggle Output</a></li>
117 <li id="toggle_output"><a href="#">Toggle Output</a></li>
118 <li id="clear_all_output"><a href="#">Clear All Output</a></li>
118 <li id="clear_all_output"><a href="#">Clear All Output</a></li>
119 </ul>
119 </ul>
120 </li>
120 </li>
121 <li><a href="#">Kernel</a>
121 <li><a href="#">Kernel</a>
122 <ul>
122 <ul>
123 <li id="int_kernel"><a href="#">Interrupt</a></li>
123 <li id="int_kernel"><a href="#">Interrupt</a></li>
124 <li id="restart_kernel"><a href="#">Restart</a></li>
124 <li id="restart_kernel"><a href="#">Restart</a></li>
125 </ul>
125 </ul>
126 </li>
126 </li>
127 <li><a href="#">Help</a>
127 <li><a href="#">Help</a>
128 <ul>
128 <ul>
129 <li><a href="http://ipython.org/documentation.html" target="_blank">IPython Help</a></li>
129 <li><a href="http://ipython.org/documentation.html" target="_blank">IPython Help</a></li>
130 <li><a href="http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html" target="_blank">Notebook Help</a></li>
130 <li><a href="http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html" target="_blank">Notebook Help</a></li>
131 <li id="keyboard_shortcuts"><a href="#">Keyboard Shortcuts</a></li>
131 <li id="keyboard_shortcuts"><a href="#">Keyboard Shortcuts</a></li>
132 <hr/>
132 <hr/>
133 <li><a href="http://docs.python.org" target="_blank">Python</a></li>
133 <li><a href="http://docs.python.org" target="_blank">Python</a></li>
134 <li><a href="http://docs.scipy.org/doc/numpy/reference/" target="_blank">NumPy</a></li>
134 <li><a href="http://docs.scipy.org/doc/numpy/reference/" target="_blank">NumPy</a></li>
135 <li><a href="http://docs.scipy.org/doc/scipy/reference/" target="_blank">SciPy</a></li>
135 <li><a href="http://docs.scipy.org/doc/scipy/reference/" target="_blank">SciPy</a></li>
136 <li><a href="http://docs.sympy.org/dev/index.html" target="_blank">SymPy</a></li>
136 <li><a href="http://docs.sympy.org/dev/index.html" target="_blank">SymPy</a></li>
137 <li><a href="http://matplotlib.sourceforge.net/" target="_blank">Matplotlib</a></li>
137 <li><a href="http://matplotlib.sourceforge.net/" target="_blank">Matplotlib</a></li>
138 </ul>
138 </ul>
139 </li>
139 </li>
140 </ul>
140 </ul>
141
141
142 </div>
142 </div>
143
143
144 <div id="toolbar">
145
146 <span>
147 <button id="save_b">Save</button>
148 </span>
149 <span id="cut_copy_paste">
150 <button id="cut_b" title="Cut">Cut</button>
151 <button id="copy_b" title="Copy">Copy</button>
152 <button id="paste_b" title="Paste">Paste</button>
153 </span>
154 <span id="move_up_down">
155 <button id="move_up_b" title="Move Up">Move Up</button>
156 <button id="move_down_b" title="Move Down">Move Down</button>
157 </span>
158 <span id="insert_above_below">
159 <button id="insert_above_b" title="Insert Above">Insert Above</button>
160 <button id="insert_below_b" title="Insert Below">Insert Below</button>
161 </span>
162 <span id="run_int">
163 <button id="run_b" title="Run">Run</button>
164 <button id="interrupt_b" title="Interrupt">Interrupt</button>
165 </span>
166 <span>
167 <select id="cell_type">
168 <option value="code">Code</option>
169 <option value="markdown">Markdown</option>
170 </select>
171 </span>
172
173 </div>
174
144 <div id="main_app">
175 <div id="main_app">
145
176
146 <div id="notebook_panel">
177 <div id="notebook_panel">
147 <div id="notebook"></div>
178 <div id="notebook"></div>
148 <div id="pager_splitter"></div>
179 <div id="pager_splitter"></div>
149 <div id="pager"></div>
180 <div id="pager"></div>
150 </div>
181 </div>
151
182
152 </div>
183 </div>
153
184
154 <script src="/static/jquery/js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
185 <script src="/static/jquery/js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
155 <script src="/static/jquery/js/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script>
186 <script src="/static/jquery/js/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script>
156
187
157 <script src="/static/codemirror/lib/codemirror.js" charset="utf-8"></script>
188 <script src="/static/codemirror/lib/codemirror.js" charset="utf-8"></script>
158 <script src="/static/codemirror/mode/python/python.js" charset="utf-8"></script>
189 <script src="/static/codemirror/mode/python/python.js" charset="utf-8"></script>
159 <script src="/static/codemirror/mode/htmlmixed/htmlmixed.js" charset="utf-8"></script>
190 <script src="/static/codemirror/mode/htmlmixed/htmlmixed.js" charset="utf-8"></script>
160 <script src="/static/codemirror/mode/xml/xml.js" charset="utf-8"></script>
191 <script src="/static/codemirror/mode/xml/xml.js" charset="utf-8"></script>
161 <script src="/static/codemirror/mode/javascript/javascript.js" charset="utf-8"></script>
192 <script src="/static/codemirror/mode/javascript/javascript.js" charset="utf-8"></script>
162 <script src="/static/codemirror/mode/css/css.js" charset="utf-8"></script>
193 <script src="/static/codemirror/mode/css/css.js" charset="utf-8"></script>
163 <script src="/static/codemirror/mode/rst/rst.js" charset="utf-8"></script>
194 <script src="/static/codemirror/mode/rst/rst.js" charset="utf-8"></script>
164 <script src="/static/codemirror/mode/markdown/markdown.js" charset="utf-8"></script>
195 <script src="/static/codemirror/mode/markdown/markdown.js" charset="utf-8"></script>
165
196
166 <script src="/static/pagedown/Markdown.Converter.js" charset="utf-8"></script>
197 <script src="/static/pagedown/Markdown.Converter.js" charset="utf-8"></script>
167
198
168 <script src="/static/prettify/prettify.js" charset="utf-8"></script>
199 <script src="/static/prettify/prettify.js" charset="utf-8"></script>
169 <script src="/static/dateformat/date.format.js" charset="utf-8"></script>
200 <script src="/static/dateformat/date.format.js" charset="utf-8"></script>
170
201
171 <script src="/static/js/namespace.js" type="text/javascript" charset="utf-8"></script>
202 <script src="/static/js/namespace.js" type="text/javascript" charset="utf-8"></script>
172 <script src="/static/js/utils.js" type="text/javascript" charset="utf-8"></script>
203 <script src="/static/js/utils.js" type="text/javascript" charset="utf-8"></script>
173 <script src="/static/js/cell.js" type="text/javascript" charset="utf-8"></script>
204 <script src="/static/js/cell.js" type="text/javascript" charset="utf-8"></script>
174 <script src="/static/js/codecell.js" type="text/javascript" charset="utf-8"></script>
205 <script src="/static/js/codecell.js" type="text/javascript" charset="utf-8"></script>
175 <script src="/static/js/textcell.js" type="text/javascript" charset="utf-8"></script>
206 <script src="/static/js/textcell.js" type="text/javascript" charset="utf-8"></script>
176 <script src="/static/js/kernel.js" type="text/javascript" charset="utf-8"></script>
207 <script src="/static/js/kernel.js" type="text/javascript" charset="utf-8"></script>
177 <script src="/static/js/kernelstatus.js" type="text/javascript" charset="utf-8"></script>
208 <script src="/static/js/kernelstatus.js" type="text/javascript" charset="utf-8"></script>
178 <script src="/static/js/layout.js" type="text/javascript" charset="utf-8"></script>
209 <script src="/static/js/layout.js" type="text/javascript" charset="utf-8"></script>
179 <script src="/static/js/savewidget.js" type="text/javascript" charset="utf-8"></script>
210 <script src="/static/js/savewidget.js" type="text/javascript" charset="utf-8"></script>
180 <script src="/static/js/quickhelp.js" type="text/javascript" charset="utf-8"></script>
211 <script src="/static/js/quickhelp.js" type="text/javascript" charset="utf-8"></script>
181 <script src="/static/js/loginwidget.js" type="text/javascript" charset="utf-8"></script>
212 <script src="/static/js/loginwidget.js" type="text/javascript" charset="utf-8"></script>
182 <script src="/static/js/pager.js" type="text/javascript" charset="utf-8"></script>
213 <script src="/static/js/pager.js" type="text/javascript" charset="utf-8"></script>
183 <script src="/static/js/menubar.js" type="text/javascript" charset="utf-8"></script>
214 <script src="/static/js/menubar.js" type="text/javascript" charset="utf-8"></script>
215 <script src="/static/js/toolbar.js" type="text/javascript" charset="utf-8"></script>
184 <script src="/static/js/notebook.js" type="text/javascript" charset="utf-8"></script>
216 <script src="/static/js/notebook.js" type="text/javascript" charset="utf-8"></script>
185 <script src="/static/js/notebookmain.js" type="text/javascript" charset="utf-8"></script>
217 <script src="/static/js/notebookmain.js" type="text/javascript" charset="utf-8"></script>
186
218
187 </body>
219 </body>
188
220
189 </html>
221 </html>
General Comments 0
You need to be logged in to leave comments. Login now