Socket
Socket
Sign inDemoInstall

notebookjs

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

notebookjs - npm Package Compare versions

Comparing version 0.6.7 to 0.8.0

28

notebook.js
// http://github.com/jsvine/notebookjs
// notebook.js may be freely distributed under the MIT license.
(function () {
var VERSION = "0.6.7";
var VERSION = "0.8.0";
var root = this;

@@ -46,3 +46,4 @@ var isBrowser = root.window !== undefined;

var getMarkdown = function () {
return root.marked || (typeof require === "function" && require("marked"));
var lib = root.marked || (typeof require === "function" && require("marked"));
return lib && lib.parse;
};

@@ -70,2 +71,3 @@

sanitizer: getSanitizer() || ident,
executeJavaScript: false,
highlighter: ident,

@@ -114,3 +116,3 @@ VERSION: VERSION

var el = makeElement("pre", [ "text-output" ]);
el.innerHTML = nb.highlighter(nb.ansi(joinText(text)), el);
el.innerHTML = nb.sanitizer(nb.highlighter(nb.ansi(joinText(text)), el));
return el;

@@ -134,3 +136,3 @@ };

var el = makeElement("div", [ "svg-output" ]);
el.innerHTML = joinText(svg);
el.innerHTML = nb.sanitizer(joinText(svg));
return el;

@@ -144,2 +146,8 @@ };

el.innerHTML = joinText(latex);
if (root.renderMathInElement != null) {
el.innerText = joinText(latex);
root.renderMathInElement(el, { delimiters: math_delimiters });
} else {
el.innerText = joinText(latex);
}
return el;

@@ -150,5 +158,11 @@ };

nb.display.javascript = function (js) {
var el = makeElement("script");
el.innerHTML = joinText(js);
return el;
if(nb.executeJavaScript){
var el = makeElement("script");
el.innerHTML = joinText(js);
return el;
} else {
var el = document.createElement("pre");
el.innerText = "JavaScript execution is disabled for this notebook";
return el;
}
};

@@ -155,0 +169,0 @@ nb.display["application/javascript"] = nb.display.javascript;

@@ -1,1 +0,1 @@

