##// END OF EJS Templates
Removed HTMLCell from UI and added better placeholder logic.
Brian E. Granger -
Show More
@@ -1,251 +1,251 b''
1 1 //----------------------------------------------------------------------------
2 2 // Copyright (C) 2008-2011 The IPython Development Team
3 3 //
4 4 // Distributed under the terms of the BSD License. The full license is in
5 5 // the file COPYING, distributed as part of this software.
6 6 //----------------------------------------------------------------------------
7 7
8 8 //============================================================================
9 9 // PanelSection
10 10 //============================================================================
11 11
12 12 var IPython = (function (IPython) {
13 13
14 14 var utils = IPython.utils;
15 15
16 16 // Base PanelSection class
17 17
18 18 var PanelSection = function (selector) {
19 19 this.selector = selector;
20 20 if (this.selector !== undefined) {
21 21 this.element = $(selector);
22 22 this.header = this.element.find('h3.section_header');
23 23 this.content = this.element.find('div.section_content');
24 24 this.style();
25 25 this.bind_events();
26 26 }
27 27 this.expanded = true;
28 28 };
29 29
30 30
31 31 PanelSection.prototype.style = function () {
32 32 this.header.addClass('ui-widget ui-state-default');
33 33 this.content.addClass('ui-widget section_content');
34 34 };
35 35
36 36
37 37 PanelSection.prototype.bind_events = function () {
38 38 var that = this;
39 39 this.header.click(function () {
40 40 that.toggle();
41 41 });
42 42 this.header.hover(function () {
43 43 that.header.toggleClass('ui-state-hover');
44 44 });
45 45 };
46 46
47 47
48 48 PanelSection.prototype.expand = function () {
49 49 if (!this.expanded) {
50 50 this.content.slideDown('fast');
51 51 this.expanded = true;
52 52 };
53 53 };
54 54
55 55
56 56 PanelSection.prototype.collapse = function () {
57 57 if (this.expanded) {
58 58 this.content.slideUp('fast');
59 59 this.expanded = false;
60 60 };
61 61 };
62 62
63 63
64 64 PanelSection.prototype.toggle = function () {
65 65 if (this.expanded === true) {
66 66 this.collapse();
67 67 } else {
68 68 this.expand();
69 69 };
70 70 };
71 71
72 72
73 73 PanelSection.prototype.create_children = function () {};
74 74
75 75
76 76 // NotebookSection
77 77
78 78 var NotebookSection = function () {
79 79 PanelSection.apply(this, arguments);
80 80 };
81 81
82 82
83 83 NotebookSection.prototype = new PanelSection();
84 84
85 85
86 86 NotebookSection.prototype.style = function () {
87 87 PanelSection.prototype.style.apply(this);
88 88 this.content.addClass('ui-helper-clearfix');
89 89 this.content.find('div.section_row').addClass('ui-helper-clearfix');
90 90 this.content.find('#new_open').buttonset();
91 91 this.content.find('#download_notebook').button();
92 92 this.content.find('#upload_notebook').button();
93 93 this.content.find('#download_format').addClass('ui-widget ui-widget-content');
94 94 this.content.find('#download_format option').addClass('ui-widget ui-widget-content');
95 95 };
96 96
97 97
98 98 NotebookSection.prototype.bind_events = function () {
99 99 PanelSection.prototype.bind_events.apply(this);
100 100 var that = this;
101 101 this.content.find('#new_notebook').click(function () {
102 102 window.open('/new');
103 103 });
104 104 this.content.find('#open_notebook').click(function () {
105 105 window.open('/');
106 106 });
107 107 this.content.find('#download_notebook').click(function () {
108 108 var format = that.content.find('#download_format').val();
109 109 var notebook_id = IPython.save_widget.get_notebook_id();
110 110 var url = '/notebooks/' + notebook_id + '?format=' + format;
111 111 window.open(url,'_newtab');
112 112 });
113 113 };
114 114
115 115 // CellSection
116 116
117 117 var CellSection = function () {
118 118 PanelSection.apply(this, arguments);
119 119 };
120 120
121 121
122 122 CellSection.prototype = new PanelSection();
123 123
124 124
125 125 CellSection.prototype.style = function () {
126 126 PanelSection.prototype.style.apply(this);
127 127 this.content.addClass('ui-helper-clearfix');
128 128 this.content.find('div.section_row').addClass('ui-helper-clearfix');
129 129 this.content.find('#delete_cell').button();
130 130 this.content.find('#insert').buttonset();
131 131 this.content.find('#move').buttonset();
132 132 this.content.find('#cell_type').buttonset();
133 133 this.content.find('#toggle_output').buttonset();
134 134 this.content.find('#run_cells').buttonset();
135 135 };
136 136
137 137
138 138 CellSection.prototype.bind_events = function () {
139 139 PanelSection.prototype.bind_events.apply(this);
140 140 this.content.find('#collapse_cell').click(function () {
141 141 IPython.notebook.collapse();
142 142 });
143 143 this.content.find('#expand_cell').click(function () {
144 144 IPython.notebook.expand();
145 145 });
146 146 this.content.find('#clear_all_output').click(function () {
147 147 IPython.notebook.clear_all_output();
148 148 });
149 149 this.content.find('#delete_cell').click(function () {
150 150 IPython.notebook.delete_cell();
151 151 });
152 152 this.content.find('#insert_cell_above').click(function () {
153 153 IPython.notebook.insert_code_cell_before();
154 154 });
155 155 this.content.find('#insert_cell_below').click(function () {
156 156 IPython.notebook.insert_code_cell_after();
157 157 });
158 158 this.content.find('#move_cell_up').click(function () {
159 159 IPython.notebook.move_cell_up();
160 160 });
161 161 this.content.find('#move_cell_down').click(function () {
162 162 IPython.notebook.move_cell_down();
163 163 });
164 164 this.content.find('#to_code').click(function () {
165 165 IPython.notebook.to_code();
166 166 });
167 this.content.find('#to_html').click(function () {
168 IPython.notebook.to_html();
169 });
167 // this.content.find('#to_html').click(function () {
168 // IPython.notebook.to_html();
169 // });
170 170 this.content.find('#to_markdown').click(function () {
171 171 IPython.notebook.to_markdown();
172 172 });
173 173 this.content.find('#run_selected_cell').click(function () {
174 174 IPython.notebook.execute_selected_cell();
175 175 });
176 176 this.content.find('#run_all_cells').click(function () {
177 177 IPython.notebook.execute_all_cells();
178 178 });
179 179 this.content.find('#autoindent').change(function () {
180 180 var state = $('#autoindent').prop('checked');
181 181 IPython.notebook.set_autoindent(state);
182 182 });
183 183 };
184 184
185 185
186 186 // KernelSection
187 187
188 188 var KernelSection = function () {
189 189 PanelSection.apply(this, arguments);
190 190 };
191 191
192 192
193 193 KernelSection.prototype = new PanelSection();
194 194
195 195
196 196 KernelSection.prototype.style = function () {
197 197 PanelSection.prototype.style.apply(this);
198 198 this.content.addClass('ui-helper-clearfix');
199 199 this.content.find('div.section_row').addClass('ui-helper-clearfix');
200 200 this.content.find('#int_restart').buttonset();
201 201 };
202 202
203 203
204 204 KernelSection.prototype.bind_events = function () {
205 205 PanelSection.prototype.bind_events.apply(this);
206 206 this.content.find('#restart_kernel').click(function () {
207 207 IPython.notebook.restart_kernel();
208 208 });
209 209 this.content.find('#int_kernel').click(function () {
210 210 IPython.notebook.kernel.interrupt();
211 211 });
212 212 };
213 213
214 214
215 215 // HelpSection
216 216
217 217 var HelpSection = function () {
218 218 PanelSection.apply(this, arguments);
219 219 };
220 220
221 221
222 222 HelpSection.prototype = new PanelSection();
223 223
224 224
225 225 HelpSection.prototype.style = function () {
226 226 PanelSection.prototype.style.apply(this);
227 227 PanelSection.prototype.style.apply(this);
228 228 this.content.addClass('ui-helper-clearfix');
229 229 this.content.find('div.section_row').addClass('ui-helper-clearfix');
230 230 this.content.find('#help_buttons0').buttonset();
231 231 this.content.find('#help_buttons1').buttonset();
232 232 };
233 233
234 234
235 235 HelpSection.prototype.bind_events = function () {
236 236 PanelSection.prototype.bind_events.apply(this);
237 237 };
238 238
239 239
240 240 // Set module variables
241 241
242 242 IPython.PanelSection = PanelSection;
243 243 IPython.NotebookSection = NotebookSection;
244 244 IPython.CellSection = CellSection;
245 245 IPython.KernelSection = KernelSection;
246 246 IPython.HelpSection = HelpSection;
247 247
248 248 return IPython;
249 249
250 250 }(IPython));
251 251
@@ -1,254 +1,257 b''
1 1 //----------------------------------------------------------------------------
2 2 // Copyright (C) 2008-2011 The IPython Development Team
3 3 //
4 4 // Distributed under the terms of the BSD License. The full license is in
5 5 // the file COPYING, distributed as part of this software.
6 6 //----------------------------------------------------------------------------
7 7
8 8 //============================================================================
9 9 // TextCell
10 10 //============================================================================
11 11
12 12 var IPython = (function (IPython) {
13 13
14 14 // TextCell base class
15 15
16 16 var TextCell = function (notebook) {
17 17 this.code_mirror_mode = this.code_mirror_mode || 'htmlmixed';
18 18 this.placeholder = this.placeholder || '';
19 19 IPython.Cell.apply(this, arguments);
20 20 this.rendered = false;
21 21 this.cell_type = this.cell_type || 'text';
22 22 };
23 23
24 24
25 25 TextCell.prototype = new IPython.Cell();
26 26
27 27
28 28 TextCell.prototype.create_element = function () {
29 29 var cell = $("<div>").addClass('cell text_cell border-box-sizing');
30 30 var input_area = $('<div/>').addClass('text_cell_input');
31 31 this.code_mirror = CodeMirror(input_area.get(0), {
32 32 indentUnit : 4,
33 33 mode: this.code_mirror_mode,
34 34 theme: 'default',
35 35 value: this.placeholder
36 36 });
37 37 // The tabindex=-1 makes this div focusable.
38 38 var render_area = $('<div/>').addClass('text_cell_render').
39 39 addClass('rendered_html').attr('tabindex','-1');
40 40 cell.append(input_area).append(render_area);
41 41 this.element = cell;
42 42 };
43 43
44 44
45 45 TextCell.prototype.bind_events = function () {
46 46 IPython.Cell.prototype.bind_events.apply(this);
47 47 var that = this;
48 48 this.element.keydown(function (event) {
49 49 if (event.which === 13) {
50 50 if (that.rendered) {
51 51 that.edit();
52 52 event.preventDefault();
53 53 };
54 54 };
55 55 });
56 56 };
57 57
58 58
59 59 TextCell.prototype.select = function () {
60 60 IPython.Cell.prototype.select.apply(this);
61 61 var output = this.element.find("div.text_cell_render");
62 62 output.trigger('focus');
63 63 };
64 64
65 65
66 66 TextCell.prototype.edit = function () {
67 67 if (this.rendered === true) {
68 68 var text_cell = this.element;
69 69 var output = text_cell.find("div.text_cell_render");
70 70 output.hide();
71 71 text_cell.find('div.text_cell_input').show();
72 72 this.code_mirror.focus();
73 73 this.code_mirror.refresh();
74 74 this.rendered = false;
75 if (this.get_source() === this.placeholder) {
76 this.set_source('');
77 };
75 78 };
76 79 };
77 80
78 81
79 82 // Subclasses must define render.
80 83 TextCell.prototype.render = function () {};
81 84
82 85
83 86 TextCell.prototype.config_mathjax = function () {
84 87 var text_cell = this.element;
85 88 var that = this;
86 89 text_cell.click(function () {
87 90 that.edit();
88 91 }).focusout(function () {
89 92 that.render();
90 93 });
91 94
92 95 text_cell.trigger("focusout");
93 96 };
94 97
95 98
96 99 TextCell.prototype.get_source = function() {
97 100 return this.code_mirror.getValue();
98 101 };
99 102
100 103
101 104 TextCell.prototype.set_source = function(text) {
102 105 this.code_mirror.setValue(text);
103 106 this.code_mirror.refresh();
104 107 };
105 108
106 109
107 110 TextCell.prototype.get_rendered = function() {
108 111 return this.element.find('div.text_cell_render').html();
109 112 };
110 113
111 114
112 115 TextCell.prototype.set_rendered = function(text) {
113 116 this.element.find('div.text_cell_render').html(text);
114 117 };
115 118
116 119
117 120 TextCell.prototype.at_top = function () {
118 121 if (this.rendered) {
119 122 return true;
120 123 } else {
121 124 return false;
122 125 }
123 126 };
124 127
125 128
126 129 TextCell.prototype.at_bottom = function () {
127 130 if (this.rendered) {
128 131 return true;
129 132 } else {
130 133 return false;
131 134 }
132 135 };
133 136
134 137
135 138 TextCell.prototype.fromJSON = function (data) {
136 139 if (data.cell_type === this.cell_type) {
137 140 if (data.source !== undefined) {
138 141 this.set_source(data.source);
139 142 this.set_rendered(data.rendered || '');
140 143 this.rendered = false;
141 144 this.render();
142 145 };
143 146 };
144 147 };
145 148
146 149
147 150 TextCell.prototype.toJSON = function () {
148 151 var data = {}
149 152 data.cell_type = this.cell_type;
150 153 data.source = this.get_source();
151 154 return data;
152 155 };
153 156
154 157
155 158 // HTMLCell
156 159
157 160 var HTMLCell = function (notebook) {
158 161 this.placeholder = "Type <strong>HTML</strong> and LaTeX: $\\alpha^2$";
159 162 IPython.TextCell.apply(this, arguments);
160 163 this.cell_type = 'html';
161 164 };
162 165
163 166
164 167 HTMLCell.prototype = new TextCell();
165 168
166 169
167 170 HTMLCell.prototype.render = function () {
168 171 if (this.rendered === false) {
169 172 var text = this.get_source();
170 173 if (text === "") {text = this.placeholder;};
171 174 this.set_rendered(text);
172 175 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
173 176 this.element.find('div.text_cell_input').hide();
174 177 this.element.find("div.text_cell_render").show();
175 178 this.rendered = true;
176 179 };
177 180 };
178 181
179 182
180 183 // MarkdownCell
181 184
182 185 var MarkdownCell = function (notebook) {
183 186 this.placeholder = "Type *Markdown* and LaTeX: $\\alpha^2$";
184 187 IPython.TextCell.apply(this, arguments);
185 188 this.cell_type = 'markdown';
186 189 };
187 190
188 191
189 192 MarkdownCell.prototype = new TextCell();
190 193
191 194
192 195 MarkdownCell.prototype.render = function () {
193 196 if (this.rendered === false) {
194 197 var text = this.get_source();
195 198 if (text === "") {text = this.placeholder;};
196 199 var html = IPython.markdown_converter.makeHtml(text);
197 200 this.set_rendered(html);
198 201 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
199 202 this.element.find('div.text_cell_input').hide();
200 203 this.element.find("div.text_cell_render").show();
201 204 this.rendered = true;
202 205 };
203 206 };
204 207
205 208
206 209 // RSTCell
207 210
208 211 var RSTCell = function (notebook) {
209 212 this.placeholder = "Type *ReStructured Text* and LaTeX: $\\alpha^2$";
210 213 IPython.TextCell.apply(this, arguments);
211 214 this.cell_type = 'rst';
212 215 };
213 216
214 217
215 218 RSTCell.prototype = new TextCell();
216 219
217 220
218 221 RSTCell.prototype.render = function () {
219 222 if (this.rendered === false) {
220 223 var text = this.get_source();
221 224 if (text === "") {text = this.placeholder;};
222 225 var settings = {
223 226 processData : false,
224 227 cache : false,
225 228 type : "POST",
226 229 data : text,
227 230 headers : {'Content-Type': 'application/x-rst'},
228 231 success : $.proxy(this.handle_render,this)
229 232 };
230 233 $.ajax("/rstservice/render", settings);
231 234 this.element.find('div.text_cell_input').hide();
232 235 this.element.find("div.text_cell_render").show();
233 236 this.set_rendered("Rendering...");
234 237 };
235 238 };
236 239
237 240
238 241 RSTCell.prototype.handle_render = function (data, status, xhr) {
239 242 this.set_rendered(data);
240 243 MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
241 244 this.rendered = true;
242 245 };
243 246
244 247
245 248 IPython.TextCell = TextCell;
246 249 IPython.HTMLCell = HTMLCell;
247 250 IPython.MarkdownCell = MarkdownCell;
248 251 IPython.RSTCell = RSTCell;
249 252
250 253
251 254 return IPython;
252 255
253 256 }(IPython));
254 257
@@ -1,224 +1,224 b''
1 1 <!DOCTYPE HTML>
2 2 <html>
3 3
4 4 <head>
5 5 <meta charset="utf-8">
6 6
7 7 <title>IPython Notebook</title>
8 8
9 9 <link rel="stylesheet" href="static/jquery/css/themes/aristo/jquery-wijmo.css" type="text/css" />
10 10 <!-- <link rel="stylesheet" href="static/jquery/css/themes/rocket/jquery-wijmo.css" type="text/css" /> -->
11 11 <!-- <link rel="stylesheet" href="static/jquery/css/themes/smoothness/jquery-ui-1.8.14.custom.css" type="text/css" />-->
12 12
13 13 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML" charset="utf-8"></script>
14 14 <!-- <script type='text/javascript' src='static/mathjax/MathJax.js?config=TeX-AMS_HTML' charset='utf-8'></script> -->
15 15 <script type="text/javascript">
16 16 if (typeof MathJax == 'undefined') {
17 17 console.log("Trying to load local copy of MathJax");
18 18 document.write(unescape("%3Cscript type='text/javascript' src='static/mathjax/MathJax.js%3Fconfig=TeX-AMS_HTML' charset='utf-8'%3E%3C/script%3E"));
19 19 }
20 20 </script>
21 21
22 22 <link rel="stylesheet" href="static/codemirror-2.12/lib/codemirror.css">
23 23 <link rel="stylesheet" href="static/codemirror-2.12/mode/rst/rst.css">
24 24 <link rel="stylesheet" href="static/codemirror-2.12/theme/ipython.css">
25 25 <link rel="stylesheet" href="static/codemirror-2.12/theme/default.css">
26 26
27 27 <link rel="stylesheet" href="static/css/boilerplate.css" type="text/css" />
28 28 <link rel="stylesheet" href="static/css/layout.css" type="text/css" />
29 29 <link rel="stylesheet" href="static/css/base.css" type="text/css" />
30 30 <link rel="stylesheet" href="static/css/notebook.css" type="text/css" />
31 31 <link rel="stylesheet" href="static/css/renderedhtml.css" type="text/css" />
32 32
33 33
34 34 </head>
35 35
36 36 <body>
37 37
38 38 <div id="header">
39 39 <span id="ipython_notebook"><h1>IPython Notebook</h1></span>
40 40 <span id="save_widget">
41 41 <input type="text" id="notebook_name" size="20"></textarea>
42 42 <span id="notebook_id" style="display:none">{{notebook_id}}</span>
43 43 <button id="save_notebook">Save</button>
44 44 </span>
45 45 <span id="kernel_status">Idle</span>
46 46 </div>
47 47
48 48 <div id="main_app">
49 49
50 50 <div id="left_panel">
51 51
52 52 <div id="notebook_section">
53 53 <h3 class="section_header">Notebook</h3>
54 54 <div class="section_content">
55 55 <div class="section_row">
56 56 <span id="new_open" class="section_row_buttons">
57 57 <button id="new_notebook">New</button>
58 58 <button id="open_notebook">Open</button>
59 59 </span>
60 60 <span class="section_row_header">Actions</span>
61 61 </div>
62 62 <div class="section_row">
63 63 <span>
64 64 <select id="download_format">
65 65 <option value="xml">xml</option>
66 66 <option value="json">json</option>
67 67 <option value="py">py</option>
68 68 </select>
69 69 </span>
70 70 <span class="section_row_buttons">
71 71 <button id="download_notebook">Export</button>
72 72 </span>
73 73 </div>
74 74 </div>
75 75 </div>
76 76
77 77 <div id="cell_section">
78 78 <h3 class="section_header">Cell</h3>
79 79 <div class="section_content">
80 80 <div class="section_row">
81 81 <span class="section_row_buttons">
82 82 <button id="delete_cell">Delete</button>
83 83 </span>
84 84 <span class="section_row_header">Actions</span>
85 85 </div>
86 86 <div class="section_row">
87 87 <span id="cell_type" class="section_row_buttons">
88 88 <button id="to_code">Code</button>
89 <button id="to_html">HTML</button>
89 <!-- <button id="to_html">HTML</button>-->
90 90 <button id="to_markdown">Markdown</button>
91 91 </span>
92 92 <span class="button_label">Format</span>
93 93 </div>
94 94 <div class="section_row">
95 95 <span id="toggle_output" class="section_row_buttons">
96 96 <button id="collapse_cell">Collapse</button>
97 97 <button id="expand_cell">Expand</button>
98 98 <button id="clear_all_output">ClearAll</button>
99 99 </span>
100 100 <span class="button_label">Output</span>
101 101 </div>
102 102 <div class="section_row">
103 103 <span id="insert" class="section_row_buttons">
104 104 <button id="insert_cell_above">Above</button>
105 105 <button id="insert_cell_below">Below</button>
106 106 </span>
107 107 <span class="button_label">Insert</span>
108 108 </div>
109 109 <div class="section_row">
110 110 <span id="move" class="section_row_buttons">
111 111 <button id="move_cell_up">Up</button>
112 112 <button id="move_cell_down">Down</button>
113 113 </span>
114 114 <span class="button_label">Move</span>
115 115 </div>
116 116 <div class="section_row">
117 117 <span id="run_cells" class="section_row_buttons">
118 118 <button id="run_selected_cell">Selected</button>
119 119 <button id="run_all_cells">All</button>
120 120 </span>
121 121 <span class="button_label">Run</span>
122 122 </div>
123 123 <div class="section_row">
124 124 <span id="autoindent_span">
125 125 <input type="checkbox" id="autoindent" checked="true"></input>
126 126 </span>
127 127 <span class="checkbox_label">Autoindent:</span>
128 128 </div>
129 129 </div>
130 130 </div>
131 131
132 132 <div id="kernel_section">
133 133 <h3 class="section_header">Kernel</h3>
134 134 <div class="section_content">
135 135 <div class="section_row">
136 136 <span id="int_restart" class="section_row_buttons">
137 137 <button id="int_kernel">Interrupt</button>
138 138 <button id="restart_kernel">Restart</button>
139 139 </span>
140 140 <span class="section_row_header">Actions</span>
141 141 </div>
142 142 <div class="section_row">
143 143 <span id="kernel_persist">
144 144 <input type="checkbox" id="kill_kernel"></input>
145 145 </span>
146 146 <span class="checkbox_label">Kill kernel upon exit:</span>
147 147 </div>
148 148 </div>
149 149 </div>
150 150
151 151 <div id="help_section">
152 152 <h3 class="section_header">Help</h3>
153 153 <div class="section_content">
154 154 <div class="section_row">
155 155 <span id="help_buttons0" class="section_row_buttons">
156 156 <button id="python_help"><a href="http://docs.python.org" target="_blank">Python</a></button>
157 157 <button id="ipython_help"><a href="http://ipython.org/documentation.html" target="_blank">IPython</a></button>
158 158 <button id="numpy_help"><a href="http://docs.scipy.org/doc/numpy/reference/" target="_blank">NumPy</a></button>
159 159 </span>
160 160 <span class="section_row_header">Links</span>
161 161 </div>
162 162 <div class="section_row">
163 163 <span id="help_buttons1" class="section_row_buttons">
164 164 <button id="matplotlib_help"><a href="http://matplotlib.sourceforge.net/" target="_blank">MPL</a></button>
165 165 <button id="scipy_help"><a href="http://docs.scipy.org/doc/scipy/reference/" target="_blank">SciPy</a></button>
166 166 <button id="sympy_help"><a href="http://docs.sympy.org/dev/index.html" target="_blank">SymPy</a></button>
167 167 </span>
168 168 </div>
169 169 <div class="section_row">
170 170 <span class="help_string">run selected cell</span>
171 171 <span class="help_string_label">Shift-Enter |</span>
172 172 </div>
173 173 <div class="section_row">
174 174 <span class="help_string">run in terminal mode</span>
175 175 <span class="help_string_label">Ctrl-Enter |</span>
176 176 </div>
177 177 </div>
178 178 </div>
179 179
180 180 </div>
181 181 <div id="left_panel_splitter"></div>
182 182 <div id="notebook_panel">
183 183 <div id="notebook"></div>
184 184 <div id="pager_splitter"></div>
185 185 <div id="pager"></div>
186 186 </div>
187 187
188 188 </div>
189 189
190 190 <script src="static/jquery/js/jquery-1.6.2.min.js" type="text/javascript" charset="utf-8"></script>
191 191 <script src="static/jquery/js/jquery-ui-1.8.14.custom.min.js" type="text/javascript" charset="utf-8"></script>
192 192 <script src="static/jquery/js/jquery.autogrow.js" type="text/javascript" charset="utf-8"></script>
193 193
194 194 <script src="static/codemirror-2.12/lib/codemirror.js" charset="utf-8"></script>
195 195 <script src="static/codemirror-2.12/mode/python/python.js" charset="utf-8"></script>
196 196 <script src="static/codemirror-2.12/mode/htmlmixed/htmlmixed.js" charset="utf-8"></script>
197 197 <script src="static/codemirror-2.12/mode/xml/xml.js" charset="utf-8"></script>
198 198 <script src="static/codemirror-2.12/mode/javascript/javascript.js" charset="utf-8"></script>
199 199 <script src="static/codemirror-2.12/mode/css/css.js" charset="utf-8"></script>
200 200 <script src="static/codemirror-2.12/mode/rst/rst.js" charset="utf-8"></script>
201 201
202 202 <script src="static/pagedown/Markdown.Converter.js" charset="utf-8"></script>
203 203
204 204 <script src="static/js/namespace.js" type="text/javascript" charset="utf-8"></script>
205 205 <script src="static/js/utils.js" type="text/javascript" charset="utf-8"></script>
206 206 <script src="static/js/cell.js" type="text/javascript" charset="utf-8"></script>
207 207 <script src="static/js/codecell.js" type="text/javascript" charset="utf-8"></script>
208 208 <script src="static/js/textcell.js" type="text/javascript" charset="utf-8"></script>
209 209 <script src="static/js/kernel.js" type="text/javascript" charset="utf-8"></script>
210 210 <script src="static/js/kernelstatus.js" type="text/javascript" charset="utf-8"></script>
211 211 <script src="static/js/layout.js" type="text/javascript" charset="utf-8"></script>
212 212 <script src="static/js/savewidget.js" type="text/javascript" charset="utf-8"></script>
213 213 <script src="static/js/pager.js" type="text/javascript" charset="utf-8"></script>
214 214 <script src="static/js/panelsection.js" type="text/javascript" charset="utf-8"></script>
215 215 <script src="static/js/leftpanel.js" type="text/javascript" charset="utf-8"></script>
216 216 <script src="static/js/notebook.js" type="text/javascript" charset="utf-8"></script>
217 217 <script src="static/js/notebook_main.js" type="text/javascript" charset="utf-8"></script>
218 218
219 219
220 220 </body>
221 221
222 222 </html>
223 223
224 224
General Comments 0
You need to be logged in to leave comments. Login now