Show More
@@ -1,139 +1,133 b'' | |||||
1 | /** |
|
1 | /** | |
2 | * Primary styles |
|
2 | * Primary styles | |
3 | * |
|
3 | * | |
4 | * Author: IPython Development Team |
|
4 | * Author: IPython Development Team | |
5 | */ |
|
5 | */ | |
6 | /** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot |
|
6 | /** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot | |
7 | * of chance of beeing generated from the ../less/[samename].less file, you can |
|
7 | * of chance of beeing generated from the ../less/[samename].less file, you can | |
8 | * try to get back the less file by reverting somme commit in history |
|
8 | * try to get back the less file by reverting somme commit in history | |
9 | **/ |
|
9 | **/ | |
10 | /* |
|
10 | /* | |
11 | * We'll try to get something pretty, so we |
|
11 | * We'll try to get something pretty, so we | |
12 |
* have some strange c |
|
12 | * have some strange css to have the scroll bar on | |
13 |
* the left |
|
13 | * the left with fix button on the top right of the tooltip | |
14 | */ |
|
14 | */ | |
15 | @-moz-keyframes fadeOut { |
|
15 | @-moz-keyframes fadeOut { | |
16 | from { |
|
16 | from { | |
17 | opacity: 1; |
|
17 | opacity: 1; | |
18 | } |
|
18 | } | |
19 | to { |
|
19 | to { | |
20 | opacity: 0; |
|
20 | opacity: 0; | |
21 | } |
|
21 | } | |
22 | } |
|
22 | } | |
23 | @-webkit-keyframes fadeOut { |
|
23 | @-webkit-keyframes fadeOut { | |
24 | from { |
|
24 | from { | |
25 | opacity: 1; |
|
25 | opacity: 1; | |
26 | } |
|
26 | } | |
27 | to { |
|
27 | to { | |
28 | opacity: 0; |
|
28 | opacity: 0; | |
29 | } |
|
29 | } | |
30 | } |
|
30 | } | |
31 | @-moz-keyframes fadeIn { |
|
31 | @-moz-keyframes fadeIn { | |
32 | from { |
|
32 | from { | |
33 | opacity: 0; |
|
33 | opacity: 0; | |
34 | } |
|
34 | } | |
35 | to { |
|
35 | to { | |
36 | opacity: 1; |
|
36 | opacity: 1; | |
37 | } |
|
37 | } | |
38 | } |
|
38 | } | |
39 | @-webkit-keyframes fadeIn { |
|
39 | @-webkit-keyframes fadeIn { | |
40 | from { |
|
40 | from { | |
41 | opacity: 0; |
|
41 | opacity: 0; | |
42 | } |
|
42 | } | |
43 | to { |
|
43 | to { | |
44 | opacity: 1; |
|
44 | opacity: 1; | |
45 | } |
|
45 | } | |
46 | } |
|
46 | } | |
47 | .tooltip a { |
|
47 | .tooltip a { | |
48 | float: right; |
|
48 | float: right; | |
49 | } |
|
49 | } | |
50 | /*properties of tooltip after "expand"*/ |
|
50 | /*properties of tooltip after "expand"*/ | |
51 | .bigtooltip { |
|
51 | .bigtooltip { | |
52 | overflow: auto; |
|
52 | overflow: auto; | |
53 | height: 200px; |
|
53 | height: 200px; | |
54 | -webkit-transition-property: height; |
|
54 | -webkit-transition-property: height; | |
55 | -webkit-transition-duration: 1s; |
|
55 | -webkit-transition-duration: 1s; | |
56 | -moz-transition-property: height; |
|
56 | -moz-transition-property: height; | |
57 | -moz-transition-duration: 1s; |
|
57 | -moz-transition-duration: 1s; | |
58 | transition-property: height; |
|
58 | transition-property: height; | |
59 | transition-duration: 1s; |
|
59 | transition-duration: 1s; | |
60 | } |
|
60 | } | |
61 | /*properties of tooltip before "expand"*/ |
|
61 | /*properties of tooltip before "expand"*/ | |
62 | .smalltooltip { |
|
62 | .smalltooltip { | |
63 | -webkit-transition-property: height; |
|
63 | -webkit-transition-property: height; | |
64 | -webkit-transition-duration: 1s; |
|
64 | -webkit-transition-duration: 1s; | |
65 | -moz-transition-property: height; |
|
65 | -moz-transition-property: height; | |
66 | -moz-transition-duration: 1s; |
|
66 | -moz-transition-duration: 1s; | |
67 | transition-property: height; |
|
67 | transition-property: height; | |
68 | transition-duration: 1s; |
|
68 | transition-duration: 1s; | |
69 | text-overflow: ellipsis; |
|
69 | text-overflow: ellipsis; | |
70 | overflow: hidden; |
|
70 | overflow: hidden; | |
71 | height: 80px; |
|
71 | height: 80px; | |
72 | } |
|
72 | } | |
73 | .tooltipbuttons { |
|
73 | .tooltipbuttons { | |
74 | position: absolute; |
|
74 | position: absolute; | |
75 | padding-right: 15px; |
|
75 | padding-right: 15px; | |
76 | top: 0px; |
|
76 | top: 0px; | |
77 | right: 0px; |
|
77 | right: 0px; | |
78 | } |
|
78 | } | |
79 | .tooltiptext { |
|
79 | .tooltiptext { | |
80 | /*avoid the button to overlap on some docstring*/ |
|
80 | /*avoid the button to overlap on some docstring*/ | |
81 |
|
81 | |||
82 | padding-right: 30px; |
|
82 | padding-right: 30px; | |
83 | } |
|
83 | } | |
84 | .tooltip { |
|
84 | .tooltip { | |
85 | max-width: 700px; |
|
85 | max-width: 700px; | |
86 | border-radius: 4px; |
|
86 | border-radius: 4px; | |
87 | -moz-box-shadow: 0px 6px 10px -1px #adadad; |
|
87 | -moz-box-shadow: 0px 6px 10px -1px #adadad; | |
88 | -webkit-box-shadow: 0px 6px 10px -1px #adadad; |
|
88 | -webkit-box-shadow: 0px 6px 10px -1px #adadad; | |
89 | box-shadow: 0px 6px 10px -1px #adadad; |
|
89 | box-shadow: 0px 6px 10px -1px #adadad; | |
90 | /*fade-in animation when inserted*/ |
|
90 | /*fade-in animation when inserted*/ | |
91 |
|
91 | |||
92 | -webkit-animation: fadeOut 800ms; |
|
92 | -webkit-animation: fadeOut 800ms; | |
93 | -moz-animation: fadeOut 800ms; |
|
93 | -moz-animation: fadeOut 800ms; | |
94 | animation: fadeOut 800ms; |
|
94 | animation: fadeOut 800ms; | |
95 | -webkit-animation: fadeIn 800ms; |
|
95 | -webkit-animation: fadeIn 800ms; | |
96 | -moz-animation: fadeIn 800ms; |
|
96 | -moz-animation: fadeIn 800ms; | |
97 | animation: fadeIn 800ms; |
|
97 | animation: fadeIn 800ms; | |
98 | vertical-align: middle; |
|
98 | vertical-align: middle; | |
99 | background-color: #f7f7f7; |
|
99 | background-color: #f7f7f7; | |
100 | overflow: visible; |
|
100 | overflow: visible; | |
101 | border: #bbbbbb 1px solid; |
|
101 | border: #bbbbbb 1px solid; | |
102 | outline: none; |
|
102 | outline: none; | |
103 | padding: 3px; |
|
103 | padding: 3px; | |
104 | margin: 0px; |
|
104 | margin: 0px; | |
105 | padding-left: 7px; |
|
105 | padding-left: 7px; | |
106 | font-family: monospace; |
|
106 | font-family: monospace; | |
107 | min-height: 50px; |
|
107 | min-height: 50px; | |
108 | position: absolute; |
|
108 | position: absolute; | |
109 | } |
|
109 | } | |
110 | .pretooltiparrow { |
|
110 | .pretooltiparrow { | |
111 | left: 0px; |
|
111 | left: 0px; | |
112 | margin: 0px; |
|
112 | margin: 0px; | |
113 | top: -16px; |
|
113 | top: -16px; | |
114 | width: 40px; |
|
114 | width: 40px; | |
115 | height: 16px; |
|
115 | height: 16px; | |
116 | overflow: hidden; |
|
116 | overflow: hidden; | |
117 | position: absolute; |
|
117 | position: absolute; | |
118 | } |
|
118 | } | |
119 | .pretooltiparrow:before { |
|
119 | .pretooltiparrow:before { | |
120 | background-color: #f7f7f7; |
|
120 | background-color: #f7f7f7; | |
121 | border: 1px #bbbbbb solid; |
|
121 | border: 1px #bbbbbb solid; | |
122 | z-index: 11; |
|
122 | z-index: 11; | |
123 | content: ""; |
|
123 | content: ""; | |
124 | position: absolute; |
|
124 | position: absolute; | |
125 | left: 15px; |
|
125 | left: 15px; | |
126 | top: 10px; |
|
126 | top: 10px; | |
127 | width: 25px; |
|
127 | width: 25px; | |
128 | height: 25px; |
|
128 | height: 25px; | |
129 | -webkit-transform: rotate(45deg); |
|
129 | -webkit-transform: rotate(45deg); | |
130 | -moz-transform: rotate(45deg); |
|
130 | -moz-transform: rotate(45deg); | |
131 | -ms-transform: rotate(45deg); |
|
131 | -ms-transform: rotate(45deg); | |
132 | -o-transform: rotate(45deg); |
|
132 | -o-transform: rotate(45deg); | |
133 | } |
|
133 | } | |
134 | .tooltip.hide { |
|
|||
135 | -webkit-animation: fadeOut 800ms; |
|
|||
136 | -moz-animation: fadeOut 800ms; |
|
|||
137 | animation: fadeOut 800ms; |
|
|||
138 | opacity: 0; |
|
|||
139 | } |
|
@@ -1,361 +1,361 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 | // Tooltip |
|
8 | // Tooltip | |
9 | //============================================================================ |
|
9 | //============================================================================ | |
10 | // |
|
10 | // | |
11 | // you can set the autocall time by setting `IPython.tooltip.time_before_tooltip` in ms |
|
11 | // you can set the autocall time by setting `IPython.tooltip.time_before_tooltip` in ms | |
12 | // |
|
12 | // | |
13 | // you can configure the differents action of pressing tab several times in a row by |
|
13 | // you can configure the differents action of pressing tab several times in a row by | |
14 | // setting/appending different fonction in the array |
|
14 | // setting/appending different fonction in the array | |
15 | // IPython.tooltip.tabs_functions |
|
15 | // IPython.tooltip.tabs_functions | |
16 | // |
|
16 | // | |
17 | // eg : |
|
17 | // eg : | |
18 | // IPython.tooltip.tabs_functions[4] = function (){console.log('this is the action of the 4th tab pressing')} |
|
18 | // IPython.tooltip.tabs_functions[4] = function (){console.log('this is the action of the 4th tab pressing')} | |
19 | // |
|
19 | // | |
20 | var IPython = (function (IPython) { |
|
20 | var IPython = (function (IPython) { | |
21 | "use strict"; |
|
21 | "use strict"; | |
22 |
|
22 | |||
23 | var utils = IPython.utils; |
|
23 | var utils = IPython.utils; | |
24 |
|
24 | |||
25 | // tooltip constructor |
|
25 | // tooltip constructor | |
26 | var Tooltip = function () { |
|
26 | var Tooltip = function () { | |
27 | var that = this; |
|
27 | var that = this; | |
28 | this.time_before_tooltip = 1200; |
|
28 | this.time_before_tooltip = 1200; | |
29 |
|
29 | |||
30 | // handle to html |
|
30 | // handle to html | |
31 | this.tooltip = $('#tooltip'); |
|
31 | this.tooltip = $('#tooltip'); | |
32 | this._hidden = true; |
|
32 | this._hidden = true; | |
33 |
|
33 | |||
34 | // variable for consecutive call |
|
34 | // variable for consecutive call | |
35 | this._old_cell = null; |
|
35 | this._old_cell = null; | |
36 | this._old_request = null; |
|
36 | this._old_request = null; | |
37 | this._consecutive_counter = 0; |
|
37 | this._consecutive_counter = 0; | |
38 |
|
38 | |||
39 | // 'sticky ?' |
|
39 | // 'sticky ?' | |
40 | this._sticky = false; |
|
40 | this._sticky = false; | |
41 |
|
41 | |||
42 | // contain the button in the upper right corner |
|
42 | // contain the button in the upper right corner | |
43 | this.buttons = $('<div/>').addClass('tooltipbuttons'); |
|
43 | this.buttons = $('<div/>').addClass('tooltipbuttons'); | |
44 |
|
44 | |||
45 | // will contain the docstring |
|
45 | // will contain the docstring | |
46 | this.text = $('<div/>').addClass('tooltiptext').addClass('smalltooltip'); |
|
46 | this.text = $('<div/>').addClass('tooltiptext').addClass('smalltooltip'); | |
47 |
|
47 | |||
48 | // build the buttons menu on the upper right |
|
48 | // build the buttons menu on the upper right | |
49 | // expand the tooltip to see more |
|
49 | // expand the tooltip to see more | |
50 | var expandlink = $('<a/>').attr('href', "#").addClass("ui-corner-all") //rounded corner |
|
50 | var expandlink = $('<a/>').attr('href', "#").addClass("ui-corner-all") //rounded corner | |
51 | .attr('role', "button").attr('id', 'expanbutton').attr('title', 'Grow the tooltip vertically (press tab 2 times)').click(function () { |
|
51 | .attr('role', "button").attr('id', 'expanbutton').attr('title', 'Grow the tooltip vertically (press tab 2 times)').click(function () { | |
52 | that.expand() |
|
52 | that.expand() | |
53 | }).append( |
|
53 | }).append( | |
54 | $('<span/>').text('Expand').addClass('ui-icon').addClass('ui-icon-plus')); |
|
54 | $('<span/>').text('Expand').addClass('ui-icon').addClass('ui-icon-plus')); | |
55 |
|
55 | |||
56 | // open in pager |
|
56 | // open in pager | |
57 | var morelink = $('<a/>').attr('href', "#").attr('role', "button").addClass('ui-button').attr('title', 'show the current docstring in pager (press tab 4 times)'); |
|
57 | var morelink = $('<a/>').attr('href', "#").attr('role', "button").addClass('ui-button').attr('title', 'show the current docstring in pager (press tab 4 times)'); | |
58 | var morespan = $('<span/>').text('Open in Pager').addClass('ui-icon').addClass('ui-icon-arrowstop-l-n'); |
|
58 | var morespan = $('<span/>').text('Open in Pager').addClass('ui-icon').addClass('ui-icon-arrowstop-l-n'); | |
59 | morelink.append(morespan); |
|
59 | morelink.append(morespan); | |
60 | morelink.click(function () { |
|
60 | morelink.click(function () { | |
61 | that.showInPager(); |
|
61 | that.showInPager(); | |
62 | }); |
|
62 | }); | |
63 |
|
63 | |||
64 | // close the tooltip |
|
64 | // close the tooltip | |
65 | var closelink = $('<a/>').attr('href', "#").attr('role', "button").addClass('ui-button'); |
|
65 | var closelink = $('<a/>').attr('href', "#").attr('role', "button").addClass('ui-button'); | |
66 | var closespan = $('<span/>').text('Close').addClass('ui-icon').addClass('ui-icon-close'); |
|
66 | var closespan = $('<span/>').text('Close').addClass('ui-icon').addClass('ui-icon-close'); | |
67 | closelink.append(closespan); |
|
67 | closelink.append(closespan); | |
68 | closelink.click(function () { |
|
68 | closelink.click(function () { | |
69 | that.remove_and_cancel_tooltip(true); |
|
69 | that.remove_and_cancel_tooltip(true); | |
70 | }); |
|
70 | }); | |
71 |
|
71 | |||
72 | this._clocklink = $('<a/>').attr('href', "#"); |
|
72 | this._clocklink = $('<a/>').attr('href', "#"); | |
73 | this._clocklink.attr('role', "button"); |
|
73 | this._clocklink.attr('role', "button"); | |
74 | this._clocklink.addClass('ui-button'); |
|
74 | this._clocklink.addClass('ui-button'); | |
75 | this._clocklink.attr('title', 'Tootip is not dismissed while typing for 10 seconds'); |
|
75 | this._clocklink.attr('title', 'Tootip is not dismissed while typing for 10 seconds'); | |
76 | var clockspan = $('<span/>').text('Close'); |
|
76 | var clockspan = $('<span/>').text('Close'); | |
77 | clockspan.addClass('ui-icon'); |
|
77 | clockspan.addClass('ui-icon'); | |
78 | clockspan.addClass('ui-icon-clock'); |
|
78 | clockspan.addClass('ui-icon-clock'); | |
79 | this._clocklink.append(clockspan); |
|
79 | this._clocklink.append(clockspan); | |
80 | this._clocklink.click(function () { |
|
80 | this._clocklink.click(function () { | |
81 | that.cancel_stick(); |
|
81 | that.cancel_stick(); | |
82 | }); |
|
82 | }); | |
83 |
|
83 | |||
84 |
|
84 | |||
85 |
|
85 | |||
86 |
|
86 | |||
87 | //construct the tooltip |
|
87 | //construct the tooltip | |
88 | // add in the reverse order you want them to appear |
|
88 | // add in the reverse order you want them to appear | |
89 | this.buttons.append(closelink); |
|
89 | this.buttons.append(closelink); | |
90 | this.buttons.append(expandlink); |
|
90 | this.buttons.append(expandlink); | |
91 | this.buttons.append(morelink); |
|
91 | this.buttons.append(morelink); | |
92 | this.buttons.append(this._clocklink); |
|
92 | this.buttons.append(this._clocklink); | |
93 | this._clocklink.hide(); |
|
93 | this._clocklink.hide(); | |
94 |
|
94 | |||
95 |
|
95 | |||
96 | // we need a phony element to make the small arrow |
|
96 | // we need a phony element to make the small arrow | |
97 | // of the tooltip in css |
|
97 | // of the tooltip in css | |
98 | // we will move the arrow later |
|
98 | // we will move the arrow later | |
99 | this.arrow = $('<div/>').addClass('pretooltiparrow'); |
|
99 | this.arrow = $('<div/>').addClass('pretooltiparrow'); | |
100 | this.tooltip.append(this.buttons); |
|
100 | this.tooltip.append(this.buttons); | |
101 | this.tooltip.append(this.arrow); |
|
101 | this.tooltip.append(this.arrow); | |
102 | this.tooltip.append(this.text); |
|
102 | this.tooltip.append(this.text); | |
103 |
|
103 | |||
104 | // function that will be called if you press tab 1, 2, 3... times in a row |
|
104 | // function that will be called if you press tab 1, 2, 3... times in a row | |
105 | this.tabs_functions = [function (cell, text) { |
|
105 | this.tabs_functions = [function (cell, text) { | |
106 | that._request_tooltip(cell, text); |
|
106 | that._request_tooltip(cell, text); | |
107 | IPython.notification_widget.set_message('tab again to expand pager', 2500); |
|
107 | IPython.notification_widget.set_message('tab again to expand pager', 2500); | |
108 | }, function () { |
|
108 | }, function () { | |
109 | that.expand(); |
|
109 | that.expand(); | |
110 | IPython.notification_widget.set_message('tab again to make pager sticky for 10s', 2500); |
|
110 | IPython.notification_widget.set_message('tab again to make pager sticky for 10s', 2500); | |
111 | }, function () { |
|
111 | }, function () { | |
112 | that.stick(); |
|
112 | that.stick(); | |
113 | IPython.notification_widget.set_message('tab again to open help in pager', 2500); |
|
113 | IPython.notification_widget.set_message('tab again to open help in pager', 2500); | |
114 | }, function (cell) { |
|
114 | }, function (cell) { | |
115 | that.cancel_stick(); |
|
115 | that.cancel_stick(); | |
116 | that.showInPager(cell); |
|
116 | that.showInPager(cell); | |
117 | that._cmfocus(); |
|
117 | that._cmfocus(); | |
118 | }]; |
|
118 | }]; | |
119 | // call after all the tabs function above have bee call to clean their effects |
|
119 | // call after all the tabs function above have bee call to clean their effects | |
120 | // if necessary |
|
120 | // if necessary | |
121 | this.reset_tabs_function = function (cell, text) { |
|
121 | this.reset_tabs_function = function (cell, text) { | |
122 | this._old_cell = (cell) ? cell : null; |
|
122 | this._old_cell = (cell) ? cell : null; | |
123 | this._old_request = (text) ? text : null; |
|
123 | this._old_request = (text) ? text : null; | |
124 | this._consecutive_counter = 0; |
|
124 | this._consecutive_counter = 0; | |
125 | } |
|
125 | } | |
126 | }; |
|
126 | }; | |
127 |
|
127 | |||
128 | Tooltip.prototype.showInPager = function (cell) { |
|
128 | Tooltip.prototype.showInPager = function (cell) { | |
129 | // reexecute last call in pager by appending ? to show back in pager |
|
129 | // reexecute last call in pager by appending ? to show back in pager | |
130 | var that = this; |
|
130 | var that = this; | |
131 | var empty = function () {}; |
|
131 | var empty = function () {}; | |
132 | IPython.notebook.kernel.execute( |
|
132 | IPython.notebook.kernel.execute( | |
133 | that.name + '?', { |
|
133 | that.name + '?', { | |
134 | 'execute_reply': empty, |
|
134 | 'execute_reply': empty, | |
135 | 'output': empty, |
|
135 | 'output': empty, | |
136 | 'clear_output': empty, |
|
136 | 'clear_output': empty, | |
137 | 'cell': cell |
|
137 | 'cell': cell | |
138 | }, { |
|
138 | }, { | |
139 | 'silent': false |
|
139 | 'silent': false | |
140 | }); |
|
140 | }); | |
141 | this.remove_and_cancel_tooltip(); |
|
141 | this.remove_and_cancel_tooltip(); | |
142 | this._cmfocus(); |
|
142 | this._cmfocus(); | |
143 | } |
|
143 | } | |
144 |
|
144 | |||
145 | // grow the tooltip verticaly |
|
145 | // grow the tooltip verticaly | |
146 | Tooltip.prototype.expand = function () { |
|
146 | Tooltip.prototype.expand = function () { | |
147 | this.text.removeClass('smalltooltip'); |
|
147 | this.text.removeClass('smalltooltip'); | |
148 | this.text.addClass('bigtooltip'); |
|
148 | this.text.addClass('bigtooltip'); | |
149 | $('#expanbutton').hide('slow'); |
|
149 | $('#expanbutton').hide('slow'); | |
150 | this._cmfocus(); |
|
150 | this._cmfocus(); | |
151 | } |
|
151 | } | |
152 |
|
152 | |||
153 | // deal with all the logic of hiding the tooltip |
|
153 | // deal with all the logic of hiding the tooltip | |
154 | // and reset it's status |
|
154 | // and reset it's status | |
155 | Tooltip.prototype.hide = function () { |
|
155 | Tooltip.prototype._hide = function () { | |
156 |
this.tooltip. |
|
156 | this.tooltip.fadeOut('fast'); | |
157 | $('#expanbutton').show('slow'); |
|
157 | $('#expanbutton').show('slow'); | |
158 | this.text.removeClass('bigtooltip'); |
|
158 | this.text.removeClass('bigtooltip'); | |
159 | this.text.addClass('smalltooltip'); |
|
159 | this.text.addClass('smalltooltip'); | |
160 | // keep scroll top to be sure to always see the first line |
|
160 | // keep scroll top to be sure to always see the first line | |
161 | this.text.scrollTop(0); |
|
161 | this.text.scrollTop(0); | |
162 | this._hidden = true; |
|
162 | this._hidden = true; | |
163 | } |
|
163 | } | |
164 |
|
164 | |||
165 | Tooltip.prototype.remove_and_cancel_tooltip = function (force) { |
|
165 | Tooltip.prototype.remove_and_cancel_tooltip = function (force) { | |
166 | // note that we don't handle closing directly inside the calltip |
|
166 | // note that we don't handle closing directly inside the calltip | |
167 | // as in the completer, because it is not focusable, so won't |
|
167 | // as in the completer, because it is not focusable, so won't | |
168 | // get the event. |
|
168 | // get the event. | |
169 | if (this._sticky == false || force == true) { |
|
169 | if (this._sticky == false || force == true) { | |
170 | this.hide(); |
|
170 | this._hide(); | |
171 | } |
|
171 | } | |
172 | this.cancel_pending(); |
|
172 | this.cancel_pending(); | |
173 |
this.reset_tabs_function |
|
173 | this.reset_tabs_function(); | |
|
174 | this._cmfocus(); | |||
174 | } |
|
175 | } | |
175 |
|
176 | |||
176 | // cancel autocall done after '(' for example. |
|
177 | // cancel autocall done after '(' for example. | |
177 | Tooltip.prototype.cancel_pending = function () { |
|
178 | Tooltip.prototype.cancel_pending = function () { | |
178 | if (this._tooltip_timeout != null) { |
|
179 | if (this._tooltip_timeout != null) { | |
179 | clearTimeout(this._tooltip_timeout); |
|
180 | clearTimeout(this._tooltip_timeout); | |
180 | this._tooltip_timeout = null; |
|
181 | this._tooltip_timeout = null; | |
181 | } |
|
182 | } | |
182 | } |
|
183 | } | |
183 |
|
184 | |||
184 | // will trigger tooltip after timeout |
|
185 | // will trigger tooltip after timeout | |
185 | Tooltip.prototype.pending = function (cell) { |
|
186 | Tooltip.prototype.pending = function (cell) { | |
186 | var that = this; |
|
187 | var that = this; | |
187 | this._tooltip_timeout = setTimeout(function () { |
|
188 | this._tooltip_timeout = setTimeout(function () { | |
188 | that.request(cell) |
|
189 | that.request(cell) | |
189 | }, that.time_before_tooltip); |
|
190 | }, that.time_before_tooltip); | |
190 | } |
|
191 | } | |
191 |
|
192 | |||
192 | Tooltip.prototype._request_tooltip = function (cell, func) { |
|
193 | Tooltip.prototype._request_tooltip = function (cell, func) { | |
193 | // use internally just to make the request to the kernel |
|
194 | // use internally just to make the request to the kernel | |
194 | // Feel free to shorten this logic if you are better |
|
195 | // Feel free to shorten this logic if you are better | |
195 | // than me in regEx |
|
196 | // than me in regEx | |
196 | // basicaly you shoul be able to get xxx.xxx.xxx from |
|
197 | // basicaly you shoul be able to get xxx.xxx.xxx from | |
197 | // something(range(10), kwarg=smth) ; xxx.xxx.xxx( firstarg, rand(234,23), kwarg1=2, |
|
198 | // something(range(10), kwarg=smth) ; xxx.xxx.xxx( firstarg, rand(234,23), kwarg1=2, | |
198 | // remove everything between matchin bracket (need to iterate) |
|
199 | // remove everything between matchin bracket (need to iterate) | |
199 | var matchBracket = /\([^\(\)]+\)/g; |
|
200 | var matchBracket = /\([^\(\)]+\)/g; | |
200 | var endBracket = /\([^\(]*$/g; |
|
201 | var endBracket = /\([^\(]*$/g; | |
201 | var oldfunc = func; |
|
202 | var oldfunc = func; | |
202 |
|
203 | |||
203 | func = func.replace(matchBracket, ""); |
|
204 | func = func.replace(matchBracket, ""); | |
204 | while (oldfunc != func) { |
|
205 | while (oldfunc != func) { | |
205 | oldfunc = func; |
|
206 | oldfunc = func; | |
206 | func = func.replace(matchBracket, ""); |
|
207 | func = func.replace(matchBracket, ""); | |
207 | } |
|
208 | } | |
208 | // remove everything after last open bracket |
|
209 | // remove everything after last open bracket | |
209 | func = func.replace(endBracket, ""); |
|
210 | func = func.replace(endBracket, ""); | |
210 |
|
211 | |||
211 | var re = /[a-z_][0-9a-z._]+$/gi; // casse insensitive |
|
212 | var re = /[a-z_][0-9a-z._]+$/gi; // casse insensitive | |
212 | var callbacks = { |
|
213 | var callbacks = { | |
213 | 'object_info_reply': $.proxy(this.show, this) |
|
214 | 'object_info_reply': $.proxy(this._show, this) | |
214 | } |
|
215 | } | |
215 | var msg_id = IPython.notebook.kernel.object_info_request(re.exec(func), callbacks); |
|
216 | var msg_id = IPython.notebook.kernel.object_info_request(re.exec(func), callbacks); | |
216 | } |
|
217 | } | |
217 |
|
218 | |||
218 | // make an imediate completion request |
|
219 | // make an imediate completion request | |
219 | Tooltip.prototype.request = function (cell) { |
|
220 | Tooltip.prototype.request = function (cell) { | |
220 | // request(codecell) |
|
221 | // request(codecell) | |
221 | // Deal with extracting the text from the cell and counting |
|
222 | // Deal with extracting the text from the cell and counting | |
222 | // call in a row |
|
223 | // call in a row | |
223 | this.cancel_pending(); |
|
224 | this.cancel_pending(); | |
224 | var editor = cell.code_mirror; |
|
225 | var editor = cell.code_mirror; | |
225 | var cursor = editor.getCursor(); |
|
226 | var cursor = editor.getCursor(); | |
226 | var text = editor.getRange({ |
|
227 | var text = editor.getRange({ | |
227 | line: cursor.line, |
|
228 | line: cursor.line, | |
228 | ch: 0 |
|
229 | ch: 0 | |
229 | }, cursor).trim(); |
|
230 | }, cursor).trim(); | |
230 |
|
231 | |||
231 | // need a permanent handel to codemirror for future auto recall |
|
232 | // need a permanent handel to codemirror for future auto recall | |
232 | this.code_mirror = editor; |
|
233 | this.code_mirror = editor; | |
233 |
|
234 | |||
234 | // now we treat the different number of keypress |
|
235 | // now we treat the different number of keypress | |
235 | // first if same cell, same text, increment counter by 1 |
|
236 | // first if same cell, same text, increment counter by 1 | |
236 | if (this._old_cell == cell && this._old_request == text && this._hidden == false) { |
|
237 | if (this._old_cell == cell && this._old_request == text && this._hidden == false) { | |
237 | this._consecutive_counter++; |
|
238 | this._consecutive_counter++; | |
238 | } else { |
|
239 | } else { | |
239 | // else reset |
|
240 | // else reset | |
240 | this.cancel_stick(); |
|
241 | this.cancel_stick(); | |
241 | this.reset_tabs_function (cell, text); |
|
242 | this.reset_tabs_function (cell, text); | |
242 | } |
|
243 | } | |
243 |
|
244 | |||
244 | // don't do anything if line beggin with '(' or is empty |
|
245 | // don't do anything if line beggin with '(' or is empty | |
245 | if (text === "" || text === "(") { |
|
246 | if (text === "" || text === "(") { | |
246 | return; |
|
247 | return; | |
247 | } |
|
248 | } | |
248 |
|
249 | |||
249 | this.tabs_functions[this._consecutive_counter](cell, text); |
|
250 | this.tabs_functions[this._consecutive_counter](cell, text); | |
250 |
|
251 | |||
251 | // then if we are at the end of list function, reset |
|
252 | // then if we are at the end of list function, reset | |
252 | if (this._consecutive_counter == this.tabs_functions.length) this.reset_tabs_function (cell, text); |
|
253 | if (this._consecutive_counter == this.tabs_functions.length) this.reset_tabs_function (cell, text); | |
253 |
|
254 | |||
254 | return; |
|
255 | return; | |
255 | } |
|
256 | } | |
256 |
|
257 | |||
257 | // cancel the option of having the tooltip to stick |
|
258 | // cancel the option of having the tooltip to stick | |
258 | Tooltip.prototype.cancel_stick = function () { |
|
259 | Tooltip.prototype.cancel_stick = function () { | |
259 | clearTimeout(this._stick_timeout); |
|
260 | clearTimeout(this._stick_timeout); | |
260 | this._stick_timeout = null; |
|
261 | this._stick_timeout = null; | |
261 | this._clocklink.hide('slow'); |
|
262 | this._clocklink.hide('slow'); | |
262 | this._sticky = false; |
|
263 | this._sticky = false; | |
263 | } |
|
264 | } | |
264 |
|
265 | |||
265 | // put the tooltip in a sicky state for 10 seconds |
|
266 | // put the tooltip in a sicky state for 10 seconds | |
266 | // it won't be removed by remove_and_cancell() unless you called with |
|
267 | // it won't be removed by remove_and_cancell() unless you called with | |
267 | // the first parameter set to true. |
|
268 | // the first parameter set to true. | |
268 | // remove_and_cancell_tooltip(true) |
|
269 | // remove_and_cancell_tooltip(true) | |
269 | Tooltip.prototype.stick = function (time) { |
|
270 | Tooltip.prototype.stick = function (time) { | |
270 | time = (time != undefined) ? time : 10; |
|
271 | time = (time != undefined) ? time : 10; | |
271 | var that = this; |
|
272 | var that = this; | |
272 | this._sticky = true; |
|
273 | this._sticky = true; | |
273 | this._clocklink.show('slow'); |
|
274 | this._clocklink.show('slow'); | |
274 | this._stick_timeout = setTimeout(function () { |
|
275 | this._stick_timeout = setTimeout(function () { | |
275 | that._sticky = false; |
|
276 | that._sticky = false; | |
276 | that._clocklink.hide('slow'); |
|
277 | that._clocklink.hide('slow'); | |
277 | }, time * 1000); |
|
278 | }, time * 1000); | |
278 | } |
|
279 | } | |
279 |
|
280 | |||
280 | // should be called with the kernel reply to actually show the tooltip |
|
281 | // should be called with the kernel reply to actually show the tooltip | |
281 | Tooltip.prototype.show = function (reply) { |
|
282 | Tooltip.prototype._show = function (reply) { | |
282 | // move the bubble if it is not hidden |
|
283 | // move the bubble if it is not hidden | |
283 | // otherwise fade it |
|
284 | // otherwise fade it | |
284 | this.name = reply.name; |
|
285 | this.name = reply.name; | |
285 |
|
286 | |||
286 | // do some math to have the tooltip arrow on more or less on left or right |
|
287 | // do some math to have the tooltip arrow on more or less on left or right | |
287 | // width of the editor |
|
288 | // width of the editor | |
288 | var w = $(this.code_mirror.getScrollerElement()).width(); |
|
289 | var w = $(this.code_mirror.getScrollerElement()).width(); | |
289 | // ofset of the editor |
|
290 | // ofset of the editor | |
290 | var o = $(this.code_mirror.getScrollerElement()).offset(); |
|
291 | var o = $(this.code_mirror.getScrollerElement()).offset(); | |
291 | var pos = this.code_mirror.cursorCoords(); |
|
292 | var pos = this.code_mirror.cursorCoords(); | |
292 | var xinit = pos.x; |
|
293 | var xinit = pos.x; | |
293 | var xinter = o.left + (xinit - o.left) / w * (w - 450); |
|
294 | var xinter = o.left + (xinit - o.left) / w * (w - 450); | |
294 | var posarrowleft = xinit - xinter; |
|
295 | var posarrowleft = xinit - xinter; | |
295 |
|
296 | |||
296 |
|
297 | |||
297 | if (this._hidden == false) { |
|
298 | if (this._hidden == false) { | |
298 | this.tooltip.animate({ |
|
299 | this.tooltip.animate({ | |
299 | 'left': xinter - 30 + 'px', |
|
300 | 'left': xinter - 30 + 'px', | |
300 | 'top': (pos.yBot + 10) + 'px' |
|
301 | 'top': (pos.yBot + 10) + 'px' | |
301 | }); |
|
302 | }); | |
302 | } else { |
|
303 | } else { | |
303 | this.tooltip.css({ |
|
304 | this.tooltip.css({ | |
304 | 'left': xinter - 30 + 'px' |
|
305 | 'left': xinter - 30 + 'px' | |
305 | }); |
|
306 | }); | |
306 | this.tooltip.css({ |
|
307 | this.tooltip.css({ | |
307 | 'top': (pos.yBot + 10) + 'px' |
|
308 | 'top': (pos.yBot + 10) + 'px' | |
308 | }); |
|
309 | }); | |
309 | } |
|
310 | } | |
310 | this.arrow.animate({ |
|
311 | this.arrow.animate({ | |
311 | 'left': posarrowleft + 'px' |
|
312 | 'left': posarrowleft + 'px' | |
312 | }); |
|
313 | }); | |
313 |
this.tooltip. |
|
314 | this.tooltip.fadeIn('fast'); | |
314 | this.tooltip.removeClass('hide'); |
|
|||
315 | this._hidden = false; |
|
315 | this._hidden = false; | |
316 |
|
316 | |||
317 | // build docstring |
|
317 | // build docstring | |
318 | var defstring = reply.call_def; |
|
318 | var defstring = reply.call_def; | |
319 | if (defstring == null) { |
|
319 | if (defstring == null) { | |
320 | defstring = reply.init_definition; |
|
320 | defstring = reply.init_definition; | |
321 | } |
|
321 | } | |
322 | if (defstring == null) { |
|
322 | if (defstring == null) { | |
323 | defstring = reply.definition; |
|
323 | defstring = reply.definition; | |
324 | } |
|
324 | } | |
325 |
|
325 | |||
326 | var docstring = reply.call_docstring; |
|
326 | var docstring = reply.call_docstring; | |
327 | if (docstring == null) { |
|
327 | if (docstring == null) { | |
328 | docstring = reply.init_docstring; |
|
328 | docstring = reply.init_docstring; | |
329 | } |
|
329 | } | |
330 | if (docstring == null) { |
|
330 | if (docstring == null) { | |
331 | docstring = reply.docstring; |
|
331 | docstring = reply.docstring; | |
332 | } |
|
332 | } | |
333 | if (docstring == null) { |
|
333 | if (docstring == null) { | |
334 | docstring = "<empty docstring>"; |
|
334 | docstring = "<empty docstring>"; | |
335 | } |
|
335 | } | |
336 |
|
336 | |||
337 | this.text.children().remove(); |
|
337 | this.text.children().remove(); | |
338 |
|
338 | |||
339 | var pre = $('<pre/>').html(utils.fixConsole(docstring)); |
|
339 | var pre = $('<pre/>').html(utils.fixConsole(docstring)); | |
340 | if (defstring) { |
|
340 | if (defstring) { | |
341 | var defstring_html = $('<pre/>').html(utils.fixConsole(defstring)); |
|
341 | var defstring_html = $('<pre/>').html(utils.fixConsole(defstring)); | |
342 | this.text.append(defstring_html); |
|
342 | this.text.append(defstring_html); | |
343 | } |
|
343 | } | |
344 | this.text.append(pre); |
|
344 | this.text.append(pre); | |
345 | // keep scroll top to be sure to always see the first line |
|
345 | // keep scroll top to be sure to always see the first line | |
346 | this.text.scrollTop(0); |
|
346 | this.text.scrollTop(0); | |
347 | } |
|
347 | } | |
348 |
|
348 | |||
349 | // convenient funciton to have the correct codemirror back into focus |
|
349 | // convenient funciton to have the correct codemirror back into focus | |
350 | Tooltip.prototype._cmfocus = function () { |
|
350 | Tooltip.prototype._cmfocus = function () { | |
351 | var cm = this.code_mirror; |
|
351 | var cm = this.code_mirror; | |
352 | setTimeout(function () { |
|
352 | setTimeout(function () { | |
353 | cm.focus(); |
|
353 | cm.focus(); | |
354 | }, 50); |
|
354 | }, 50); | |
355 | } |
|
355 | } | |
356 |
|
356 | |||
357 | IPython.Tooltip = Tooltip; |
|
357 | IPython.Tooltip = Tooltip; | |
358 |
|
358 | |||
359 | return IPython; |
|
359 | return IPython; | |
360 |
|
360 | |||
361 | }(IPython)); |
|
361 | }(IPython)); |
@@ -1,167 +1,159 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 | /** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot |
|
7 | /** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot | |
8 | * of chance of beeing generated from the ../less/[samename].less file, you can |
|
8 | * of chance of beeing generated from the ../less/[samename].less file, you can | |
9 | * try to get back the less file by reverting somme commit in history |
|
9 | * try to get back the less file by reverting somme commit in history | |
10 | **/ |
|
10 | **/ | |
11 |
|
11 | |||
12 | /* |
|
12 | /* | |
13 | * We'll try to get something pretty, so we |
|
13 | * We'll try to get something pretty, so we | |
14 | * have some strange css to have the scroll bar on |
|
14 | * have some strange css to have the scroll bar on | |
15 |
* the left |
|
15 | * the left with fix button on the top right of the tooltip | |
16 | */ |
|
16 | */ | |
17 |
|
17 | |||
18 | // double slash comment are remove by less compilation |
|
18 | // double slash comment are remove by less compilation | |
19 | // ** |
|
19 | // ** | |
20 | // * Less mixins |
|
20 | // * Less mixins | |
21 | // **/ |
|
21 | // **/ | |
22 |
|
22 | |||
23 | // Four color of the background |
|
23 | // Four color of the background | |
24 | @c4 : rgb(247,247,247); |
|
24 | @c4 : rgb(247,247,247); | |
25 | @bordercolor : #BBB; |
|
25 | @bordercolor : #BBB; | |
26 | @borderwidth : 1px; |
|
26 | @borderwidth : 1px; | |
27 |
|
27 | |||
28 | .dropshadow(){ |
|
28 | .dropshadow(){ | |
29 | -moz-box-shadow: 0px 6px 10px -1px #adadad; |
|
29 | -moz-box-shadow: 0px 6px 10px -1px #adadad; | |
30 | -webkit-box-shadow: 0px 6px 10px -1px #adadad; |
|
30 | -webkit-box-shadow: 0px 6px 10px -1px #adadad; | |
31 | box-shadow: 0px 6px 10px -1px #adadad; |
|
31 | box-shadow: 0px 6px 10px -1px #adadad; | |
32 | } |
|
32 | } | |
33 |
|
33 | |||
34 | // smoth height adaptation |
|
34 | // smoth height adaptation | |
35 | .smoothheight(@t:1s) { |
|
35 | .smoothheight(@t:1s) { | |
36 | -webkit-transition-property: height; |
|
36 | -webkit-transition-property: height; | |
37 | -webkit-transition-duration: 1s; |
|
37 | -webkit-transition-duration: 1s; | |
38 | -moz-transition-property: height; |
|
38 | -moz-transition-property: height; | |
39 | -moz-transition-duration: 1s; |
|
39 | -moz-transition-duration: 1s; | |
40 | transition-property: height; |
|
40 | transition-property: height; | |
41 | transition-duration: 1s; |
|
41 | transition-duration: 1s; | |
42 | } |
|
42 | } | |
43 |
|
43 | |||
44 | @-moz-keyframes fadeOut { |
|
44 | @-moz-keyframes fadeOut { | |
45 | from {opacity:1;} |
|
45 | from {opacity:1;} | |
46 | to {opacity:0;} |
|
46 | to {opacity:0;} | |
47 | } |
|
47 | } | |
48 |
|
48 | |||
49 | @-webkit-keyframes fadeOut { |
|
49 | @-webkit-keyframes fadeOut { | |
50 | from {opacity:1;} |
|
50 | from {opacity:1;} | |
51 | to {opacity:0;} |
|
51 | to {opacity:0;} | |
52 | } |
|
52 | } | |
53 |
|
53 | |||
54 | //@keyframes fadeOut { |
|
54 | //@keyframes fadeOut { | |
55 | // from {opacity:1;} |
|
55 | // from {opacity:1;} | |
56 | // to {opacity:0;} |
|
56 | // to {opacity:0;} | |
57 | //} |
|
57 | //} | |
58 |
|
58 | |||
59 | @-moz-keyframes fadeIn { |
|
59 | @-moz-keyframes fadeIn { | |
60 | from {opacity:0;} |
|
60 | from {opacity:0;} | |
61 | to {opacity:1;} |
|
61 | to {opacity:1;} | |
62 | } |
|
62 | } | |
63 |
|
63 | |||
64 | @-webkit-keyframes fadeIn { |
|
64 | @-webkit-keyframes fadeIn { | |
65 | from {opacity:0;} |
|
65 | from {opacity:0;} | |
66 | to {opacity:1;} |
|
66 | to {opacity:1;} | |
67 | } |
|
67 | } | |
68 |
|
68 | |||
69 | //@keyframes fadeIn { |
|
69 | //@keyframes fadeIn { | |
70 | // from {opacity:0;} |
|
70 | // from {opacity:0;} | |
71 | // to {opacity:1;} |
|
71 | // to {opacity:1;} | |
72 | //} |
|
72 | //} | |
73 |
|
73 | |||
74 | .tooltip a { |
|
74 | .tooltip a { | |
75 | float:right; |
|
75 | float:right; | |
76 | } |
|
76 | } | |
77 |
|
77 | |||
78 | /*properties of tooltip after "expand"*/ |
|
78 | /*properties of tooltip after "expand"*/ | |
79 | .bigtooltip { |
|
79 | .bigtooltip { | |
80 | overflow: auto; |
|
80 | overflow: auto; | |
81 | height: 200px; |
|
81 | height: 200px; | |
82 | .smoothheight(); |
|
82 | .smoothheight(); | |
83 | } |
|
83 | } | |
84 |
|
84 | |||
85 | /*properties of tooltip before "expand"*/ |
|
85 | /*properties of tooltip before "expand"*/ | |
86 | .smalltooltip{ |
|
86 | .smalltooltip{ | |
87 | .smoothheight(); |
|
87 | .smoothheight(); | |
88 | text-overflow: ellipsis; |
|
88 | text-overflow: ellipsis; | |
89 | overflow: hidden; |
|
89 | overflow: hidden; | |
90 | height:80px; |
|
90 | height:80px; | |
91 | } |
|
91 | } | |
92 |
|
92 | |||
93 | .tooltipbuttons |
|
93 | .tooltipbuttons | |
94 | { |
|
94 | { | |
95 | position: absolute; |
|
95 | position: absolute; | |
96 | padding-right : 15px; |
|
96 | padding-right : 15px; | |
97 | top : 0px; |
|
97 | top : 0px; | |
98 | right:0px; |
|
98 | right:0px; | |
99 | } |
|
99 | } | |
100 |
|
100 | |||
101 | .tooltiptext |
|
101 | .tooltiptext | |
102 | { |
|
102 | { | |
103 | /*avoid the button to overlap on some docstring*/ |
|
103 | /*avoid the button to overlap on some docstring*/ | |
104 | padding-right:30px |
|
104 | padding-right:30px | |
105 | } |
|
105 | } | |
106 |
|
106 | |||
107 | .tooltip { |
|
107 | .tooltip { | |
108 | max-width:700px; |
|
108 | max-width:700px; | |
109 | border-radius: 4px; |
|
109 | border-radius: 4px; | |
110 | .dropshadow; |
|
110 | .dropshadow; | |
111 | /*fade-in animation when inserted*/ |
|
111 | /*fade-in animation when inserted*/ | |
112 | -webkit-animation: fadeOut 800ms; |
|
112 | -webkit-animation: fadeOut 800ms; | |
113 | -moz-animation: fadeOut 800ms; |
|
113 | -moz-animation: fadeOut 800ms; | |
114 | animation: fadeOut 800ms; |
|
114 | animation: fadeOut 800ms; | |
115 | -webkit-animation: fadeIn 800ms; |
|
115 | -webkit-animation: fadeIn 800ms; | |
116 | -moz-animation: fadeIn 800ms; |
|
116 | -moz-animation: fadeIn 800ms; | |
117 | animation: fadeIn 800ms; |
|
117 | animation: fadeIn 800ms; | |
118 | vertical-align: middle; |
|
118 | vertical-align: middle; | |
119 | background-color: @c4; |
|
119 | background-color: @c4; | |
120 |
|
120 | |||
121 | overflow : visible; |
|
121 | overflow : visible; | |
122 | border: @bordercolor @borderwidth solid; |
|
122 | border: @bordercolor @borderwidth solid; | |
123 | outline: none; |
|
123 | outline: none; | |
124 | padding: 3px; |
|
124 | padding: 3px; | |
125 | margin: 0px; |
|
125 | margin: 0px; | |
126 | padding-left:7px; |
|
126 | padding-left:7px; | |
127 | font-family: monospace; |
|
127 | font-family: monospace; | |
128 | min-height:50px; |
|
128 | min-height:50px; | |
129 | position: absolute; |
|
129 | position: absolute; | |
130 | } |
|
130 | } | |
131 |
|
131 | |||
132 |
|
132 | |||
133 | .pretooltiparrow { |
|
133 | .pretooltiparrow { | |
134 | left: 0px; |
|
134 | left: 0px; | |
135 | margin: 0px; |
|
135 | margin: 0px; | |
136 | top: -16px; |
|
136 | top: -16px; | |
137 | width: 40px; |
|
137 | width: 40px; | |
138 | height: 16px; |
|
138 | height: 16px; | |
139 | overflow: hidden; |
|
139 | overflow: hidden; | |
140 | position: absolute; |
|
140 | position: absolute; | |
141 |
|
141 | |||
142 | } |
|
142 | } | |
143 |
|
143 | |||
144 | .pretooltiparrow:before { |
|
144 | .pretooltiparrow:before { | |
145 | background-color : @c4; |
|
145 | background-color : @c4; | |
146 | border : @borderwidth @bordercolor solid; |
|
146 | border : @borderwidth @bordercolor solid; | |
147 | z-index:11; |
|
147 | z-index:11; | |
148 | content: ""; |
|
148 | content: ""; | |
149 | position: absolute; |
|
149 | position: absolute; | |
150 | left: 15px; |
|
150 | left: 15px; | |
151 | top: 10px; |
|
151 | top: 10px; | |
152 | width: 25px; |
|
152 | width: 25px; | |
153 | height: 25px; |
|
153 | height: 25px; | |
154 | @theta : 45deg; |
|
154 | @theta : 45deg; | |
155 | -webkit-transform: rotate(@theta); |
|
155 | -webkit-transform: rotate(@theta); | |
156 | -moz-transform: rotate(@theta); |
|
156 | -moz-transform: rotate(@theta); | |
157 | -ms-transform: rotate(@theta); |
|
157 | -ms-transform: rotate(@theta); | |
158 | -o-transform: rotate(@theta); |
|
158 | -o-transform: rotate(@theta); | |
159 | } |
|
159 | } | |
160 |
|
||||
161 | .tooltip.hide |
|
|||
162 | { |
|
|||
163 | -webkit-animation: fadeOut 800ms; |
|
|||
164 | -moz-animation: fadeOut 800ms; |
|
|||
165 | animation: fadeOut 800ms; |
|
|||
166 | opacity : 0; |
|
|||
167 | } |
|
@@ -1,241 +1,241 b'' | |||||
1 | {% extends page.html %} |
|
1 | {% extends page.html %} | |
2 | {% block stylesheet %} |
|
2 | {% block stylesheet %} | |
3 |
|
3 | |||
4 | {% if mathjax_url %} |
|
4 | {% if mathjax_url %} | |
5 | <script type="text/javascript" src="{{mathjax_url}}?config=TeX-AMS_HTML" charset="utf-8"></script> |
|
5 | <script type="text/javascript" src="{{mathjax_url}}?config=TeX-AMS_HTML" charset="utf-8"></script> | |
6 | {% end %} |
|
6 | {% end %} | |
7 | <script type="text/javascript"> |
|
7 | <script type="text/javascript"> | |
8 | // MathJax disabled, set as null to distingish from *missing* MathJax, |
|
8 | // MathJax disabled, set as null to distingish from *missing* MathJax, | |
9 | // where it will be undefined, and should prompt a dialog later. |
|
9 | // where it will be undefined, and should prompt a dialog later. | |
10 | window.mathjax_url = "{{mathjax_url}}"; |
|
10 | window.mathjax_url = "{{mathjax_url}}"; | |
11 | </script> |
|
11 | </script> | |
12 |
|
12 | |||
13 | <link rel="stylesheet" href="{{ static_url("codemirror/lib/codemirror.css") }}"> |
|
13 | <link rel="stylesheet" href="{{ static_url("codemirror/lib/codemirror.css") }}"> | |
14 | <link rel="stylesheet" href="{{ static_url("codemirror/theme/ipython.css") }}"> |
|
14 | <link rel="stylesheet" href="{{ static_url("codemirror/theme/ipython.css") }}"> | |
15 |
|
15 | |||
16 | <link rel="stylesheet" href="{{ static_url("prettify/prettify.css") }}"/> |
|
16 | <link rel="stylesheet" href="{{ static_url("prettify/prettify.css") }}"/> | |
17 |
|
17 | |||
18 | <link rel="stylesheet" href="{{ static_url("css/notebook.css") }}" type="text/css" /> |
|
18 | <link rel="stylesheet" href="{{ static_url("css/notebook.css") }}" type="text/css" /> | |
19 | <link rel="stylesheet" href="{{ static_url("css/tooltip.css") }}" type="text/css" /> |
|
19 | <link rel="stylesheet" href="{{ static_url("css/tooltip.css") }}" type="text/css" /> | |
20 | <link rel="stylesheet" href="{{ static_url("css/renderedhtml.css") }}" type="text/css" /> |
|
20 | <link rel="stylesheet" href="{{ static_url("css/renderedhtml.css") }}" type="text/css" /> | |
21 |
|
21 | |||
22 | {% end %} |
|
22 | {% end %} | |
23 |
|
23 | |||
24 |
|
24 | |||
25 | {% block params %} |
|
25 | {% block params %} | |
26 |
|
26 | |||
27 | data-project={{project}} |
|
27 | data-project={{project}} | |
28 | data-base-project-url={{base_project_url}} |
|
28 | data-base-project-url={{base_project_url}} | |
29 | data-base-kernel-url={{base_kernel_url}} |
|
29 | data-base-kernel-url={{base_kernel_url}} | |
30 | data-read-only={{read_only and not logged_in}} |
|
30 | data-read-only={{read_only and not logged_in}} | |
31 | data-notebook-id={{notebook_id}} |
|
31 | data-notebook-id={{notebook_id}} | |
32 |
|
32 | |||
33 | {% end %} |
|
33 | {% end %} | |
34 |
|
34 | |||
35 |
|
35 | |||
36 | {% block header %} |
|
36 | {% block header %} | |
37 |
|
37 | |||
38 | <span id="save_widget"> |
|
38 | <span id="save_widget"> | |
39 | <span id="notebook_name"></span> |
|
39 | <span id="notebook_name"></span> | |
40 | <span id="save_status"></span> |
|
40 | <span id="save_status"></span> | |
41 | </span> |
|
41 | </span> | |
42 |
|
42 | |||
43 | {% end %} |
|
43 | {% end %} | |
44 |
|
44 | |||
45 |
|
45 | |||
46 | {% block site %} |
|
46 | {% block site %} | |
47 |
|
47 | |||
48 | <div id="menubar_container"> |
|
48 | <div id="menubar_container"> | |
49 | <div id="menubar"> |
|
49 | <div id="menubar"> | |
50 | <ul id="menus"> |
|
50 | <ul id="menus"> | |
51 | <li><a href="#">File</a> |
|
51 | <li><a href="#">File</a> | |
52 | <ul> |
|
52 | <ul> | |
53 | <li id="new_notebook"><a href="#">New</a></li> |
|
53 | <li id="new_notebook"><a href="#">New</a></li> | |
54 | <li id="open_notebook"><a href="#">Open...</a></li> |
|
54 | <li id="open_notebook"><a href="#">Open...</a></li> | |
55 | <hr/> |
|
55 | <hr/> | |
56 | <li id="copy_notebook"><a href="#">Make a Copy...</a></li> |
|
56 | <li id="copy_notebook"><a href="#">Make a Copy...</a></li> | |
57 | <li id="rename_notebook"><a href="#">Rename...</a></li> |
|
57 | <li id="rename_notebook"><a href="#">Rename...</a></li> | |
58 | <li id="save_notebook"><a href="#">Save</a></li> |
|
58 | <li id="save_notebook"><a href="#">Save</a></li> | |
59 | <hr/> |
|
59 | <hr/> | |
60 | <li><a href="#">Download as</a> |
|
60 | <li><a href="#">Download as</a> | |
61 | <ul> |
|
61 | <ul> | |
62 | <li id="download_ipynb"><a href="#">IPython (.ipynb)</a></li> |
|
62 | <li id="download_ipynb"><a href="#">IPython (.ipynb)</a></li> | |
63 | <li id="download_py"><a href="#">Python (.py)</a></li> |
|
63 | <li id="download_py"><a href="#">Python (.py)</a></li> | |
64 | </ul> |
|
64 | </ul> | |
65 | </li> |
|
65 | </li> | |
66 | <hr/> |
|
66 | <hr/> | |
67 | <li id="print_notebook"><a href="/{{notebook_id}}/print" target="_blank">Print View</a></li> |
|
67 | <li id="print_notebook"><a href="/{{notebook_id}}/print" target="_blank">Print View</a></li> | |
68 | <hr/> |
|
68 | <hr/> | |
69 | <li id="kill_and_exit"><a href="#" >Close and halt</a></li> |
|
69 | <li id="kill_and_exit"><a href="#" >Close and halt</a></li> | |
70 | </ul> |
|
70 | </ul> | |
71 | </li> |
|
71 | </li> | |
72 | <li><a href="#">Edit</a> |
|
72 | <li><a href="#">Edit</a> | |
73 | <ul> |
|
73 | <ul> | |
74 | <li id="cut_cell"><a href="#">Cut Cell</a></li> |
|
74 | <li id="cut_cell"><a href="#">Cut Cell</a></li> | |
75 | <li id="copy_cell"><a href="#">Copy Cell</a></li> |
|
75 | <li id="copy_cell"><a href="#">Copy Cell</a></li> | |
76 | <li id="paste_cell" class="ui-state-disabled"><a href="#">Paste Cell</a></li> |
|
76 | <li id="paste_cell" class="ui-state-disabled"><a href="#">Paste Cell</a></li> | |
77 | <li id="paste_cell_above" class="ui-state-disabled"><a href="#">Paste Cell Above</a></li> |
|
77 | <li id="paste_cell_above" class="ui-state-disabled"><a href="#">Paste Cell Above</a></li> | |
78 | <li id="paste_cell_below" class="ui-state-disabled"><a href="#">Paste Cell Below</a></li> |
|
78 | <li id="paste_cell_below" class="ui-state-disabled"><a href="#">Paste Cell Below</a></li> | |
79 | <li id="delete_cell"><a href="#">Delete</a></li> |
|
79 | <li id="delete_cell"><a href="#">Delete</a></li> | |
80 | <hr/> |
|
80 | <hr/> | |
81 | <li id="split_cell"><a href="#">Split Cell</a></li> |
|
81 | <li id="split_cell"><a href="#">Split Cell</a></li> | |
82 | <li id="merge_cell_above"><a href="#">Merge Cell Above</a></li> |
|
82 | <li id="merge_cell_above"><a href="#">Merge Cell Above</a></li> | |
83 | <li id="merge_cell_below"><a href="#">Merge Cell Below</a></li> |
|
83 | <li id="merge_cell_below"><a href="#">Merge Cell Below</a></li> | |
84 | <hr/> |
|
84 | <hr/> | |
85 | <li id="move_cell_up"><a href="#">Move Cell Up</a></li> |
|
85 | <li id="move_cell_up"><a href="#">Move Cell Up</a></li> | |
86 | <li id="move_cell_down"><a href="#">Move Cell Down</a></li> |
|
86 | <li id="move_cell_down"><a href="#">Move Cell Down</a></li> | |
87 | <hr/> |
|
87 | <hr/> | |
88 | <li id="select_previous"><a href="#">Select Previous Cell</a></li> |
|
88 | <li id="select_previous"><a href="#">Select Previous Cell</a></li> | |
89 | <li id="select_next"><a href="#">Select Next Cell</a></li> |
|
89 | <li id="select_next"><a href="#">Select Next Cell</a></li> | |
90 | </ul> |
|
90 | </ul> | |
91 | </li> |
|
91 | </li> | |
92 | <li><a href="#">View</a> |
|
92 | <li><a href="#">View</a> | |
93 | <ul> |
|
93 | <ul> | |
94 | <li id="toggle_header"><a href="#">Toggle Header</a></li> |
|
94 | <li id="toggle_header"><a href="#">Toggle Header</a></li> | |
95 | <li id="toggle_toolbar"><a href="#">Toggle Toolbar</a></li> |
|
95 | <li id="toggle_toolbar"><a href="#">Toggle Toolbar</a></li> | |
96 | </ul> |
|
96 | </ul> | |
97 | </li> |
|
97 | </li> | |
98 | <li><a href="#">Insert</a> |
|
98 | <li><a href="#">Insert</a> | |
99 | <ul> |
|
99 | <ul> | |
100 | <li id="insert_cell_above"><a href="#">Insert Cell Above</a></li> |
|
100 | <li id="insert_cell_above"><a href="#">Insert Cell Above</a></li> | |
101 | <li id="insert_cell_below"><a href="#">Insert Cell Below</a></li> |
|
101 | <li id="insert_cell_below"><a href="#">Insert Cell Below</a></li> | |
102 | </ul> |
|
102 | </ul> | |
103 | </li> |
|
103 | </li> | |
104 | <li><a href="#">Cell</a> |
|
104 | <li><a href="#">Cell</a> | |
105 | <ul> |
|
105 | <ul> | |
106 | <li id="run_cell"><a href="#">Run</a></li> |
|
106 | <li id="run_cell"><a href="#">Run</a></li> | |
107 | <li id="run_cell_in_place"><a href="#">Run in Place</a></li> |
|
107 | <li id="run_cell_in_place"><a href="#">Run in Place</a></li> | |
108 | <li id="run_all_cells"><a href="#">Run All</a></li> |
|
108 | <li id="run_all_cells"><a href="#">Run All</a></li> | |
109 | <hr/> |
|
109 | <hr/> | |
110 | <li id="to_code"><a href="#">Code</a></li> |
|
110 | <li id="to_code"><a href="#">Code</a></li> | |
111 | <li id="to_markdown"><a href="#">Markdown </a></li> |
|
111 | <li id="to_markdown"><a href="#">Markdown </a></li> | |
112 | <li id="to_raw"><a href="#">Raw Text</a></li> |
|
112 | <li id="to_raw"><a href="#">Raw Text</a></li> | |
113 | <li id="to_heading1"><a href="#">Heading 1</a></li> |
|
113 | <li id="to_heading1"><a href="#">Heading 1</a></li> | |
114 | <li id="to_heading2"><a href="#">Heading 2</a></li> |
|
114 | <li id="to_heading2"><a href="#">Heading 2</a></li> | |
115 | <li id="to_heading3"><a href="#">Heading 3</a></li> |
|
115 | <li id="to_heading3"><a href="#">Heading 3</a></li> | |
116 | <li id="to_heading4"><a href="#">Heading 4</a></li> |
|
116 | <li id="to_heading4"><a href="#">Heading 4</a></li> | |
117 | <li id="to_heading5"><a href="#">Heading 5</a></li> |
|
117 | <li id="to_heading5"><a href="#">Heading 5</a></li> | |
118 | <li id="to_heading6"><a href="#">Heading 6</a></li> |
|
118 | <li id="to_heading6"><a href="#">Heading 6</a></li> | |
119 | <hr/> |
|
119 | <hr/> | |
120 | <li id="toggle_output"><a href="#">Toggle Output</a></li> |
|
120 | <li id="toggle_output"><a href="#">Toggle Output</a></li> | |
121 | <li id="clear_all_output"><a href="#">Clear All Output</a></li> |
|
121 | <li id="clear_all_output"><a href="#">Clear All Output</a></li> | |
122 | </ul> |
|
122 | </ul> | |
123 | </li> |
|
123 | </li> | |
124 | <li><a href="#">Kernel</a> |
|
124 | <li><a href="#">Kernel</a> | |
125 | <ul> |
|
125 | <ul> | |
126 | <li id="int_kernel"><a href="#">Interrupt</a></li> |
|
126 | <li id="int_kernel"><a href="#">Interrupt</a></li> | |
127 | <li id="restart_kernel"><a href="#">Restart</a></li> |
|
127 | <li id="restart_kernel"><a href="#">Restart</a></li> | |
128 | </ul> |
|
128 | </ul> | |
129 | </li> |
|
129 | </li> | |
130 | <li><a href="#">Help</a> |
|
130 | <li><a href="#">Help</a> | |
131 | <ul> |
|
131 | <ul> | |
132 | <li><a href="http://ipython.org/documentation.html" target="_blank">IPython Help</a></li> |
|
132 | <li><a href="http://ipython.org/documentation.html" target="_blank">IPython Help</a></li> | |
133 | <li><a href="http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html" target="_blank">Notebook Help</a></li> |
|
133 | <li><a href="http://ipython.org/ipython-doc/stable/interactive/htmlnotebook.html" target="_blank">Notebook Help</a></li> | |
134 | <li id="keyboard_shortcuts"><a href="#">Keyboard Shortcuts</a></li> |
|
134 | <li id="keyboard_shortcuts"><a href="#">Keyboard Shortcuts</a></li> | |
135 | <hr/> |
|
135 | <hr/> | |
136 | <li><a href="http://docs.python.org" target="_blank">Python</a></li> |
|
136 | <li><a href="http://docs.python.org" target="_blank">Python</a></li> | |
137 | <li><a href="http://docs.scipy.org/doc/numpy/reference/" target="_blank">NumPy</a></li> |
|
137 | <li><a href="http://docs.scipy.org/doc/numpy/reference/" target="_blank">NumPy</a></li> | |
138 | <li><a href="http://docs.scipy.org/doc/scipy/reference/" target="_blank">SciPy</a></li> |
|
138 | <li><a href="http://docs.scipy.org/doc/scipy/reference/" target="_blank">SciPy</a></li> | |
139 | <li><a href="http://docs.sympy.org/dev/index.html" target="_blank">SymPy</a></li> |
|
139 | <li><a href="http://docs.sympy.org/dev/index.html" target="_blank">SymPy</a></li> | |
140 | <li><a href="http://matplotlib.sourceforge.net/" target="_blank">Matplotlib</a></li> |
|
140 | <li><a href="http://matplotlib.sourceforge.net/" target="_blank">Matplotlib</a></li> | |
141 | </ul> |
|
141 | </ul> | |
142 | </li> |
|
142 | </li> | |
143 | </ul> |
|
143 | </ul> | |
144 |
|
144 | |||
145 | </div> |
|
145 | </div> | |
146 | <div id="notification"></div> |
|
146 | <div id="notification"></div> | |
147 | </div> |
|
147 | </div> | |
148 |
|
148 | |||
149 |
|
149 | |||
150 | <div id="toolbar"> |
|
150 | <div id="toolbar"> | |
151 |
|
151 | |||
152 | <span> |
|
152 | <span> | |
153 | <button id="save_b">Save</button> |
|
153 | <button id="save_b">Save</button> | |
154 | </span> |
|
154 | </span> | |
155 | <span id="cut_copy_paste"> |
|
155 | <span id="cut_copy_paste"> | |
156 | <button id="cut_b" title="Cut Cell">Cut Cell</button> |
|
156 | <button id="cut_b" title="Cut Cell">Cut Cell</button> | |
157 | <button id="copy_b" title="Copy Cell">Copy Cell</button> |
|
157 | <button id="copy_b" title="Copy Cell">Copy Cell</button> | |
158 | <button id="paste_b" title="Paste Cell">Paste Cell</button> |
|
158 | <button id="paste_b" title="Paste Cell">Paste Cell</button> | |
159 | </span> |
|
159 | </span> | |
160 | <span id="move_up_down"> |
|
160 | <span id="move_up_down"> | |
161 | <button id="move_up_b" title="Move Cell Up">Move Cell Up</button> |
|
161 | <button id="move_up_b" title="Move Cell Up">Move Cell Up</button> | |
162 | <button id="move_down_b" title="Move Cell Down">Move Down</button> |
|
162 | <button id="move_down_b" title="Move Cell Down">Move Down</button> | |
163 | </span> |
|
163 | </span> | |
164 | <span id="insert_above_below"> |
|
164 | <span id="insert_above_below"> | |
165 | <button id="insert_above_b" title="Insert Cell Above">Insert Cell Above</button> |
|
165 | <button id="insert_above_b" title="Insert Cell Above">Insert Cell Above</button> | |
166 | <button id="insert_below_b" title="Insert Cell Below">Insert Cell Below</button> |
|
166 | <button id="insert_below_b" title="Insert Cell Below">Insert Cell Below</button> | |
167 | </span> |
|
167 | </span> | |
168 | <span id="run_int"> |
|
168 | <span id="run_int"> | |
169 | <button id="run_b" title="Run Cell">Run Cell</button> |
|
169 | <button id="run_b" title="Run Cell">Run Cell</button> | |
170 | <button id="interrupt_b" title="Interrupt">Interrupt</button> |
|
170 | <button id="interrupt_b" title="Interrupt">Interrupt</button> | |
171 | </span> |
|
171 | </span> | |
172 | <span> |
|
172 | <span> | |
173 | <select id="cell_type"> |
|
173 | <select id="cell_type"> | |
174 | <option value="code">Code</option> |
|
174 | <option value="code">Code</option> | |
175 | <option value="markdown">Markdown</option> |
|
175 | <option value="markdown">Markdown</option> | |
176 | <option value="raw">Raw Text</option> |
|
176 | <option value="raw">Raw Text</option> | |
177 | <option value="heading1">Heading 1</option> |
|
177 | <option value="heading1">Heading 1</option> | |
178 | <option value="heading2">Heading 2</option> |
|
178 | <option value="heading2">Heading 2</option> | |
179 | <option value="heading3">Heading 3</option> |
|
179 | <option value="heading3">Heading 3</option> | |
180 | <option value="heading4">Heading 4</option> |
|
180 | <option value="heading4">Heading 4</option> | |
181 | <option value="heading5">Heading 5</option> |
|
181 | <option value="heading5">Heading 5</option> | |
182 | <option value="heading6">Heading 6</option> |
|
182 | <option value="heading6">Heading 6</option> | |
183 | </select> |
|
183 | </select> | |
184 | </span> |
|
184 | </span> | |
185 |
|
185 | |||
186 | </div> |
|
186 | </div> | |
187 |
|
187 | |||
188 | <div id="main_app"> |
|
188 | <div id="main_app"> | |
189 |
|
189 | |||
190 | <div id="notebook_panel"> |
|
190 | <div id="notebook_panel"> | |
191 | <div id="notebook"></div> |
|
191 | <div id="notebook"></div> | |
192 | <div id="pager_splitter"></div> |
|
192 | <div id="pager_splitter"></div> | |
193 | <div id="pager"></div> |
|
193 | <div id="pager"></div> | |
194 | </div> |
|
194 | </div> | |
195 |
|
195 | |||
196 | </div> |
|
196 | </div> | |
197 |
<div id='tooltip' class='tooltip ui-corner-all |
|
197 | <div id='tooltip' class='tooltip ui-corner-all' style='display:none'></div> | |
198 |
|
198 | |||
199 |
|
199 | |||
200 | {% end %} |
|
200 | {% end %} | |
201 |
|
201 | |||
202 |
|
202 | |||
203 | {% block script %} |
|
203 | {% block script %} | |
204 |
|
204 | |||
205 | <script src="{{ static_url("codemirror/lib/codemirror.js") }}" charset="utf-8"></script> |
|
205 | <script src="{{ static_url("codemirror/lib/codemirror.js") }}" charset="utf-8"></script> | |
206 | <script src="{{ static_url("codemirror/mode/python/python.js") }}" charset="utf-8"></script> |
|
206 | <script src="{{ static_url("codemirror/mode/python/python.js") }}" charset="utf-8"></script> | |
207 | <script src="{{ static_url("codemirror/mode/htmlmixed/htmlmixed.js") }}" charset="utf-8"></script> |
|
207 | <script src="{{ static_url("codemirror/mode/htmlmixed/htmlmixed.js") }}" charset="utf-8"></script> | |
208 | <script src="{{ static_url("codemirror/mode/xml/xml.js") }}" charset="utf-8"></script> |
|
208 | <script src="{{ static_url("codemirror/mode/xml/xml.js") }}" charset="utf-8"></script> | |
209 | <script src="{{ static_url("codemirror/mode/javascript/javascript.js") }}" charset="utf-8"></script> |
|
209 | <script src="{{ static_url("codemirror/mode/javascript/javascript.js") }}" charset="utf-8"></script> | |
210 | <script src="{{ static_url("codemirror/mode/css/css.js") }}" charset="utf-8"></script> |
|
210 | <script src="{{ static_url("codemirror/mode/css/css.js") }}" charset="utf-8"></script> | |
211 | <script src="{{ static_url("codemirror/mode/rst/rst.js") }}" charset="utf-8"></script> |
|
211 | <script src="{{ static_url("codemirror/mode/rst/rst.js") }}" charset="utf-8"></script> | |
212 | <script src="{{ static_url("codemirror/mode/markdown/markdown.js") }}" charset="utf-8"></script> |
|
212 | <script src="{{ static_url("codemirror/mode/markdown/markdown.js") }}" charset="utf-8"></script> | |
213 |
|
213 | |||
214 | <script src="{{ static_url("pagedown/Markdown.Converter.js") }}" charset="utf-8"></script> |
|
214 | <script src="{{ static_url("pagedown/Markdown.Converter.js") }}" charset="utf-8"></script> | |
215 |
|
215 | |||
216 | <script src="{{ static_url("prettify/prettify.js") }}" charset="utf-8"></script> |
|
216 | <script src="{{ static_url("prettify/prettify.js") }}" charset="utf-8"></script> | |
217 | <script src="{{ static_url("dateformat/date.format.js") }}" charset="utf-8"></script> |
|
217 | <script src="{{ static_url("dateformat/date.format.js") }}" charset="utf-8"></script> | |
218 |
|
218 | |||
219 | <script src="{{ static_url("js/events.js") }}" type="text/javascript" charset="utf-8"></script> |
|
219 | <script src="{{ static_url("js/events.js") }}" type="text/javascript" charset="utf-8"></script> | |
220 | <script src="{{ static_url("js/utils.js") }}" type="text/javascript" charset="utf-8"></script> |
|
220 | <script src="{{ static_url("js/utils.js") }}" type="text/javascript" charset="utf-8"></script> | |
221 | <script src="{{ static_url("js/layoutmanager.js") }}" type="text/javascript" charset="utf-8"></script> |
|
221 | <script src="{{ static_url("js/layoutmanager.js") }}" type="text/javascript" charset="utf-8"></script> | |
222 | <script src="{{ static_url("js/initmathjax.js") }}" type="text/javascript" charset="utf-8"></script> |
|
222 | <script src="{{ static_url("js/initmathjax.js") }}" type="text/javascript" charset="utf-8"></script> | |
223 | <script src="{{ static_url("js/outputarea.js") }}" type="text/javascript" charset="utf-8"></script> |
|
223 | <script src="{{ static_url("js/outputarea.js") }}" type="text/javascript" charset="utf-8"></script> | |
224 | <script src="{{ static_url("js/cell.js") }}" type="text/javascript" charset="utf-8"></script> |
|
224 | <script src="{{ static_url("js/cell.js") }}" type="text/javascript" charset="utf-8"></script> | |
225 | <script src="{{ static_url("js/codecell.js") }}" type="text/javascript" charset="utf-8"></script> |
|
225 | <script src="{{ static_url("js/codecell.js") }}" type="text/javascript" charset="utf-8"></script> | |
226 | <script src="{{ static_url("js/completer.js") }}" type="text/javascript" charset="utf-8"></script> |
|
226 | <script src="{{ static_url("js/completer.js") }}" type="text/javascript" charset="utf-8"></script> | |
227 | <script src="{{ static_url("js/textcell.js") }}" type="text/javascript" charset="utf-8"></script> |
|
227 | <script src="{{ static_url("js/textcell.js") }}" type="text/javascript" charset="utf-8"></script> | |
228 | <script src="{{ static_url("js/kernel.js") }}" type="text/javascript" charset="utf-8"></script> |
|
228 | <script src="{{ static_url("js/kernel.js") }}" type="text/javascript" charset="utf-8"></script> | |
229 | <script src="{{ static_url("js/savewidget.js") }}" type="text/javascript" charset="utf-8"></script> |
|
229 | <script src="{{ static_url("js/savewidget.js") }}" type="text/javascript" charset="utf-8"></script> | |
230 | <script src="{{ static_url("js/quickhelp.js") }}" type="text/javascript" charset="utf-8"></script> |
|
230 | <script src="{{ static_url("js/quickhelp.js") }}" type="text/javascript" charset="utf-8"></script> | |
231 | <script src="{{ static_url("js/pager.js") }}" type="text/javascript" charset="utf-8"></script> |
|
231 | <script src="{{ static_url("js/pager.js") }}" type="text/javascript" charset="utf-8"></script> | |
232 | <script src="{{ static_url("js/menubar.js") }}" type="text/javascript" charset="utf-8"></script> |
|
232 | <script src="{{ static_url("js/menubar.js") }}" type="text/javascript" charset="utf-8"></script> | |
233 | <script src="{{ static_url("js/toolbar.js") }}" type="text/javascript" charset="utf-8"></script> |
|
233 | <script src="{{ static_url("js/toolbar.js") }}" type="text/javascript" charset="utf-8"></script> | |
234 | <script src="{{ static_url("js/notebook.js") }}" type="text/javascript" charset="utf-8"></script> |
|
234 | <script src="{{ static_url("js/notebook.js") }}" type="text/javascript" charset="utf-8"></script> | |
235 | <script src="{{ static_url("js/notificationwidget.js") }}" type="text/javascript" charset="utf-8"></script> |
|
235 | <script src="{{ static_url("js/notificationwidget.js") }}" type="text/javascript" charset="utf-8"></script> | |
236 | <script src="{{ static_url("js/tooltip.js") }}" type="text/javascript" charset="utf-8"></script> |
|
236 | <script src="{{ static_url("js/tooltip.js") }}" type="text/javascript" charset="utf-8"></script> | |
237 | <script src="{{ static_url("js/notebookmain.js") }}" type="text/javascript" charset="utf-8"></script> |
|
237 | <script src="{{ static_url("js/notebookmain.js") }}" type="text/javascript" charset="utf-8"></script> | |
238 |
|
238 | |||
239 | <script src="{{ static_url("js/contexthint.js") }} charset="utf-8"></script> |
|
239 | <script src="{{ static_url("js/contexthint.js") }} charset="utf-8"></script> | |
240 |
|
240 | |||
241 | {% end %} |
|
241 | {% end %} |
General Comments 0
You need to be logged in to leave comments.
Login now