diff --git a/IPython/html/static/base/js/dialog.js b/IPython/html/static/base/js/dialog.js index 3597443..1d0628d 100644 --- a/IPython/html/static/base/js/dialog.js +++ b/IPython/html/static/base/js/dialog.js @@ -92,8 +92,10 @@ define([ }; var kernel_modal = function (options) { - // only one kernel dialog should be open at a time -- but - // other modal dialogs can still be open + /** + * only one kernel dialog should be open at a time -- but + * other modal dialogs can still be open + */ $('.kernel-modal').modal('hide'); var dialog = modal(options); dialog.addClass('kernel-modal'); @@ -140,7 +142,9 @@ define([ buttons: { OK: { class : "btn-primary", click: function() { - // validate json and set it + /** + * validate json and set it + */ var new_md; try { new_md = JSON.parse(editor.getValue()); diff --git a/IPython/html/static/base/js/page.js b/IPython/html/static/base/js/page.js index 5fba330..7c25285 100644 --- a/IPython/html/static/base/js/page.js +++ b/IPython/html/static/base/js/page.js @@ -15,23 +15,29 @@ define([ }; Page.prototype.show = function () { - // The header and site divs start out hidden to prevent FLOUC. - // Main scripts should call this method after styling everything. + /** + * The header and site divs start out hidden to prevent FLOUC. + * Main scripts should call this method after styling everything. + */ this.show_header(); this.show_site(); }; Page.prototype.show_header = function () { - // The header and site divs start out hidden to prevent FLOUC. - // Main scripts should call this method after styling everything. - // TODO: selector are hardcoded, pass as constructor argument + /** + * The header and site divs start out hidden to prevent FLOUC. + * Main scripts should call this method after styling everything. + * TODO: selector are hardcoded, pass as constructor argument + */ $('div#header').css('display','block'); }; Page.prototype.show_site = function () { - // The header and site divs start out hidden to prevent FLOUC. - // Main scripts should call this method after styling everything. - // TODO: selector are hardcoded, pass as constructor argument + /** + * The header and site divs start out hidden to prevent FLOUC. + * Main scripts should call this method after styling everything. + * TODO: selector are hardcoded, pass as constructor argument + */ $('div#site').css('display','block'); }; diff --git a/IPython/html/static/base/js/security.js b/IPython/html/static/base/js/security.js index c8301f1..11ba8da 100644 --- a/IPython/html/static/base/js/security.js +++ b/IPython/html/static/base/js/security.js @@ -18,8 +18,10 @@ define([ } var sanitizeAttribs = function (tagName, attribs, opt_naiveUriRewriter, opt_nmTokenPolicy, opt_logger) { - // add trusting data-attributes to the default sanitizeAttribs from caja - // this function is mostly copied from the caja source + /** + * add trusting data-attributes to the default sanitizeAttribs from caja + * this function is mostly copied from the caja source + */ var ATTRIBS = caja.html4.ATTRIBS; for (var i = 0; i < attribs.length; i += 2) { var attribName = attribs[i]; @@ -34,9 +36,11 @@ define([ }; var sanitize_css = function (css, tagPolicy) { - // sanitize CSS - // like sanitize_html, but for CSS - // called by sanitize_stylesheets + /** + * sanitize CSS + * like sanitize_html, but for CSS + * called by sanitize_stylesheets + */ return caja.sanitizeStylesheet( window.location.pathname, css, @@ -51,8 +55,10 @@ define([ }; var sanitize_stylesheets = function (html, tagPolicy) { - // sanitize just the css in style tags in a block of html - // called by sanitize_html, if allow_css is true + /** + * sanitize just the css in style tags in a block of html + * called by sanitize_html, if allow_css is true + */ var h = $("
").append(html); var style_tags = h.find("style"); if (!style_tags.length) { @@ -66,9 +72,11 @@ define([ }; var sanitize_html = function (html, allow_css) { - // sanitize HTML - // if allow_css is true (default: false), CSS is sanitized as well. - // otherwise, CSS elements and attributes are simply removed. + /** + * sanitize HTML + * if allow_css is true (default: false), CSS is sanitized as well. + * otherwise, CSS elements and attributes are simply removed. + */ var html4 = caja.html4; if (allow_css) { diff --git a/IPython/html/static/base/js/utils.js b/IPython/html/static/base/js/utils.js index fba5baa..780e845 100644 --- a/IPython/html/static/base/js/utils.js +++ b/IPython/html/static/base/js/utils.js @@ -79,7 +79,9 @@ define([ * // -> ['..', 'word', '1', ' ', 'word', '2', '..'] */ var regex_split = function (str, separator, limit) { - // If `separator` is not a regex, use `split` + /** + * If `separator` is not a regex, use `split` + */ if (Object.prototype.toString.call(separator) !== "[object RegExp]") { return split.call(str, separator, limit); } @@ -154,7 +156,9 @@ define([ var uuid = function () { - // http://www.ietf.org/rfc/rfc4122.txt + /** + * http://www.ietf.org/rfc/rfc4122.txt + */ var s = []; var hexDigits = "0123456789ABCDEF"; for (var i = 0; i < 32; i++) { @@ -355,7 +359,9 @@ define([ } var points_to_pixels = function (points) { - // A reasonably good way of converting between points and pixels. + /** + * A reasonably good way of converting between points and pixels. + */ var test = $('
'); $(body).append(test); var pixel_per_point = test.width()/10000; @@ -364,10 +370,12 @@ define([ }; var always_new = function (constructor) { - // wrapper around contructor to avoid requiring `var a = new constructor()` - // useful for passing constructors as callbacks, - // not for programmer laziness. - // from http://programmers.stackexchange.com/questions/118798 + /** + * wrapper around contructor to avoid requiring `var a = new constructor()` + * useful for passing constructors as callbacks, + * not for programmer laziness. + * from http://programmers.stackexchange.com/questions/118798 + */ return function () { var obj = Object.create(constructor.prototype); constructor.apply(obj, arguments); @@ -376,7 +384,9 @@ define([ }; var url_path_join = function () { - // join a sequence of url components with '/' + /** + * join a sequence of url components with '/' + */ var url = ''; for (var i = 0; i < arguments.length; i++) { if (arguments[i] === '') { @@ -393,8 +403,10 @@ define([ }; var url_path_split = function (path) { - // Like os.path.split for URLs. - // Always returns two strings, the directory path and the base filename + /** + * Like os.path.split for URLs. + * Always returns two strings, the directory path and the base filename + */ var idx = path.lastIndexOf('/'); if (idx === -1) { @@ -405,35 +417,43 @@ define([ }; var parse_url = function (url) { - // an `a` element with an href allows attr-access to the parsed segments of a URL - // a = parse_url("http://localhost:8888/path/name#hash") - // a.protocol = "http:" - // a.host = "localhost:8888" - // a.hostname = "localhost" - // a.port = 8888 - // a.pathname = "/path/name" - // a.hash = "#hash" + /** + * an `a` element with an href allows attr-access to the parsed segments of a URL + * a = parse_url("http://localhost:8888/path/name#hash") + * a.protocol = "http:" + * a.host = "localhost:8888" + * a.hostname = "localhost" + * a.port = 8888 + * a.pathname = "/path/name" + * a.hash = "#hash" + */ var a = document.createElement("a"); a.href = url; return a; }; var encode_uri_components = function (uri) { - // encode just the components of a multi-segment uri, - // leaving '/' separators + /** + * encode just the components of a multi-segment uri, + * leaving '/' separators + */ return uri.split('/').map(encodeURIComponent).join('/'); }; var url_join_encode = function () { - // join a sequence of url components with '/', - // encoding each component with encodeURIComponent + /** + * join a sequence of url components with '/', + * encoding each component with encodeURIComponent + */ return encode_uri_components(url_path_join.apply(null, arguments)); }; var splitext = function (filename) { - // mimic Python os.path.splitext - // Returns ['base', '.ext'] + /** + * mimic Python os.path.splitext + * Returns ['base', '.ext'] + */ var idx = filename.lastIndexOf('.'); if (idx > 0) { return [filename.slice(0, idx), filename.slice(idx)]; @@ -444,20 +464,26 @@ define([ var escape_html = function (text) { - // escape text to HTML + /** + * escape text to HTML + */ return $("
").text(text).html(); }; var get_body_data = function(key) { - // get a url-encoded item from body.data and decode it - // we should never have any encoded URLs anywhere else in code - // until we are building an actual request + /** + * get a url-encoded item from body.data and decode it + * we should never have any encoded URLs anywhere else in code + * until we are building an actual request + */ return decodeURIComponent($('body').data(key)); }; var to_absolute_cursor_pos = function (cm, cursor) { - // get the absolute cursor position from CodeMirror's col, ch + /** + * get the absolute cursor position from CodeMirror's col, ch + */ if (!cursor) { cursor = cm.getCursor(); } @@ -469,7 +495,9 @@ define([ }; var from_absolute_cursor_pos = function (cm, cursor_pos) { - // turn absolute cursor postion into CodeMirror col, ch cursor + /** + * turn absolute cursor postion into CodeMirror col, ch cursor + */ var i, line; var offset = 0; for (i = 0, line=cm.getLine(i); line !== undefined; i++, line=cm.getLine(i)) { @@ -517,12 +545,16 @@ define([ })(); var is_or_has = function (a, b) { - // Is b a child of a or a itself? + /** + * Is b a child of a or a itself? + */ return a.has(b).length !==0 || a.is(b); }; var is_focused = function (e) { - // Is element e, or one of its children focused? + /** + * Is element e, or one of its children focused? + */ e = $(e); var target = $(document.activeElement); if (target.length > 0) { @@ -543,8 +575,10 @@ define([ }; var ajax_error_msg = function (jqXHR) { - // Return a JSON error message if there is one, - // otherwise the basic HTTP status text. + /** + * Return a JSON error message if there is one, + * otherwise the basic HTTP status text. + */ if (jqXHR.responseJSON && jqXHR.responseJSON.traceback) { return jqXHR.responseJSON.traceback; } else if (jqXHR.responseJSON && jqXHR.responseJSON.message) { @@ -554,7 +588,9 @@ define([ } }; var log_ajax_error = function (jqXHR, status, error) { - // log ajax failures with informative messages + /** + * log ajax failures with informative messages + */ var msg = "API request failed (" + jqXHR.status + "): "; console.log(jqXHR); msg += ajax_error_msg(jqXHR); @@ -562,7 +598,9 @@ define([ }; var requireCodeMirrorMode = function (mode, callback, errback) { - // load a mode with requirejs + /** + * load a mode with requirejs + */ if (typeof mode != "string") mode = mode.name; if (CodeMirror.modes.hasOwnProperty(mode)) { callback(CodeMirror.modes.mode); @@ -592,8 +630,10 @@ define([ }; var promising_ajax = function(url, settings) { - // Like $.ajax, but returning an ES6 promise. success and error settings - // will be ignored. + /** + * Like $.ajax, but returning an ES6 promise. success and error settings + * will be ignored. + */ return new Promise(function(resolve, reject) { settings.success = function(data, status, jqXHR) { resolve(data); @@ -607,11 +647,13 @@ define([ }; var WrappedError = function(message, error){ - // Wrappable Error class - - // The Error class doesn't actually act on `this`. Instead it always - // returns a new instance of Error. Here we capture that instance so we - // can apply it's properties to `this`. + /** + * Wrappable Error class + * + * The Error class doesn't actually act on `this`. Instead it always + * returns a new instance of Error. Here we capture that instance so we + * can apply it's properties to `this`. + */ var tmp = Error.apply(this, [message]); // Copy the properties of the error over to this. @@ -635,11 +677,13 @@ define([ var load_class = function(class_name, module_name, registry) { - // Tries to load a class - // - // Tries to load a class from a module using require.js, if a module - // is specified, otherwise tries to load a class from the global - // registry, if the global registry is provided. + /** + * Tries to load a class + * + * Tries to load a class from a module using require.js, if a module + * is specified, otherwise tries to load a class from the global + * registry, if the global registry is provided. + */ return new Promise(function(resolve, reject) { // Try loading the view module using require.js @@ -662,8 +706,10 @@ define([ }; var resolve_promises_dict = function(d) { - // Resolve a promiseful dictionary. - // Returns a single Promise. + /** + * Resolve a promiseful dictionary. + * Returns a single Promise. + */ var keys = Object.keys(d); var values = []; keys.forEach(function(key) { @@ -679,11 +725,13 @@ define([ }; var WrappedError = function(message, error){ - // Wrappable Error class - - // The Error class doesn't actually act on `this`. Instead it always - // returns a new instance of Error. Here we capture that instance so we - // can apply it's properties to `this`. + /** + * Wrappable Error class + * + * The Error class doesn't actually act on `this`. Instead it always + * returns a new instance of Error. Here we capture that instance so we + * can apply it's properties to `this`. + */ var tmp = Error.apply(this, [message]); // Copy the properties of the error over to this. @@ -706,11 +754,13 @@ define([ WrappedError.prototype = Object.create(Error.prototype, {}); var reject = function(message, log) { - // Creates a wrappable Promise rejection function. - // - // Creates a function that returns a Promise.reject with a new WrappedError - // that has the provided message and wraps the original error that - // caused the promise to reject. + /** + * Creates a wrappable Promise rejection function. + * + * Creates a function that returns a Promise.reject with a new WrappedError + * that has the provided message and wraps the original error that + * caused the promise to reject. + */ return function(error) { var wrapped_error = new WrappedError(message, error); if (log) console.error(wrapped_error); diff --git a/IPython/html/static/edit/js/menubar.js b/IPython/html/static/edit/js/menubar.js index dd8a5ce..15b1b4e 100644 --- a/IPython/html/static/edit/js/menubar.js +++ b/IPython/html/static/edit/js/menubar.js @@ -10,19 +10,21 @@ define([ "use strict"; var MenuBar = function (selector, options) { - // Constructor - // - // A MenuBar Class to generate the menubar of IPython notebook - // - // Parameters: - // selector: string - // options: dictionary - // Dictionary of keyword arguments. - // codemirror: CodeMirror instance - // contents: ContentManager instance - // events: $(Events) instance - // base_url : string - // file_path : string + /** + * Constructor + * + * A MenuBar Class to generate the menubar of IPython notebook + * + * Parameters: + * selector: string + * options: dictionary + * Dictionary of keyword arguments. + * codemirror: CodeMirror instance + * contents: ContentManager instance + * events: $(Events) instance + * base_url : string + * file_path : string + */ options = options || {}; this.base_url = options.base_url || utils.get_body_data("baseUrl"); this.selector = selector; @@ -35,7 +37,9 @@ define([ }; MenuBar.prototype.bind_events = function () { - // File + /** + * File + */ var that = this; this.element.find('#save_file').click(function () { that.editor.save(); diff --git a/IPython/html/static/notebook/js/cell.js b/IPython/html/static/notebook/js/cell.js index b54ade3..b122c2a 100644 --- a/IPython/html/static/notebook/js/cell.js +++ b/IPython/html/static/notebook/js/cell.js @@ -112,8 +112,10 @@ define([ }; Cell.prototype.init_classes = function () { - // Call after this.element exists to initialize the css classes - // related to selected, rendered and mode. + /** + * Call after this.element exists to initialize the css classes + * related to selected, rendered and mode. + */ if (this.selected) { this.element.addClass('selected'); } else { @@ -534,7 +536,9 @@ define([ * @param {String|object|undefined} - CodeMirror mode | 'auto' **/ Cell.prototype._auto_highlight = function (modes) { - //Here we handle manually selected modes + /** + *Here we handle manually selected modes + */ var that = this; var mode; if( this.user_highlight !== undefined && this.user_highlight != 'auto' ) @@ -625,7 +629,9 @@ define([ }; UnrecognizedCell.prototype.toJSON = function () { - // deepcopy the metadata so copied cells don't share the same object + /** + * deepcopy the metadata so copied cells don't share the same object + */ return JSON.parse(JSON.stringify(this.data)); }; diff --git a/IPython/html/static/notebook/js/celltoolbar.js b/IPython/html/static/notebook/js/celltoolbar.js index 1d5e259..03910b2 100644 --- a/IPython/html/static/notebook/js/celltoolbar.js +++ b/IPython/html/static/notebook/js/celltoolbar.js @@ -9,17 +9,19 @@ define([ "use strict"; var CellToolbar = function (options) { - // Constructor - // - // Parameters: - // options: dictionary - // Dictionary of keyword arguments. - // events: $(Events) instance - // cell: Cell instance - // notebook: Notebook instance - // - // TODO: This leaks, when cell are deleted - // There is still a reference to each celltoolbars. + /** + * Constructor + * + * Parameters: + * options: dictionary + * Dictionary of keyword arguments. + * events: $(Events) instance + * cell: Cell instance + * notebook: Notebook instance + * + * TODO: This leaks, when cell are deleted + * There is still a reference to each celltoolbars. + */ CellToolbar._instances.push(this); this.notebook = options.notebook; this.cell = options.cell; @@ -248,9 +250,11 @@ define([ * @method rebuild */ CellToolbar.prototype.rebuild = function(){ - // strip evrything from the div - // which is probably inner_element - // or this.element. + /** + * strip evrything from the div + * which is probably inner_element + * or this.element. + */ this.inner_element.empty(); this.ui_controls_list = []; diff --git a/IPython/html/static/notebook/js/celltoolbarpresets/example.js b/IPython/html/static/notebook/js/celltoolbarpresets/example.js index 5f1a6da..dd1653c 100644 --- a/IPython/html/static/notebook/js/celltoolbarpresets/example.js +++ b/IPython/html/static/notebook/js/celltoolbarpresets/example.js @@ -119,7 +119,9 @@ define([ width: 650, modal: true, close: function() { - //cleanup on close + /** + *cleanup on close + */ $(this).remove(); } }); diff --git a/IPython/html/static/notebook/js/codecell.js b/IPython/html/static/notebook/js/codecell.js index 59bd116..497266f 100644 --- a/IPython/html/static/notebook/js/codecell.js +++ b/IPython/html/static/notebook/js/codecell.js @@ -53,21 +53,23 @@ define([ var keycodes = keyboard.keycodes; var CodeCell = function (kernel, options) { - // Constructor - // - // A Cell conceived to write code. - // - // Parameters: - // kernel: Kernel instance - // The kernel doesn't have to be set at creation time, in that case - // it will be null and set_kernel has to be called later. - // options: dictionary - // Dictionary of keyword arguments. - // events: $(Events) instance - // config: dictionary - // keyboard_manager: KeyboardManager instance - // notebook: Notebook instance - // tooltip: Tooltip instance + /** + * Constructor + * + * A Cell conceived to write code. + * + * Parameters: + * kernel: Kernel instance + * The kernel doesn't have to be set at creation time, in that case + * it will be null and set_kernel has to be called later. + * options: dictionary + * Dictionary of keyword arguments. + * events: $(Events) instance + * config: dictionary + * keyboard_manager: KeyboardManager instance + * notebook: Notebook instance + * tooltip: Tooltip instance + */ this.kernel = kernel || null; this.notebook = options.notebook; this.collapsed = false; diff --git a/IPython/html/static/notebook/js/completer.js b/IPython/html/static/notebook/js/completer.js index 6928131..4a929d3 100644 --- a/IPython/html/static/notebook/js/completer.js +++ b/IPython/html/static/notebook/js/completer.js @@ -92,8 +92,10 @@ define([ }; Completer.prototype.startCompletion = function () { - // call for a 'first' completion, that will set the editor and do some - // special behavior like autopicking if only one completion available. + /** + * call for a 'first' completion, that will set the editor and do some + * special behavior like autopicking if only one completion available. + */ if (this.editor.somethingSelected()|| this.editor.getSelections().length > 1) return; this.done = false; // use to get focus back on opera @@ -119,9 +121,11 @@ define([ * shared start **/ Completer.prototype.carry_on_completion = function (first_invocation) { - // Pass true as parameter if you want the completer to autopick when - // only one completion. This function is automatically reinvoked at - // each keystroke with first_invocation = false + /** + * Pass true as parameter if you want the completer to autopick when + * only one completion. This function is automatically reinvoked at + * each keystroke with first_invocation = false + */ var cur = this.editor.getCursor(); var line = this.editor.getLine(cur.line); var pre_cursor = this.editor.getRange({ @@ -164,8 +168,10 @@ define([ }; Completer.prototype.finish_completing = function (msg) { - // let's build a function that wrap all that stuff into what is needed - // for the new completer: + /** + * let's build a function that wrap all that stuff into what is needed + * for the new completer: + */ var content = msg.content; var start = content.cursor_start; var end = content.cursor_end; @@ -376,11 +382,13 @@ define([ }; Completer.prototype.keypress = function (event) { - // FIXME: This is a band-aid. - // on keypress, trigger insertion of a single character. - // This simulates the old behavior of completion as you type, - // before events were disconnected and CodeMirror stopped - // receiving events while the completer is focused. + /** + * FIXME: This is a band-aid. + * on keypress, trigger insertion of a single character. + * This simulates the old behavior of completion as you type, + * before events were disconnected and CodeMirror stopped + * receiving events while the completer is focused. + */ var that = this; var code = event.keyCode; diff --git a/IPython/html/static/notebook/js/maintoolbar.js b/IPython/html/static/notebook/js/maintoolbar.js index c6e0353..a32a4e8 100644 --- a/IPython/html/static/notebook/js/maintoolbar.js +++ b/IPython/html/static/notebook/js/maintoolbar.js @@ -10,14 +10,16 @@ define([ "use strict"; var MainToolBar = function (selector, options) { - // Constructor - // - // Parameters: - // selector: string - // options: dictionary - // Dictionary of keyword arguments. - // events: $(Events) instance - // notebook: Notebook instance + /** + * Constructor + * + * Parameters: + * selector: string + * options: dictionary + * Dictionary of keyword arguments. + * events: $(Events) instance + * notebook: Notebook instance + */ toolbar.ToolBar.apply(this, arguments); this.events = options.events; this.notebook = options.notebook; @@ -108,7 +110,9 @@ define([ label : 'Run Cell', icon : 'fa-play', callback : function () { - // emulate default shift-enter behavior + /** + * emulate default shift-enter behavior + */ that.notebook.execute_cell_and_select_below(); } }, diff --git a/IPython/html/static/notebook/js/menubar.js b/IPython/html/static/notebook/js/menubar.js index 9a2814b..a0bf0e0 100644 --- a/IPython/html/static/notebook/js/menubar.js +++ b/IPython/html/static/notebook/js/menubar.js @@ -13,23 +13,25 @@ define([ "use strict"; var MenuBar = function (selector, options) { - // Constructor - // - // A MenuBar Class to generate the menubar of IPython notebook - // - // Parameters: - // selector: string - // options: dictionary - // Dictionary of keyword arguments. - // notebook: Notebook instance - // contents: ContentManager instance - // layout_manager: LayoutManager instance - // events: $(Events) instance - // save_widget: SaveWidget instance - // quick_help: QuickHelp instance - // base_url : string - // notebook_path : string - // notebook_name : string + /** + * Constructor + * + * A MenuBar Class to generate the menubar of IPython notebook + * + * Parameters: + * selector: string + * options: dictionary + * Dictionary of keyword arguments. + * notebook: Notebook instance + * contents: ContentManager instance + * layout_manager: LayoutManager instance + * events: $(Events) instance + * save_widget: SaveWidget instance + * quick_help: QuickHelp instance + * base_url : string + * notebook_path : string + * notebook_name : string + */ options = options || {}; this.base_url = options.base_url || utils.get_body_data("baseUrl"); this.selector = selector; @@ -87,7 +89,9 @@ define([ }; MenuBar.prototype.bind_events = function () { - // File + /** + * File + */ var that = this; this.element.find('#new_notebook').click(function () { var w = window.open(); @@ -169,7 +173,9 @@ define([ }); this.element.find('#kill_and_exit').click(function () { var close_window = function () { - // allow closing of new tabs in Chromium, impossible in FF + /** + * allow closing of new tabs in Chromium, impossible in FF + */ window.open('', '_self', ''); window.close(); }; @@ -352,7 +358,9 @@ define([ }; MenuBar.prototype.update_nbconvert_script = function(langinfo) { - // Set the 'Download as foo' menu option for the relevant language. + /** + * Set the 'Download as foo' menu option for the relevant language. + */ var el = this.element.find('#download_script'); var that = this; diff --git a/IPython/html/static/notebook/js/notebook.js b/IPython/html/static/notebook/js/notebook.js index 09844a9..42c765e 100644 --- a/IPython/html/static/notebook/js/notebook.js +++ b/IPython/html/static/notebook/js/notebook.js @@ -45,22 +45,24 @@ define([ "use strict"; var Notebook = function (selector, options) { - // Constructor - // - // A notebook contains and manages cells. - // - // Parameters: - // selector: string - // options: dictionary - // Dictionary of keyword arguments. - // events: $(Events) instance - // keyboard_manager: KeyboardManager instance - // contents: Contents instance - // save_widget: SaveWidget instance - // config: dictionary - // base_url : string - // notebook_path : string - // notebook_name : string + /** + * Constructor + * + * A notebook contains and manages cells. + * + * Parameters: + * selector: string + * options: dictionary + * Dictionary of keyword arguments. + * events: $(Events) instance + * keyboard_manager: KeyboardManager instance + * contents: Contents instance + * save_widget: SaveWidget instance + * config: dictionary + * base_url : string + * notebook_path : string + * notebook_name : string + */ this.config = utils.mergeopt(Notebook, options.config); this.base_url = options.base_url; this.notebook_path = options.notebook_path; @@ -314,7 +316,9 @@ define([ }; Notebook.prototype.warn_nbformat_minor = function (event) { - // trigger a warning dialog about missing functionality from newer minor versions + /** + * trigger a warning dialog about missing functionality from newer minor versions + */ var v = 'v' + this.nbformat + '.'; var orig_vs = v + this.nbformat_minor; var this_vs = v + this.current_nbformat_minor; @@ -1141,7 +1145,9 @@ define([ }; Notebook.prototype._warn_heading = function () { - // warn about heading cells being removed + /** + * warn about heading cells being removed + */ dialog.modal({ notebook: this, keyboard_manager: this.keyboard_manager, @@ -1677,7 +1683,9 @@ define([ * @method execute_cell */ Notebook.prototype.execute_cell = function () { - // mode = shift, ctrl, alt + /** + * mode = shift, ctrl, alt + */ var cell = this.get_selected_cell(); cell.execute(); @@ -1888,7 +1896,9 @@ define([ * @return {Object} A JSON-friendly representation of this notebook. */ Notebook.prototype.toJSON = function () { - // remove the conversion indicator, which only belongs in-memory + /** + * remove the conversion indicator, which only belongs in-memory + */ delete this.metadata.orig_nbformat; delete this.metadata.orig_nbformat_minor; diff --git a/IPython/html/static/notebook/js/outputarea.js b/IPython/html/static/notebook/js/outputarea.js index ae77260..bb9b218 100644 --- a/IPython/html/static/notebook/js/outputarea.js +++ b/IPython/html/static/notebook/js/outputarea.js @@ -246,7 +246,9 @@ define([ ]; OutputArea.prototype.validate_mimebundle = function (json) { - // scrub invalid outputs + /** + * scrub invalid outputs + */ var data = json.data; $.map(OutputArea.output_types, function(key){ if (key !== 'application/json' && @@ -297,8 +299,10 @@ define([ // available. var that = this; var handle_appended = function ($el) { - // Only reset the height to automatic if the height is currently - // fixed (done by wait=True flag on clear_output). + /** + * Only reset the height to automatic if the height is currently + * fixed (done by wait=True flag on clear_output). + */ if (needs_height_reset) { that.element.height(''); } @@ -380,7 +384,9 @@ define([ OutputArea.prototype._append_javascript_error = function (err, element) { - // display a message when a javascript error occurs in display output + /** + * display a message when a javascript error occurs in display output + */ var msg = "Javascript error adding output!"; if ( element === undefined ) return; element @@ -390,10 +396,12 @@ define([ }; OutputArea.prototype._safe_append = function (toinsert) { - // safely append an item to the document - // this is an object created by user code, - // and may have errors, which should not be raised - // under any circumstances. + /** + * safely append an item to the document + * this is an object created by user code, + * and may have errors, which should not be raised + * under any circumstances. + */ try { this.element.append(toinsert); } catch(err) { @@ -588,7 +596,9 @@ define([ var append_javascript = function (js, md, element) { - // We just eval the JS code, element appears in the local scope. + /** + * We just eval the JS code, element appears in the local scope. + */ var type = 'application/javascript'; var toinsert = this.create_output_subarea(md, "output_javascript", type); this.keyboard_manager.register_events(toinsert); @@ -652,14 +662,16 @@ define([ }; OutputArea.prototype._dblclick_to_reset_size = function (img, immediately, resize_parent) { - // Add a resize handler to an element - // - // img: jQuery element - // immediately: bool=False - // Wait for the element to load before creating the handle. - // resize_parent: bool=True - // Should the parent of the element be resized when the element is - // reset (by double click). + /** + * Add a resize handler to an element + * + * img: jQuery element + * immediately: bool=False + * Wait for the element to load before creating the handle. + * resize_parent: bool=True + * Should the parent of the element be resized when the element is + * reset (by double click). + */ var callback = function (){ var h0 = img.height(); var w0 = img.width(); @@ -690,7 +702,9 @@ define([ }; var set_width_height = function (img, md, mime) { - // set width and height of an img element from metadata + /** + * set width and height of an img element from metadata + */ var height = _get_metadata_key(md, 'height', mime); if (height !== undefined) img.attr('height', height); var width = _get_metadata_key(md, 'width', mime); @@ -745,8 +759,10 @@ define([ }; var append_latex = function (latex, md, element) { - // This method cannot do the typesetting because the latex first has to - // be on the page. + /** + * This method cannot do the typesetting because the latex first has to + * be on the page. + */ var type = 'text/latex'; var toinsert = this.create_output_subarea(md, "output_latex", type); toinsert.append(latex); @@ -825,11 +841,13 @@ define([ OutputArea.prototype.handle_clear_output = function (msg) { - // msg spec v4 had stdout, stderr, display keys - // v4.1 replaced these with just wait - // The default behavior is the same (stdout=stderr=display=True, wait=False), - // so v4 messages will still be properly handled, - // except for the rarely used clearing less than all output. + /** + * msg spec v4 had stdout, stderr, display keys + * v4.1 replaced these with just wait + * The default behavior is the same (stdout=stderr=display=True, wait=False), + * so v4 messages will still be properly handled, + * except for the rarely used clearing less than all output. + */ this.clear_output(msg.content.wait || false); }; diff --git a/IPython/html/static/notebook/js/pager.js b/IPython/html/static/notebook/js/pager.js index ac53ea3..9656fd4 100644 --- a/IPython/html/static/notebook/js/pager.js +++ b/IPython/html/static/notebook/js/pager.js @@ -9,15 +9,17 @@ define([ "use strict"; var Pager = function (pager_selector, pager_splitter_selector, options) { - // Constructor - // - // Parameters: - // pager_selector: string - // pager_splitter_selector: string - // options: dictionary - // Dictionary of keyword arguments. - // events: $(Events) instance - // layout_manager: LayoutManager instance + /** + * Constructor + * + * Parameters: + * pager_selector: string + * pager_splitter_selector: string + * options: dictionary + * Dictionary of keyword arguments. + * events: $(Events) instance + * layout_manager: LayoutManager instance + */ this.events = options.events; this.pager_element = $(pager_selector); this.pager_button_area = $('#pager_button_area'); @@ -30,7 +32,9 @@ define([ axis:'y', helper: null , drag: function(event, ui) { - // recalculate the amount of space the pager should take + /** + * recalculate the amount of space the pager should take + */ var pheight = ($(document.body).height()-event.clientY-4); var downprct = pheight/options.layout_manager.app_height(); downprct = Math.min(0.9, downprct); @@ -173,8 +177,10 @@ define([ }; Pager.prototype.append_text = function (text) { - // The only user content injected with this HTML call is escaped by - // the fixConsole() method. + /** + * The only user content injected with this HTML call is escaped by + * the fixConsole() method. + */ this.pager_element.find(".container").append($('
').html(utils.fixCarriageReturn(utils.fixConsole(text))));
     };
 
diff --git a/IPython/html/static/notebook/js/quickhelp.js b/IPython/html/static/notebook/js/quickhelp.js
index 7792480..b6b1b01 100644
--- a/IPython/html/static/notebook/js/quickhelp.js
+++ b/IPython/html/static/notebook/js/quickhelp.js
@@ -11,14 +11,16 @@ define([
     var platform = utils.platform;
 
     var QuickHelp = function (options) {
-        // Constructor
-        //
-        // Parameters:
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          events: $(Events) instance
-        //          keyboard_manager: KeyboardManager instance
-        //          notebook: Notebook instance
+        /**
+         * Constructor
+         *
+         * Parameters:
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          events: $(Events) instance
+         *          keyboard_manager: KeyboardManager instance
+         *          notebook: Notebook instance
+         */
         this.keyboard_manager = options.keyboard_manager;
         this.notebook = options.notebook;
         this.keyboard_manager.quick_help = this;
@@ -66,7 +68,9 @@ define([
 
 
     QuickHelp.prototype.show_keyboard_shortcuts = function () {
-        // toggles display of keyboard shortcut dialog
+        /**
+         * toggles display of keyboard shortcut dialog
+         */
         var that = this;
         if ( this.force_rebuild ) {
             this.shortcut_dialog.remove();
diff --git a/IPython/html/static/notebook/js/savewidget.js b/IPython/html/static/notebook/js/savewidget.js
index 669b1dc..d69b32c 100644
--- a/IPython/html/static/notebook/js/savewidget.js
+++ b/IPython/html/static/notebook/js/savewidget.js
@@ -12,7 +12,9 @@ define([
     "use strict";
 
     var SaveWidget = function (selector, options) {
-        // TODO: Remove circular ref.
+        /**
+         * TODO: Remove circular ref.
+         */
         this.notebook = undefined;
         this.selector = selector;
         this.events = options.events;
@@ -111,7 +113,9 @@ define([
                 "Cancel": {}
                 },
             open : function () {
-                // Upon ENTER, click the OK button.
+                /**
+                 * Upon ENTER, click the OK button.
+                 */
                 d.find('input[type="text"]').keydown(function (event) {
                     if (event.which === keyboard.keycodes.enter) {
                         d.find('.btn-primary').first().click();
@@ -206,8 +210,10 @@ define([
 
         var that = this;
         var recall  = function(t){
-            // recall slightly later (1s) as long timeout in js might be imprecise,
-            // and you want to be call **after** the change of formatting should happend.
+            /**
+             * recall slightly later (1s) as long timeout in js might be imprecise,
+             * and you want to be call **after** the change of formatting should happend.
+             */
             return setTimeout(
                 $.proxy(that._regularly_update_checkpoint_date, that),
                 t + 1000
diff --git a/IPython/html/static/notebook/js/scrollmanager.js b/IPython/html/static/notebook/js/scrollmanager.js
index 45a3f83..daebf23 100644
--- a/IPython/html/static/notebook/js/scrollmanager.js
+++ b/IPython/html/static/notebook/js/scrollmanager.js
@@ -4,47 +4,57 @@ define(['jquery'], function($){
     "use strict";
 
     var ScrollManager = function(notebook, options) {
-        // Public constructor.
+        /**
+         * Public constructor.
+         */
         this.notebook = notebook;
         options = options || {};
         this.animation_speed = options.animation_speed || 250; //ms
     };
 
     ScrollManager.prototype.scroll = function (delta) {
-        // Scroll the document.
-        //
-        // Parameters
-        // ----------
-        // delta: integer
-        //  direction to scroll the document.  Positive is downwards. 
-        //  Unit is one page length.
+        /**
+         * Scroll the document.
+         *
+         * Parameters
+         * ----------
+         * delta: integer
+         *  direction to scroll the document.  Positive is downwards. 
+         *  Unit is one page length.
+         */
         this.scroll_some(delta);
         return false;
     };
 
     ScrollManager.prototype.scroll_to = function(selector) {
-        // Scroll to an element in the notebook.
+        /**
+         * Scroll to an element in the notebook.
+         */
         $('#notebook').animate({'scrollTop': $(selector).offset().top + $('#notebook').scrollTop() - $('#notebook').offset().top}, this.animation_speed);
     };
 
     ScrollManager.prototype.scroll_some = function(pages) {
-        // Scroll up or down a given number of pages.
-        //
-        // Parameters
-        // ----------
-        // pages: integer
-        //  number of pages to scroll the document, may be positive or negative.
+        /**
+         * Scroll up or down a given number of pages.
+         *
+         * Parameters
+         * ----------
+         * pages: integer
+         *  number of pages to scroll the document, may be positive or negative.
+         */
         $('#notebook').animate({'scrollTop': $('#notebook').scrollTop() + pages * $('#notebook').height()}, this.animation_speed);
     };
 
     ScrollManager.prototype.get_first_visible_cell = function() {
-        // Gets the index of the first visible cell in the document.
-
-        // First, attempt to be smart by guessing the index of the cell we are
-        // scrolled to.  Then, walk from there up or down until the right cell 
-        // is found.  To guess the index, get the top of the last cell, and
-        // divide that by the number of cells to get an average cell height.  
-        // Then divide the scroll height by the average cell height.
+        /**
+         * Gets the index of the first visible cell in the document.
+         *
+         * First, attempt to be smart by guessing the index of the cell we are
+         * scrolled to.  Then, walk from there up or down until the right cell 
+         * is found.  To guess the index, get the top of the last cell, and
+         * divide that by the number of cells to get an average cell height.  
+         * Then divide the scroll height by the average cell height.
+         */
         var cell_count = this.notebook.ncells();
         var first_cell_top = this.notebook.get_cell(0).element.offset().top;
         var last_cell_top = this.notebook.get_cell(cell_count-1).element.offset().top;
@@ -65,34 +75,40 @@ define(['jquery'], function($){
 
 
     var TargetScrollManager = function(notebook, options) {
-        // Public constructor.
+        /**
+         * Public constructor.
+         */
         ScrollManager.apply(this, [notebook, options]);
     };
     TargetScrollManager.prototype = Object.create(ScrollManager.prototype);
 
     TargetScrollManager.prototype.is_target = function (index) {
-        // Check if a cell should be a scroll stop.
-        //
-        // Returns `true` if the cell is a cell that the scroll manager
-        // should scroll to.  Otherwise, false is returned. 
-        //
-        // Parameters
-        // ----------
-        // index: integer
-        //  index of the cell to test.
+        /**
+         * Check if a cell should be a scroll stop.
+         *
+         * Returns `true` if the cell is a cell that the scroll manager
+         * should scroll to.  Otherwise, false is returned. 
+         *
+         * Parameters
+         * ----------
+         * index: integer
+         *  index of the cell to test.
+         */
         return false;
     };
 
     TargetScrollManager.prototype.scroll = function (delta) {
-        // Scroll the document.
-        //
-        // Parameters
-        // ----------
-        // delta: integer
-        //  direction to scroll the document.  Positive is downwards.
-        //  Units are targets.
-
-        // Try to scroll to the next slide.
+        /**
+         * Scroll the document.
+         *
+         * Parameters
+         * ----------
+         * delta: integer
+         *  direction to scroll the document.  Positive is downwards.
+         *  Units are targets.
+         *
+         * Try to scroll to the next slide.
+         */
         var cell_count = this.notebook.ncells();
         var selected_index = this.get_first_visible_cell() + delta;
         while (0 <= selected_index && selected_index < cell_count && !this.is_target(selected_index)) {
@@ -111,7 +127,9 @@ define(['jquery'], function($){
 
 
     var SlideScrollManager = function(notebook, options) {
-        // Public constructor.
+        /**
+         * Public constructor.
+         */
         TargetScrollManager.apply(this, [notebook, options]);
     };
     SlideScrollManager.prototype = Object.create(TargetScrollManager.prototype);
@@ -126,7 +144,9 @@ define(['jquery'], function($){
 
 
     var HeadingScrollManager = function(notebook, options) {
-        // Public constructor.
+        /**
+         * Public constructor.
+         */
         ScrollManager.apply(this, [notebook, options]);
         options = options || {};
         this._level = options.heading_level || 1;
@@ -134,16 +154,18 @@ define(['jquery'], function($){
     HeadingScrollManager.prototype = Object.create(ScrollManager.prototype)
 
     HeadingScrollManager.prototype.scroll = function (delta) {
-        // Scroll the document.
-        //
-        // Parameters
-        // ----------
-        // delta: integer
-        //  direction to scroll the document.  Positive is downwards.
-        //  Units are headers.
-
-        // Get all of the header elements that match the heading level or are of
-        // greater magnitude (a smaller header number).
+        /**
+         * Scroll the document.
+         *
+         * Parameters
+         * ----------
+         * delta: integer
+         *  direction to scroll the document.  Positive is downwards.
+         *  Units are headers.
+         *
+         * Get all of the header elements that match the heading level or are of
+         * greater magnitude (a smaller header number).
+         */
         var headers = $();
         var i;
         for (i = 1; i <= this._level; i++) {
diff --git a/IPython/html/static/notebook/js/textcell.js b/IPython/html/static/notebook/js/textcell.js
index 012e632..cf3feed 100644
--- a/IPython/html/static/notebook/js/textcell.js
+++ b/IPython/html/static/notebook/js/textcell.js
@@ -18,18 +18,20 @@ define([
     var Cell = cell.Cell;
 
     var TextCell = function (options) {
-        // Constructor
-        //
-        // Construct a new TextCell, codemirror mode is by default 'htmlmixed', 
-        // and cell type is 'text' cell start as not redered.
-        //
-        // Parameters:
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          events: $(Events) instance 
-        //          config: dictionary
-        //          keyboard_manager: KeyboardManager instance 
-        //          notebook: Notebook instance
+        /**
+         * Constructor
+         *
+         * Construct a new TextCell, codemirror mode is by default 'htmlmixed', 
+         * and cell type is 'text' cell start as not redered.
+         *
+         * Parameters:
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          events: $(Events) instance 
+         *          config: dictionary
+         *          keyboard_manager: KeyboardManager instance 
+         *          notebook: Notebook instance
+         */
         options = options || {};
 
         // in all TextCell/Cell subclasses
@@ -195,15 +197,17 @@ define([
 
 
     var MarkdownCell = function (options) {
-        // Constructor
-        //
-        // Parameters:
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          events: $(Events) instance 
-        //          config: dictionary
-        //          keyboard_manager: KeyboardManager instance 
-        //          notebook: Notebook instance
+        /**
+         * Constructor
+         *
+         * Parameters:
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          events: $(Events) instance 
+         *          config: dictionary
+         *          keyboard_manager: KeyboardManager instance 
+         *          notebook: Notebook instance
+         */
         options = options || {};
         var config = utils.mergeopt(MarkdownCell, options.config);
         TextCell.apply(this, [$.extend({}, options, {config: config})]);
@@ -221,7 +225,9 @@ define([
     MarkdownCell.prototype = Object.create(TextCell.prototype);
 
     MarkdownCell.prototype.set_heading_level = function (level) {
-        // make a markdown cell a heading
+        /**
+         * make a markdown cell a heading
+         */
         level = level || 1;
         var source = this.get_text();
         source = source.replace(/^(#*)\s?/,
@@ -274,15 +280,17 @@ define([
 
 
     var RawCell = function (options) {
-        // Constructor
-        //
-        // Parameters:
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          events: $(Events) instance 
-        //          config: dictionary
-        //          keyboard_manager: KeyboardManager instance 
-        //          notebook: Notebook instance
+        /**
+         * Constructor
+         *
+         * Parameters:
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          events: $(Events) instance 
+         *          config: dictionary
+         *          keyboard_manager: KeyboardManager instance 
+         *          notebook: Notebook instance
+         */
         options = options || {};
         var config = utils.mergeopt(RawCell, options.config);
         TextCell.apply(this, [$.extend({}, options, {config: config})]);
diff --git a/IPython/html/static/notebook/js/tooltip.js b/IPython/html/static/notebook/js/tooltip.js
index 9f0b99b..b60cfea 100644
--- a/IPython/html/static/notebook/js/tooltip.js
+++ b/IPython/html/static/notebook/js/tooltip.js
@@ -116,7 +116,9 @@ define([
     };
 
     Tooltip.prototype.showInPager = function (cell) {
-        // reexecute last call in pager by appending ? to show back in pager
+        /**
+         * reexecute last call in pager by appending ? to show back in pager
+         */
         this.events.trigger('open_with_text.Pager', this._reply.content);
         this.remove_and_cancel_tooltip();
     };
@@ -144,9 +146,11 @@ define([
     // return true on successfully removing a visible tooltip; otherwise return
     // false.
     Tooltip.prototype.remove_and_cancel_tooltip = function (force) {
-        // note that we don't handle closing directly inside the calltip
-        // as in the completer, because it is not focusable, so won't
-        // get the event.
+        /**
+         * note that we don't handle closing directly inside the calltip
+         * as in the completer, because it is not focusable, so won't
+         * get the event.
+         */
         this.cancel_pending();
         if (!this._hidden) {
           if (force || !this._sticky) {
@@ -186,9 +190,11 @@ define([
 
     // make an immediate completion request
     Tooltip.prototype.request = function (cell, hide_if_no_docstring) {
-        // request(codecell)
-        // Deal with extracting the text from the cell and counting
-        // call in a row
+        /**
+         * request(codecell)
+         * Deal with extracting the text from the cell and counting
+         * call in a row
+         */
         this.cancel_pending();
         var editor = cell.code_mirror;
         var cursor = editor.getCursor();
@@ -250,8 +256,10 @@ define([
 
     // should be called with the kernel reply to actually show the tooltip
     Tooltip.prototype._show = function (reply) {
-        // move the bubble if it is not hidden
-        // otherwise fade it
+        /**
+         * move the bubble if it is not hidden
+         * otherwise fade it
+         */
         this._reply = reply;
         var content = reply.content;
         if (!content.found) {
diff --git a/IPython/html/static/services/contents.js b/IPython/html/static/services/contents.js
index 7600560..f9bb1a2 100644
--- a/IPython/html/static/services/contents.js
+++ b/IPython/html/static/services/contents.js
@@ -7,16 +7,18 @@ define([
     'base/js/utils',
 ], function(IPython, $, utils) {
     var Contents = function(options) {
-        // Constructor
-        //
-        // A contents handles passing file operations
-        // to the back-end.  This includes checkpointing
-        // with the normal file operations.
-        //
-        // Parameters:
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          base_url: string
+        /**
+         * Constructor
+         *
+         * A contents handles passing file operations
+         * to the back-end.  This includes checkpointing
+         * with the normal file operations.
+         *
+         * Parameters:
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          base_url: string
+         */
         this.base_url = options.base_url;
     };
 
@@ -78,7 +80,9 @@ define([
      *    format: 'text' or 'base64'; only relevant for type: 'file'
      */
     Contents.prototype.get = function (path, options) {
-        // We do the call with settings so we can set cache to false.
+        /**
+         * We do the call with settings so we can set cache to false.
+         */
         var settings = {
             processData : false,
             cache : false,
@@ -151,7 +155,9 @@ define([
     };
 
     Contents.prototype.save = function(path, model) {
-        // We do the call with settings so we can set cache to false.
+        /**
+         * We do the call with settings so we can set cache to false.
+         */
         var settings = {
             processData : false,
             type : "PUT",
@@ -163,8 +169,10 @@ define([
     };
     
     Contents.prototype.copy = function(from_file, to_dir) {
-        // Copy a file into a given directory via POST
-        // The server will select the name of the copied file
+        /**
+         * Copy a file into a given directory via POST
+         * The server will select the name of the copied file
+         */
         var url = this.api_url(to_dir);
         
         var settings = {
diff --git a/IPython/html/static/services/kernels/comm.js b/IPython/html/static/services/kernels/comm.js
index 0f5363a..4af2ba6 100644
--- a/IPython/html/static/services/kernels/comm.js
+++ b/IPython/html/static/services/kernels/comm.js
@@ -21,7 +21,9 @@ define([
     };
     
     CommManager.prototype.init_kernel = function (kernel) {
-        // connect the kernel, and register message handlers
+        /**
+         * connect the kernel, and register message handlers
+         */
         this.kernel = kernel;
         var msg_types = ['comm_open', 'comm_msg', 'comm_close'];
         for (var i = 0; i < msg_types.length; i++) {
@@ -31,8 +33,10 @@ define([
     };
     
     CommManager.prototype.new_comm = function (target_name, data, callbacks, metadata) {
-        // Create a new Comm, register it, and open its Kernel-side counterpart
-        // Mimics the auto-registration in `Comm.__init__` in the IPython Comm
+        /**
+         * Create a new Comm, register it, and open its Kernel-side counterpart
+         * Mimics the auto-registration in `Comm.__init__` in the IPython Comm
+         */
         var comm = new Comm(target_name);
         this.register_comm(comm);
         comm.open(data, callbacks, metadata);
@@ -40,24 +44,32 @@ define([
     };
     
     CommManager.prototype.register_target = function (target_name, f) {
-        // Register a target function for a given target name
+        /**
+         * Register a target function for a given target name
+         */
         this.targets[target_name] = f;
     };
     
     CommManager.prototype.unregister_target = function (target_name, f) {
-        // Unregister a target function for a given target name
+        /**
+         * Unregister a target function for a given target name
+         */
         delete this.targets[target_name];
     };
     
     CommManager.prototype.register_comm = function (comm) {
-        // Register a comm in the mapping
+        /**
+         * Register a comm in the mapping
+         */
         this.comms[comm.comm_id] = Promise.resolve(comm);
         comm.kernel = this.kernel;
         return comm.comm_id;
     };
     
     CommManager.prototype.unregister_comm = function (comm) {
-        // Remove a comm from the mapping
+        /**
+         * Remove a comm from the mapping
+         */
         delete this.comms[comm.comm_id];
     };
     
diff --git a/IPython/html/static/services/kernels/kernel.js b/IPython/html/static/services/kernels/kernel.js
index f4369b7..9614d45 100644
--- a/IPython/html/static/services/kernels/kernel.js
+++ b/IPython/html/static/services/kernels/kernel.js
@@ -266,7 +266,9 @@ define([
 
         var that = this;
         var on_success = function (data, status, xhr) {
-            // get kernel info so we know what state the kernel is in
+            /**
+             * get kernel info so we know what state the kernel is in
+             */
             that.kernel_info();
             if (success) {
                 success(data, status, xhr);
@@ -538,8 +540,10 @@ define([
     };
     
     Kernel.prototype._schedule_reconnect = function () {
-        // function to call when kernel connection is lost
-        // schedules reconnect, or fires 'connection_dead' if reconnect limit is hit
+        /**
+         * function to call when kernel connection is lost
+         * schedules reconnect, or fires 'connection_dead' if reconnect limit is hit
+         */
         if (this._reconnect_attempt < this.reconnect_limit) {
             var timeout = Math.pow(2, this._reconnect_attempt);
             console.log("Connection lost, reconnecting in " + timeout + " seconds.");
diff --git a/IPython/html/static/services/kernels/serialize.js b/IPython/html/static/services/kernels/serialize.js
index c86e366..4da4c9a 100644
--- a/IPython/html/static/services/kernels/serialize.js
+++ b/IPython/html/static/services/kernels/serialize.js
@@ -31,9 +31,11 @@ define([
     };
     
     var _deserialize_binary = function(data, callback) {
-        // deserialize the binary message format
-        // callback will be called with a message whose buffers attribute
-        // will be an array of DataViews.
+        /**
+         * deserialize the binary message format
+         * callback will be called with a message whose buffers attribute
+         * will be an array of DataViews.
+         */
         if (data instanceof Blob) {
             // data is Blob, have to deserialize from ArrayBuffer in reader callback
             var reader = new FileReader();
@@ -50,7 +52,9 @@ define([
     };
 
     var deserialize = function (data, callback) {
-        // deserialize a message and pass the unpacked message object to callback
+        /**
+         * deserialize a message and pass the unpacked message object to callback
+         */
         if (typeof data === "string") {
             // text JSON message
             callback(JSON.parse(data));
@@ -61,8 +65,10 @@ define([
     };
     
     var _serialize_binary = function (msg) {
-        // implement the binary serialization protocol
-        // serializes JSON message to ArrayBuffer
+        /**
+         * implement the binary serialization protocol
+         * serializes JSON message to ArrayBuffer
+         */
         msg = _.clone(msg);
         var offsets = [];
         var buffers = [];
diff --git a/IPython/html/static/tree/js/kernellist.js b/IPython/html/static/tree/js/kernellist.js
index f522a8b..838d804 100644
--- a/IPython/html/static/tree/js/kernellist.js
+++ b/IPython/html/static/tree/js/kernellist.js
@@ -9,15 +9,17 @@ define([
     "use strict";
 
     var KernelList = function (selector, options) {
-        // Constructor
-        //
-        // Parameters:
-        //  selector: string
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          session_list: SessionList instance
-        //          base_url: string
-        //          notebook_path: string
+        /**
+         * Constructor
+         *
+         * Parameters:
+         *  selector: string
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          session_list: SessionList instance
+         *          base_url: string
+         *          notebook_path: string
+         */
         notebooklist.NotebookList.call(this, selector, $.extend({
             element_name: 'running'},
             options));
@@ -26,7 +28,9 @@ define([
     KernelList.prototype = Object.create(notebooklist.NotebookList.prototype);
 
     KernelList.prototype.add_duplicate_button = function () {
-        // do nothing
+        /**
+         * do nothing
+         */
     };
     
     KernelList.prototype.sessions_loaded = function (d) {
diff --git a/IPython/html/static/tree/js/main.js b/IPython/html/static/tree/js/main.js
index e2474eb..617f5f5 100644
--- a/IPython/html/static/tree/js/main.js
+++ b/IPython/html/static/tree/js/main.js
@@ -88,7 +88,9 @@ require([
     var time_refresh = 60; // in sec
 
     var enable_autorefresh = function(){
-        //refresh immediately , then start interval
+        /**
+         *refresh immediately , then start interval
+         */
         session_list.load_sessions();
         cluster_list.load_list();
 	if (terminal_list) {
diff --git a/IPython/html/static/tree/js/notebooklist.js b/IPython/html/static/tree/js/notebooklist.js
index c1f6cfd..984faf5 100644
--- a/IPython/html/static/tree/js/notebooklist.js
+++ b/IPython/html/static/tree/js/notebooklist.js
@@ -11,17 +11,19 @@ define([
     "use strict";
     
     var NotebookList = function (selector, options) {
-        // Constructor
-        //
-        // Parameters:
-        //  selector: string
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          session_list: SessionList instance
-        //          element_name: string
-        //          base_url: string
-        //          notebook_path: string
-        //          contents: Contents instance
+        /**
+         * Constructor
+         *
+         * Parameters:
+         *  selector: string
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          session_list: SessionList instance
+         *          element_name: string
+         *          base_url: string
+         *          notebook_path: string
+         *          contents: Contents instance
+         */
         var that = this;
         this.session_list = options.session_list;
         // allow code re-use by just changing element_name in kernellist.js
@@ -119,11 +121,13 @@ define([
     };
 
     NotebookList.prototype.clear_list = function (remove_uploads) {
-        // Clears the navigation tree.
-        //
-        // Parameters
-        // remove_uploads: bool=False
-        //      Should upload prompts also be removed from the tree.
+        /**
+         * Clears the navigation tree.
+         *
+         * Parameters
+         * remove_uploads: bool=False
+         *      Should upload prompts also be removed from the tree.
+         */
         if (remove_uploads) {
             this.element.children('.list_item').remove();
         } else {
@@ -378,7 +382,9 @@ define([
     };
 
     NotebookList.prototype.notebook_deleted = function(path) {
-        // Remove the deleted notebook.
+        /**
+         * Remove the deleted notebook.
+         */
         $( ":data(path)" ).each(function() {
             var element = $(this);
             if (element.data("path") == path) {
diff --git a/IPython/html/static/tree/js/sessionlist.js b/IPython/html/static/tree/js/sessionlist.js
index 34ef78c..2319cd2 100644
--- a/IPython/html/static/tree/js/sessionlist.js
+++ b/IPython/html/static/tree/js/sessionlist.js
@@ -9,13 +9,15 @@ define([
     "use strict";
 
     var SesssionList = function (options) {
-        // Constructor
-        //
-        // Parameters:
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          events: $(Events) instance
-        //          base_url : string
+        /**
+         * Constructor
+         *
+         * Parameters:
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          events: $(Events) instance
+         *          base_url : string
+         */
         this.events = options.events;
         this.sessions = {};
         this.base_url = options.base_url || utils.get_body_data("baseUrl");
diff --git a/IPython/html/static/tree/js/terminallist.js b/IPython/html/static/tree/js/terminallist.js
index 9ccf7c6..c25e7bf 100644
--- a/IPython/html/static/tree/js/terminallist.js
+++ b/IPython/html/static/tree/js/terminallist.js
@@ -10,13 +10,15 @@ define([
     "use strict";
 
     var TerminalList = function (selector, options) {
-        // Constructor
-        //
-        // Parameters:
-        //  selector: string
-        //  options: dictionary
-        //      Dictionary of keyword arguments.
-        //          base_url: string
+        /**
+         * Constructor
+         *
+         * Parameters:
+         *  selector: string
+         *  options: dictionary
+         *      Dictionary of keyword arguments.
+         *          base_url: string
+         */
         this.base_url = options.base_url || utils.get_body_data("baseUrl");
         this.element_name = options.element_name || 'terminal';
         this.selector = selector;
diff --git a/IPython/html/static/widgets/js/manager.js b/IPython/html/static/widgets/js/manager.js
index c0f17fb..edc6510 100644
--- a/IPython/html/static/widgets/js/manager.js
+++ b/IPython/html/static/widgets/js/manager.js
@@ -13,7 +13,9 @@ define([
     // WidgetManager class
     //--------------------------------------------------------------------
     var WidgetManager = function (comm_manager, notebook) {
-        // Public constructor
+        /**
+         * Public constructor
+         */
         WidgetManager._managers.push(this);
 
         // Attach a comm manager to the 
@@ -47,7 +49,9 @@ define([
     // Instance level
     //--------------------------------------------------------------------
     WidgetManager.prototype.display_view = function(msg, model) {
-        // Displays a view for a particular model.
+        /**
+         * Displays a view for a particular model.
+         */
         var that = this;
         var cell = this.get_msg_cell(msg.parent_header.msg_id);
         if (cell === null) {
@@ -67,9 +71,11 @@ define([
     };
 
     WidgetManager.prototype._handle_display_view = function (view) {
-        // Have the IPython keyboard manager disable its event
-        // handling so the widget can capture keyboard input.
-        // Note, this is only done on the outer most widgets.
+        /**
+         * Have the IPython keyboard manager disable its event
+         * handling so the widget can capture keyboard input.
+         * Note, this is only done on the outer most widgets.
+         */
         if (this.keyboard_manager) {
             this.keyboard_manager.register_events(view.$el);
         
@@ -82,10 +88,12 @@ define([
     };
     
     WidgetManager.prototype.create_view = function(model, options) {
-        // Creates a promise for a view of a given model
-
-        // Make sure the view creation is not out of order with 
-        // any state updates.
+        /**
+         * Creates a promise for a view of a given model
+         *
+         * Make sure the view creation is not out of order with 
+         * any state updates.
+         */
         model.state_change = model.state_change.then(function() {
             
             return utils.load_class(model.get('_view_name'), model.get('_view_module'),
@@ -135,7 +143,9 @@ define([
     };
 
     WidgetManager.prototype.callbacks = function (view) {
-        // callback handlers specific a view
+        /**
+         * callback handlers specific a view
+         */
         var callbacks = {};
         if (view && view.options.cell) {
 
@@ -168,12 +178,16 @@ define([
     };
 
     WidgetManager.prototype.get_model = function (model_id) {
-        // Get a promise for a model by model id.
+        /**
+         * Get a promise for a model by model id.
+         */
         return this._models[model_id];
     };
 
     WidgetManager.prototype._handle_comm_open = function (comm, msg) {
-        // Handle when a comm is opened.
+        /**
+         * Handle when a comm is opened.
+         */
         return this.create_model({
             model_name: msg.content.data.model_name, 
             model_module: msg.content.data.model_module, 
@@ -181,33 +195,35 @@ define([
     };
 
     WidgetManager.prototype.create_model = function (options) {
-        // Create and return a promise for a new widget model
-        //
-        // Minimally, one must provide the model_name and widget_class
-        // parameters to create a model from Javascript.
-        //
-        // Example
-        // --------
-        // JS:
-        // IPython.notebook.kernel.widget_manager.create_model({
-        //      model_name: 'WidgetModel', 
-        //      widget_class: 'IPython.html.widgets.widget_int.IntSlider'})
-        //      .then(function(model) { console.log('Create success!', model); },
-        //      $.proxy(console.error, console));
-        //
-        // Parameters
-        // ----------
-        // options: dictionary
-        //  Dictionary of options with the following contents:
-        //      model_name: string
-        //          Target name of the widget model to create.
-        //      model_module: (optional) string
-        //          Module name of the widget model to create.
-        //      widget_class: (optional) string
-        //          Target name of the widget in the back-end.
-        //      comm: (optional) Comm
-        
-        // Create a comm if it wasn't provided.
+        /**
+         * Create and return a promise for a new widget model
+         *
+         * Minimally, one must provide the model_name and widget_class
+         * parameters to create a model from Javascript.
+         *
+         * Example
+         * --------
+         * JS:
+         * IPython.notebook.kernel.widget_manager.create_model({
+         *      model_name: 'WidgetModel', 
+         *      widget_class: 'IPython.html.widgets.widget_int.IntSlider'})
+         *      .then(function(model) { console.log('Create success!', model); },
+         *      $.proxy(console.error, console));
+         *
+         * Parameters
+         * ----------
+         * options: dictionary
+         *  Dictionary of options with the following contents:
+         *      model_name: string
+         *          Target name of the widget model to create.
+         *      model_module: (optional) string
+         *          Module name of the widget model to create.
+         *      widget_class: (optional) string
+         *          Target name of the widget in the back-end.
+         *      comm: (optional) Comm
+         *
+         * Create a comm if it wasn't provided.
+         */
         var comm = options.comm;
         if (!comm) {
             comm = this.comm_manager.new_comm('ipython.widget', {'widget_class': options.widget_class});
diff --git a/IPython/html/static/widgets/js/widget.js b/IPython/html/static/widgets/js/widget.js
index 3336bce..cf468f0 100644
--- a/IPython/html/static/widgets/js/widget.js
+++ b/IPython/html/static/widgets/js/widget.js
@@ -11,16 +11,18 @@ define(["widgets/js/manager",
 
     var WidgetModel = Backbone.Model.extend({
         constructor: function (widget_manager, model_id, comm) {
-            // Constructor
-            //
-            // Creates a WidgetModel instance.
-            //
-            // Parameters
-            // ----------
-            // widget_manager : WidgetManager instance
-            // model_id : string
-            //      An ID unique to this model.
-            // comm : Comm instance (optional)
+            /**
+             * Constructor
+             *
+             * Creates a WidgetModel instance.
+             *
+             * Parameters
+             * ----------
+             * widget_manager : WidgetManager instance
+             * model_id : string
+             *      An ID unique to this model.
+             * comm : Comm instance (optional)
+             */
             this.widget_manager = widget_manager;
             this.state_change = Promise.resolve();
             this._buffered_state_diff = {};
@@ -43,7 +45,9 @@ define(["widgets/js/manager",
         },
 
         send: function (content, callbacks) {
-            // Send a custom msg over the comm.
+            /**
+             * Send a custom msg over the comm.
+             */
             if (this.comm !== undefined) {
                 var data = {method: 'custom', content: content};
                 this.comm.send(data, callbacks);
@@ -52,7 +56,9 @@ define(["widgets/js/manager",
         },
 
         _handle_comm_closed: function (msg) {
-            // Handle when a widget is closed.
+            /**
+             * Handle when a widget is closed.
+             */
             this.trigger('comm:close');
             this.stopListening();
             this.trigger('destroy', this);
@@ -67,7 +73,9 @@ define(["widgets/js/manager",
         },
 
         _handle_comm_msg: function (msg) {
-            // Handle incoming comm msg.
+            /**
+             * Handle incoming comm msg.
+             */
             var method = msg.content.data.method;
             var that = this;
             switch (method) {
@@ -99,9 +107,11 @@ define(["widgets/js/manager",
         },
 
         _handle_status: function (msg, callbacks) {
-            // Handle status msgs.
-
-            // execution_state : ('busy', 'idle', 'starting')
+            /**
+             * Handle status msgs.
+             *
+             * execution_state : ('busy', 'idle', 'starting')
+             */
             if (this.comm !== undefined) {
                 if (msg.content.execution_state ==='idle') {
                     // Send buffer if this message caused another message to be
@@ -119,7 +129,9 @@ define(["widgets/js/manager",
         },
 
         callbacks: function(view) {
-            // Create msg callbacks for a comm msg.
+            /**
+             * Create msg callbacks for a comm msg.
+             */
             var callbacks = this.widget_manager.callbacks(view);
 
             if (callbacks.iopub === undefined) {
@@ -134,7 +146,9 @@ define(["widgets/js/manager",
         },
 
         set: function(key, val, options) {
-            // Set a value.
+            /**
+             * Set a value.
+             */
             var return_value = WidgetModel.__super__.set.apply(this, arguments);
 
             // Backbone only remembers the diff of the most recent set()
@@ -145,9 +159,11 @@ define(["widgets/js/manager",
         },
 
         sync: function (method, model, options) {
-            // Handle sync to the back-end.  Called when a model.save() is called.
-
-            // Make sure a comm exists.
+            /**
+             * Handle sync to the back-end.  Called when a model.save() is called.
+             *
+             * Make sure a comm exists.
+             */
             var error = options.error || function() {
                 console.error('Backbone sync error:', arguments);
             };
@@ -213,14 +229,18 @@ define(["widgets/js/manager",
         },
 
         save_changes: function(callbacks) {
-            // Push this model's state to the back-end
-            //
-            // This invokes a Backbone.Sync.
+            /**
+             * Push this model's state to the back-end
+             *
+             * This invokes a Backbone.Sync.
+             */
             this.save(this._buffered_state_diff, {patch: true, callbacks: callbacks});
         },
 
         _pack_models: function(value) {
-            // Replace models with model ids recursively.
+            /**
+             * Replace models with model ids recursively.
+             */
             var that = this;
             var packed;
             if (value instanceof Backbone.Model) {
@@ -247,7 +267,9 @@ define(["widgets/js/manager",
         },
 
         _unpack_models: function(value) {
-            // Replace model ids with models recursively.
+            /**
+             * Replace model ids with models recursively.
+             */
             var that = this;
             var unpacked;
             if ($.isArray(value)) {
@@ -271,11 +293,13 @@ define(["widgets/js/manager",
         },
 
         on_some_change: function(keys, callback, context) {
-            // on_some_change(["key1", "key2"], foo, context) differs from
-            // on("change:key1 change:key2", foo, context).
-            // If the widget attributes key1 and key2 are both modified, 
-            // the second form will result in foo being called twice
-            // while the first will call foo only once.
+            /**
+             * on_some_change(["key1", "key2"], foo, context) differs from
+             * on("change:key1 change:key2", foo, context).
+             * If the widget attributes key1 and key2 are both modified, 
+             * the second form will result in foo being called twice
+             * while the first will call foo only once.
+             */
             this.on('change', function() {
                 if (keys.some(this.hasChanged, this)) {
                     callback.apply(context);
@@ -289,7 +313,9 @@ define(["widgets/js/manager",
 
     var WidgetView = Backbone.View.extend({
         initialize: function(parameters) {
-            // Public constructor.
+            /**
+             * Public constructor.
+             */
             this.model.on('change',this.update,this);
             this.options = parameters.options;
             this.id = this.id || utils.uuid();
@@ -300,31 +326,41 @@ define(["widgets/js/manager",
         },
 
         update: function(){
-            // Triggered on model change.
-            //
-            // Update view to be consistent with this.model
+            /**
+             * Triggered on model change.
+             *
+             * Update view to be consistent with this.model
+             */
         },
 
         create_child_view: function(child_model, options) {
-            // Create and promise that resolves to a child view of a given model
+            /**
+             * Create and promise that resolves to a child view of a given model
+             */
             var that = this;
             options = $.extend({ parent: this }, options || {});
             return this.model.widget_manager.create_view(child_model, options).catch(utils.reject("Couldn't create child view"), true);
         },
 
         callbacks: function(){
-            // Create msg callbacks for a comm msg.
+            /**
+             * Create msg callbacks for a comm msg.
+             */
             return this.model.callbacks(this);
         },
 
         render: function(){
-            // Render the view.
-            //
-            // By default, this is only called the first time the view is created
+            /**
+             * Render the view.
+             *
+             * By default, this is only called the first time the view is created
+             */
         },
 
         show: function(){
-            // Show the widget-area
+            /**
+             * Show the widget-area
+             */
             if (this.options && this.options.cell &&
                 this.options.cell.widget_area !== undefined) {
                 this.options.cell.widget_area.show();
@@ -332,7 +368,9 @@ define(["widgets/js/manager",
         },
 
         send: function (content) {
-            // Send a custom msg associated with this view.
+            /**
+             * Send a custom msg associated with this view.
+             */
             this.model.send(content, this.callbacks());
         },
 
@@ -341,8 +379,10 @@ define(["widgets/js/manager",
         },
 
         after_displayed: function (callback, context) {
-            // Calls the callback right away is the view is already displayed
-            // otherwise, register the callback to the 'displayed' event.
+            /**
+             * Calls the callback right away is the view is already displayed
+             * otherwise, register the callback to the 'displayed' event.
+             */
             if (this.is_displayed) {
                 callback.apply(context);
             } else {
@@ -354,7 +394,9 @@ define(["widgets/js/manager",
 
     var DOMWidgetView = WidgetView.extend({
         initialize: function (parameters) {
-            // Public constructor
+            /**
+             * Public constructor
+             */
             DOMWidgetView.__super__.initialize.apply(this, [parameters]);
             this.on('displayed', this.show, this);
             this.model.on('change:visible', this.update_visible, this);
@@ -431,7 +473,9 @@ define(["widgets/js/manager",
         },
 
         _default_px: function(value) {
-            // Makes browser interpret a numerical string as a pixel value.
+            /**
+             * Makes browser interpret a numerical string as a pixel value.
+             */
             if (/^\d+\.?(\d+)?$/.test(value.trim())) {
                 return value.trim() + 'px';
             }
@@ -439,17 +483,23 @@ define(["widgets/js/manager",
         },
 
         update_attr: function(name, value) {
-            // Set a css attr of the widget view.
+            /**
+             * Set a css attr of the widget view.
+             */
             this.$el.css(name, value);
         },
 
         update_visible: function(model, value) {
-            // Update visibility
+            /**
+             * Update visibility
+             */
             this.$el.toggle(value);
          },
 
         update_css: function (model, css) {
-            // Update the css styling of this view.
+            /**
+             * Update the css styling of this view.
+             */
             var e = this.$el;
             if (css === undefined) {return;}
             for (var i = 0; i < css.length; i++) {
@@ -465,7 +515,9 @@ define(["widgets/js/manager",
         },
 
         update_classes: function (old_classes, new_classes, $el) {
-            // Update the DOM classes applied to an element, default to this.$el.
+            /**
+             * Update the DOM classes applied to an element, default to this.$el.
+             */
             if ($el===undefined) {
                 $el = this.$el;
             }
@@ -474,30 +526,32 @@ define(["widgets/js/manager",
         },
 
         update_mapped_classes: function(class_map, trait_name, previous_trait_value, $el) {
-            // Update the DOM classes applied to the widget based on a single
-            // trait's value.
-            //
-            // Given a trait value classes map, this function automatically
-            // handles applying the appropriate classes to the widget element
-            // and removing classes that are no longer valid.
-            //
-            // Parameters
-            // ----------
-            // class_map: dictionary
-            //  Dictionary of trait values to class lists.
-            //  Example:
-            //      {
-            //          success: ['alert', 'alert-success'],
-            //          info: ['alert', 'alert-info'],
-            //          warning: ['alert', 'alert-warning'],
-            //          danger: ['alert', 'alert-danger']
-            //      };
-            // trait_name: string
-            //  Name of the trait to check the value of.
-            // previous_trait_value: optional string, default ''
-            //  Last trait value
-            // $el: optional jQuery element handle, defaults to this.$el
-            //  Element that the classes are applied to.
+            /**
+             * Update the DOM classes applied to the widget based on a single
+             * trait's value.
+             *
+             * Given a trait value classes map, this function automatically
+             * handles applying the appropriate classes to the widget element
+             * and removing classes that are no longer valid.
+             *
+             * Parameters
+             * ----------
+             * class_map: dictionary
+             *  Dictionary of trait values to class lists.
+             *  Example:
+             *      {
+             *          success: ['alert', 'alert-success'],
+             *          info: ['alert', 'alert-info'],
+             *          warning: ['alert', 'alert-warning'],
+             *          danger: ['alert', 'alert-danger']
+             *      };
+             * trait_name: string
+             *  Name of the trait to check the value of.
+             * previous_trait_value: optional string, default ''
+             *  Last trait value
+             * $el: optional jQuery element handle, defaults to this.$el
+             *  Element that the classes are applied to.
+             */
             var key = previous_trait_value;
             if (key === undefined) {
                 key = this.model.previous(trait_name);
@@ -510,7 +564,9 @@ define(["widgets/js/manager",
         },
         
         _get_selector_element: function (selector) {
-            // Get the elements via the css selector.
+            /**
+             * Get the elements via the css selector.
+             */
             var elements;
             if (!selector) {
                 elements = this.$el;
@@ -523,16 +579,18 @@ define(["widgets/js/manager",
 
 
     var ViewList = function(create_view, remove_view, context) {
-        // * create_view and remove_view are default functions called when adding or removing views
-        // * create_view takes a model and returns a view or a promise for a view for that model
-        // * remove_view takes a view and destroys it (including calling `view.remove()`)
-        // * each time the update() function is called with a new list, the create and remove
-        //   callbacks will be called in an order so that if you append the views created in the
-        //   create callback and remove the views in the remove callback, you will duplicate 
-        //   the order of the list.
-        // * the remove callback defaults to just removing the view (e.g., pass in null for the second parameter)
-        // * the context defaults to the created ViewList.  If you pass another context, the create and remove
-        //   will be called in that context.
+        /**
+         * * create_view and remove_view are default functions called when adding or removing views
+         * * create_view takes a model and returns a view or a promise for a view for that model
+         * * remove_view takes a view and destroys it (including calling `view.remove()`)
+         * * each time the update() function is called with a new list, the create and remove
+         *   callbacks will be called in an order so that if you append the views created in the
+         *   create callback and remove the views in the remove callback, you will duplicate 
+         *   the order of the list.
+         * * the remove callback defaults to just removing the view (e.g., pass in null for the second parameter)
+         * * the context defaults to the created ViewList.  If you pass another context, the create and remove
+         *   will be called in that context.
+         */
 
         this.initialize.apply(this, arguments);
     };
@@ -548,9 +606,11 @@ define(["widgets/js/manager",
         },
 
         update: function(new_models, create_view, remove_view, context) {
-            // the create_view, remove_view, and context arguments override the defaults
-            // specified when the list is created.
-            // returns a promise that resolves after this update is done
+            /**
+             * the create_view, remove_view, and context arguments override the defaults
+             * specified when the list is created.
+             * returns a promise that resolves after this update is done
+             */
             var remove = remove_view || this._remove_view;
             var create = create_view || this._create_view;
             if (create === undefined || remove === undefined){
@@ -588,9 +648,11 @@ define(["widgets/js/manager",
         },
 
         remove: function() {
-            // removes every view in the list; convenience function for `.update([])`
-            // that should be faster
-            // returns a promise that resolves after this removal is done
+            /**
+             * removes every view in the list; convenience function for `.update([])`
+             * that should be faster
+             * returns a promise that resolves after this removal is done
+             */
             var that = this;
             this.state_change = this.state_change.then(function() {
                 for (var i = 0; i < that.views.length; i++) {
diff --git a/IPython/html/static/widgets/js/widget_bool.js b/IPython/html/static/widgets/js/widget_bool.js
index f8406ab..6fea2cd 100644
--- a/IPython/html/static/widgets/js/widget_bool.js
+++ b/IPython/html/static/widgets/js/widget_bool.js
@@ -9,7 +9,9 @@ define([
 
     var CheckboxView = widget.DOMWidgetView.extend({
         render : function(){
-            // Called when view is rendered.
+            /**
+             * Called when view is rendered.
+             */
             this.$el
                 .addClass('widget-hbox widget-checkbox');
             this.$label = $('
') @@ -25,25 +27,31 @@ define([ }, update_attr: function(name, value) { - // Set a css attr of the widget view. + /** + * Set a css attr of the widget view. + */ this.$checkbox.css(name, value); }, handle_click: function() { - // Handles when the checkbox is clicked. - - // Calling model.set will trigger all of the other views of the - // model to update. + /** + * Handles when the checkbox is clicked. + * + * Calling model.set will trigger all of the other views of the + * model to update. + */ var value = this.model.get('value'); this.model.set('value', ! value, {updated_view: this}); this.touch(); }, update : function(options){ - // Update the contents of this view - // - // Called when the model is changed. The model may have been - // changed by another view or by a state update from the back-end. + /** + * Update the contents of this view + * + * Called when the model is changed. The model may have been + * changed by another view or by a state update from the back-end. + */ this.$checkbox.prop('checked', this.model.get('value')); if (options === undefined || options.updated_view != this) { @@ -67,7 +75,9 @@ define([ var ToggleButtonView = widget.DOMWidgetView.extend({ render : function() { - // Called when view is rendered. + /** + * Called when view is rendered. + */ var that = this; this.setElement($('