(function(){var VERSION="0.6.7";var root=this;var isBrowser=root.window!==undefined;var doc;if(isBrowser){doc=root.document}else{var jsdom=require("jsdom");var dom=new jsdom.JSDOM;doc=dom.window.document}var ident=function(x){return x};var makeElement=function(tag,classNames){var el=doc.createElement(tag);el.className=(classNames||[]).map(function(cn){return nb.prefix+cn}).join(" ");return el};var escapeHTML=function(raw){var replaced=raw.replace(/</g,"&lt;").replace(/>/g,"&gt;");return replaced};var joinText=function(text){if(text.join){return text.map(joinText).join("")}else{return text}};var getMarkdown=function(){return root.marked||typeof require==="function"&&require("marked")};var getAnsi=function(){var lib=root.ansi_up||typeof require==="function"&&require("ansi_up");return lib&&lib.ansi_to_html};var getSanitizer=function(){var lib=root.DOMPurify||typeof require==="function"&&require("dompurify");if(isBrowser){return lib&&lib.sanitize}else{return lib(dom.window).sanitize}};var nb={prefix:"nb-",markdown:getMarkdown()||ident,ansi:getAnsi()||ident,sanitizer:getSanitizer()||ident,highlighter:ident,VERSION:VERSION};nb.Input=function(raw,cell){this.raw=raw;this.cell=cell};nb.Input.prototype.render=function(){if(!this.raw.length){return makeElement("div")}var holder=makeElement("div",["input"]);var cell=this.cell;if(typeof cell.number==="number"){holder.setAttribute("data-prompt-number",this.cell.number)}var pre_el=makeElement("pre");var code_el=makeElement("code");var notebook=cell.worksheet.notebook;var m=notebook.metadata;var lang=this.cell.raw.language||m.language||m.kernelspec&&m.kernelspec.language||m.language_info&&m.language_info.name;code_el.setAttribute("data-language",lang);code_el.className="lang-"+lang;code_el.innerHTML=nb.highlighter(escapeHTML(joinText(this.raw)),pre_el,code_el,lang);pre_el.appendChild(code_el);holder.appendChild(pre_el);this.el=holder;return holder};var imageCreator=function(format){return function(data){var el=makeElement("img",["image-output"]);el.src="data:image/"+format+";base64,"+joinText(data).replace(/\n/g,"");return el}};nb.display={};nb.display.text=function(text){var el=makeElement("pre",["text-output"]);el.innerHTML=nb.highlighter(nb.ansi(joinText(text)),el);return el};nb.display["text/plain"]=nb.display.text;nb.display.html=function(html){var el=makeElement("div",["html-output"]);el.innerHTML=nb.sanitizer(joinText(html));return el};nb.display["text/html"]=nb.display.html;nb.display.marked=function(md){return nb.display.html(nb.markdown(joinText(md)))};nb.display["text/markdown"]=nb.display.marked;nb.display.svg=function(svg){var el=makeElement("div",["svg-output"]);el.innerHTML=joinText(svg);return el};nb.display["text/svg+xml"]=nb.display.svg;nb.display["image/svg+xml"]=nb.display.svg;nb.display.latex=function(latex){var el=makeElement("div",["latex-output"]);el.innerHTML=joinText(latex);return el};nb.display["text/latex"]=nb.display.latex;nb.display.javascript=function(js){var el=makeElement("script");el.innerHTML=joinText(js);return el};nb.display["application/javascript"]=nb.display.javascript;nb.display.png=imageCreator("png");nb.display["image/png"]=nb.display.png;nb.display.jpeg=imageCreator("jpeg");nb.display["image/jpeg"]=nb.display.jpeg;nb.display_priority=["png","image/png","jpeg","image/jpeg","svg","image/svg+xml","text/svg+xml","html","text/html","text/markdown","latex","text/latex","javascript","application/javascript","text","text/plain"];var render_display_data=function(){var o=this;var formats=nb.display_priority.filter(function(d){return o.raw.data?o.raw.data[d]:o.raw[d]});var format=formats[0];if(format){if(nb.display[format]){return nb.display[format](o.raw[format]||o.raw.data[format])}}return makeElement("div",["empty-output"])};var render_error=function(){var el=makeElement("pre",["pyerr"]);var raw=this.raw.traceback.join("\n");el.innerHTML=nb.highlighter(nb.ansi(escapeHTML(raw)),el);return el};nb.Output=function(raw,cell){this.raw=raw;this.cell=cell;this.type=raw.output_type};nb.Output.prototype.renderers={display_data:render_display_data,execute_result:render_display_data,pyout:render_display_data,pyerr:render_error,error:render_error,stream:function(){var el=makeElement("pre",[this.raw.stream||this.raw.name]);var raw=joinText(this.raw.text);el.innerHTML=nb.highlighter(nb.ansi(escapeHTML(raw)),el);return el}};nb.Output.prototype.render=function(){var outer=makeElement("div",["output"]);if(typeof this.cell.number==="number"){outer.setAttribute("data-prompt-number",this.cell.number)}var inner=this.renderers[this.type].call(this);outer.appendChild(inner);this.el=outer;return outer};nb.coalesceStreams=function(outputs){if(!outputs.length){return outputs}var last=outputs[0];var new_outputs=[last];outputs.slice(1).forEach(function(o){if(o.raw.output_type==="stream"&&last.raw.output_type==="stream"&&o.raw.stream===last.raw.stream&&o.raw.name===last.raw.name){last.raw.text=last.raw.text.concat(o.raw.text)}else{new_outputs.push(o);last=o}});return new_outputs};nb.Cell=function(raw,worksheet){var cell=this;cell.raw=raw;cell.worksheet=worksheet;cell.type=raw.cell_type;if(cell.type==="code"){cell.number=raw.prompt_number>-1?raw.prompt_number:raw.execution_count;var source=raw.input||[raw.source];cell.input=new nb.Input(source,cell);var raw_outputs=(cell.raw.outputs||[]).map(function(o){return new nb.Output(o,cell)});cell.outputs=nb.coalesceStreams(raw_outputs)}};var math_delimiters=[{left:"$$",right:"$$",display:true},{left:"\\[",right:"\\]",display:true},{left:"\\(",right:"\\)",display:false},{left:"$",right:"$",display:false}];nb.Cell.prototype.renderers={markdown:function(){var el=makeElement("div",["cell","markdown-cell"]);var joined=joinText(this.raw.source);if(root.renderMathInElement!=null){el.innerHTML=nb.sanitizer(joined);root.renderMathInElement(el,{delimiters:math_delimiters});el.innerHTML=nb.sanitizer(nb.markdown(el.innerHTML.replace(/&gt;/g,">")))}else{el.innerHTML=nb.sanitizer(nb.markdown(joined))}return el},heading:function(){var el=makeElement("h"+this.raw.level,["cell","heading-cell"]);el.innerHTML=nb.sanitizer(joinText(this.raw.source));return el},raw:function(){var el=makeElement("div",["cell","raw-cell"]);el.innerHTML=escapeHTML(joinText(this.raw.source));return el},code:function(){var cell_el=makeElement("div",["cell","code-cell"]);cell_el.appendChild(this.input.render());var output_els=this.outputs.forEach(function(o){cell_el.appendChild(o.render())});return cell_el}};nb.Cell.prototype.render=function(){var el=this.renderers[this.type].call(this);this.el=el;return el};nb.Worksheet=function(raw,notebook){var worksheet=this;this.raw=raw;this.notebook=notebook;this.cells=raw.cells.map(function(c){return new nb.Cell(c,worksheet)});this.render=function(){var worksheet_el=makeElement("div",["worksheet"]);worksheet.cells.forEach(function(c){worksheet_el.appendChild(c.render())});this.el=worksheet_el;return worksheet_el}};nb.Notebook=function(raw,config){var notebook=this;this.raw=raw;this.config=config;var meta=this.metadata=raw.metadata||{};this.title=meta.title||meta.name;var _worksheets=raw.worksheets||[{cells:raw.cells}];this.worksheets=_worksheets.map(function(ws){return new nb.Worksheet(ws,notebook)});this.sheet=this.worksheets[0]};nb.Notebook.prototype.render=function(){var notebook_el=makeElement("div",["notebook"]);this.worksheets.forEach(function(w){notebook_el.appendChild(w.render())});this.el=notebook_el;return notebook_el};nb.parse=function(nbjson,config){return new nb.Notebook(nbjson,config)};if(typeof define==="function"&&define.amd){define(function(){return nb})}if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=nb}exports.nb=nb}else{root.nb=nb}}).call(this);
(function(){var VERSION="0.8.0";var root=this;var isBrowser=root.window!==undefined;var doc;if(isBrowser){doc=root.document}else{var jsdom=require("jsdom");var dom=new jsdom.JSDOM;doc=dom.window.document}var ident=function(x){return x};var makeElement=function(tag,classNames){var el=doc.createElement(tag);el.className=(classNames||[]).map(function(cn){return nb.prefix+cn}).join(" ");return el};var escapeHTML=function(raw){var replaced=raw.replace(/</g,"&lt;").replace(/>/g,"&gt;");return replaced};var joinText=function(text){if(text.join){return text.map(joinText).join("")}else{return text}};var getMarkdown=function(){var lib=root.marked||typeof require==="function"&&require("marked");return lib&&lib.parse};var getAnsi=function(){var lib=root.ansi_up||typeof require==="function"&&require("ansi_up");return lib&&lib.ansi_to_html};var getSanitizer=function(){var lib=root.DOMPurify||typeof require==="function"&&require("dompurify");if(isBrowser){return lib&&lib.sanitize}else{return lib(dom.window).sanitize}};var nb={prefix:"nb-",markdown:getMarkdown()||ident,ansi:getAnsi()||ident,sanitizer:getSanitizer()||ident,executeJavaScript:false,highlighter:ident,VERSION:VERSION};nb.Input=function(raw,cell){this.raw=raw;this.cell=cell};nb.Input.prototype.render=function(){if(!this.raw.length){return makeElement("div")}var holder=makeElement("div",["input"]);var cell=this.cell;if(typeof cell.number==="number"){holder.setAttribute("data-prompt-number",this.cell.number)}var pre_el=makeElement("pre");var code_el=makeElement("code");var notebook=cell.worksheet.notebook;var m=notebook.metadata;var lang=this.cell.raw.language||m.language||m.kernelspec&&m.kernelspec.language||m.language_info&&m.language_info.name;code_el.setAttribute("data-language",lang);code_el.className="lang-"+lang;code_el.innerHTML=nb.highlighter(escapeHTML(joinText(this.raw)),pre_el,code_el,lang);pre_el.appendChild(code_el);holder.appendChild(pre_el);this.el=holder;return holder};var imageCreator=function(format){return function(data){var el=makeElement("img",["image-output"]);el.src="data:image/"+format+";base64,"+joinText(data).replace(/\n/g,"");return el}};nb.display={};nb.display.text=function(text){var el=makeElement("pre",["text-output"]);el.innerHTML=nb.sanitizer(nb.highlighter(nb.ansi(joinText(text)),el));return el};nb.display["text/plain"]=nb.display.text;nb.display.html=function(html){var el=makeElement("div",["html-output"]);el.innerHTML=nb.sanitizer(joinText(html));return el};nb.display["text/html"]=nb.display.html;nb.display.marked=function(md){return nb.display.html(nb.markdown(joinText(md)))};nb.display["text/markdown"]=nb.display.marked;nb.display.svg=function(svg){var el=makeElement("div",["svg-output"]);el.innerHTML=nb.sanitizer(joinText(svg));return el};nb.display["text/svg+xml"]=nb.display.svg;nb.display["image/svg+xml"]=nb.display.svg;nb.display.latex=function(latex){var el=makeElement("div",["latex-output"]);el.innerHTML=joinText(latex);if(root.renderMathInElement!=null){el.innerText=joinText(latex);root.renderMathInElement(el,{delimiters:math_delimiters})}else{el.innerText=joinText(latex)}return el};nb.display["text/latex"]=nb.display.latex;nb.display.javascript=function(js){if(nb.executeJavaScript){var el=makeElement("script");el.innerHTML=joinText(js);return el}else{var el=document.createElement("pre");el.innerText="JavaScript execution is disabled for this notebook";return el}};nb.display["application/javascript"]=nb.display.javascript;nb.display.png=imageCreator("png");nb.display["image/png"]=nb.display.png;nb.display.jpeg=imageCreator("jpeg");nb.display["image/jpeg"]=nb.display.jpeg;nb.display_priority=["png","image/png","jpeg","image/jpeg","svg","image/svg+xml","text/svg+xml","html","text/html","text/markdown","latex","text/latex","javascript","application/javascript","text","text/plain"];var render_display_data=function(){var o=this;var formats=nb.display_priority.filter(function(d){return o.raw.data?o.raw.data[d]:o.raw[d]});var format=formats[0];if(format){if(nb.display[format]){return nb.display[format](o.raw[format]||o.raw.data[format])}}return makeElement("div",["empty-output"])};var render_error=function(){var el=makeElement("pre",["pyerr"]);var raw=this.raw.traceback.join("\n");el.innerHTML=nb.highlighter(nb.ansi(escapeHTML(raw)),el);return el};nb.Output=function(raw,cell){this.raw=raw;this.cell=cell;this.type=raw.output_type};nb.Output.prototype.renderers={display_data:render_display_data,execute_result:render_display_data,pyout:render_display_data,pyerr:render_error,error:render_error,stream:function(){var el=makeElement("pre",[this.raw.stream||this.raw.name]);var raw=joinText(this.raw.text);el.innerHTML=nb.highlighter(nb.ansi(escapeHTML(raw)),el);return el}};nb.Output.prototype.render=function(){var outer=makeElement("div",["output"]);if(typeof this.cell.number==="number"){outer.setAttribute("data-prompt-number",this.cell.number)}var inner=this.renderers[this.type].call(this);outer.appendChild(inner);this.el=outer;return outer};nb.coalesceStreams=function(outputs){if(!outputs.length){return outputs}var last=outputs[0];var new_outputs=[last];outputs.slice(1).forEach(function(o){if(o.raw.output_type==="stream"&&last.raw.output_type==="stream"&&o.raw.stream===last.raw.stream&&o.raw.name===last.raw.name){last.raw.text=last.raw.text.concat(o.raw.text)}else{new_outputs.push(o);last=o}});return new_outputs};nb.Cell=function(raw,worksheet){var cell=this;cell.raw=raw;cell.worksheet=worksheet;cell.type=raw.cell_type;if(cell.type==="code"){cell.number=raw.prompt_number>-1?raw.prompt_number:raw.execution_count;var source=raw.input||[raw.source];cell.input=new nb.Input(source,cell);var raw_outputs=(cell.raw.outputs||[]).map(function(o){return new nb.Output(o,cell)});cell.outputs=nb.coalesceStreams(raw_outputs)}};var math_delimiters=[{left:"$$",right:"$$",display:true},{left:"\\[",right:"\\]",display:true},{left:"\\(",right:"\\)",display:false},{left:"$",right:"$",display:false}];nb.Cell.prototype.renderers={markdown:function(){var el=makeElement("div",["cell","markdown-cell"]);var joined=joinText(this.raw.source);if(root.renderMathInElement!=null){el.innerHTML=nb.sanitizer(joined);root.renderMathInElement(el,{delimiters:math_delimiters});el.innerHTML=nb.sanitizer(nb.markdown(el.innerHTML.replace(/&gt;/g,">")))}else{el.innerHTML=nb.sanitizer(nb.markdown(joined))}return el},heading:function(){var el=makeElement("h"+this.raw.level,["cell","heading-cell"]);el.innerHTML=nb.sanitizer(joinText(this.raw.source));return el},raw:function(){var el=makeElement("div",["cell","raw-cell"]);el.innerHTML=escapeHTML(joinText(this.raw.source));return el},code:function(){var cell_el=makeElement("div",["cell","code-cell"]);cell_el.appendChild(this.input.render());var output_els=this.outputs.forEach(function(o){cell_el.appendChild(o.render())});return cell_el}};nb.Cell.prototype.render=function(){var el=this.renderers[this.type].call(this);this.el=el;return el};nb.Worksheet=function(raw,notebook){var worksheet=this;this.raw=raw;this.notebook=notebook;this.cells=raw.cells.map(function(c){return new nb.Cell(c,worksheet)});this.render=function(){var worksheet_el=makeElement("div",["worksheet"]);worksheet.cells.forEach(function(c){worksheet_el.appendChild(c.render())});this.el=worksheet_el;return worksheet_el}};nb.Notebook=function(raw,config){var notebook=this;this.raw=raw;this.config=config;var meta=this.metadata=raw.metadata||{};this.title=meta.title||meta.name;var _worksheets=raw.worksheets||[{cells:raw.cells}];this.worksheets=_worksheets.map(function(ws){return new nb.Worksheet(ws,notebook)});this.sheet=this.worksheets[0]};nb.Notebook.prototype.render=function(){var notebook_el=makeElement("div",["notebook"]);this.worksheets.forEach(function(w){notebook_el.appendChild(w.render())});this.el=notebook_el;return notebook_el};nb.parse=function(nbjson,config){return new nb.Notebook(nbjson,config)};if(typeof define==="function"&&define.amd){define(function(){return nb})}if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=nb}exports.nb=nb}else{root.nb=nb}}).call(this);
{
"name": "notebookjs",
"version": "0.6.7",
"version": "0.8.0",
"description": "Parse and render Jupyter/IPython notebooks.",

@@ -15,7 +15,10 @@ "main": "notebook.js",

"dependencies": {
"ansi_up": "^5.0.1",
"dompurify": "^2.2.9",
"jsdom": "^16.6.0",
"marked": "^4.0.10"
"ansi_up": "^6.0.2",
"dompurify": "^3.0.8",
"jsdom": "^23.2.0",
"marked": "^11.1.1"
},
"devDependencies": {
"uglify-js": "3.17.4"
},
"repository": {

@@ -22,0 +25,0 @@ "type": "git",

@@ -1,2 +0,2 @@

# notebook.js `v0.6.7`
# notebook.js `v0.8.0`

@@ -45,3 +45,3 @@ Notebook.js parses raw [Jupyter](http://jupyter.org/)/[IPython](http://ipython.org/) notebooks, and lets you render them as HTML. See a __[working demo here](https://jsvine.github.io/nbpreview/)__.

On Node.js, notebook.js uses [marked](https://github.com/chjj/marked) for Markdown rendering, and [ansi_up](https://github.com/drudru/ansi_up) for ANSI-coloring.
On Node.js, notebook.js uses [marked](https://github.com/markedjs/marked) for Markdown rendering, and [ansi_up](https://github.com/drudru/ansi_up) for ANSI-coloring.

@@ -109,2 +109,13 @@ The browser-based version does not, however, ship with those libraries, so you must `<script>`-include or `require` them before initializing notebook.js.

## JavaScript Support
JavaScript in notebooks is not executed by default, because it opens the door for XSS attacks when using untrusted notebooks.
If you want to enable to run JavaScript set the `executeJavaScript` option to true.
```
var nb = require("notebookjs");
// Run the JavaScript in notebook. Ensure you only use this for trusted notebooks
nb.executeJavaScript = true;
var notebook = nb.parse(ipynb);
```
## Styling Rendered Notebooks

@@ -130,1 +141,3 @@

- [@ingodahn](https://github.com/ingodahn)
- [@srmibextesting](https://github.com/srmibextesting)
- [@roman-mibex-2](https://github.com/roman-mibex-2)
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc