UNPKG

@hpcc-js/observablehq-compiler

Version:
106 lines (77 loc) 2.84 kB
# @hpcc-js/observablehq-compiler An unofficial compiler, interpreter and download tool for [Observable HQ](https://observablehq.com/) notebooks. * [Quick Start](#quick-start) * [Compiler](./src/compiler) * [Utilities](./src/util) ## 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](#command-line-interface) * [JS Interpreter](#js-interpreter) ## Command line interface To call `ojscc` without installing: ```sh npx -p @hpcc-js/observablehq-compiler ojscc [download | compile] ... ``` To install `ojscc` as a global command: ```sh npm install --global @hpcc-js/observablehq-compiler ``` Then it can be called by: ```sh ojscc [download | compile] ... ``` ### Usage: General: ```sh 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: ```sh 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: ```sh 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: * [ObservableHQ Runtime](https://github.com/observablehq/runtime) * [ObservableHQ Inspector](https://github.com/observablehq/inspector) * [ObservableHQ Library](https://github.com/observablehq/library) It also supports fetching notebooks directly from the ObservableHQ repository. ```js 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): --- ![Sumary Table](./resources/summary-table.png) ---