@hpcc-js/observablehq-compiler
An unofficial compiler, interpreter and download tool for Observable HQ notebooks.
Quick Start
This library contains a command line tool (ojscc
) for downloading and compiling notebooks and an interpreter for rendering notebooks in the browser:
Command line interface
To call ojscc
without installing:
npx -p @hpcc-js/observablehq-compiler ojscc [download | compile] ...
To install ojscc
as a global command:
npm install --global @hpcc-js/observablehq-compiler
Then it can be called by:
ojscc [download | compile] ...
Usage:
General:
ojscc [command]
Commands:
ojscc download Download ObservableHQ Notebook
ojscc compile Compile ObservableHQ Notebook
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
Download:
ojscc download [-o myfile.ojsnb] https://observablehq.com/@user/notebook
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
-o, --output Optional output file path
Compile:
ojscc compile [-o myfile.js] myfile.ojsnb
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
-o, --output Optional output file path
JS Interpreter
To install with npm :
npm install --save @hpcc-js/observablehq-compiler
The interpreter is 100% compatible with:
It also supports fetching notebooks directly from the ObservableHQ repository.
import { Library, Runtime, Inspector } from "@observablehq/runtime";
import { download, compile } from "@hpcc-js/observablehq-compiler";
const placeholder = document.getElementById("placeholder");
const ohqnb = await download("https://observablehq.com/@observablehq/summary-table");
const compiledNB = await compile(ohqnb);
const library = new Library();
const runtime = new Runtime(library);
compiledNB(runtime, name => {
const div = document.createElement("div");
placeholder.appendChild(div);
return new Inspector(div);
});
Which produces (screenshot):