- JavaScript via ObservableHQ JavaScript
- Markdown
- ObservableHQ Markdown
- HTML
- SQL
- SVG
- GraphViz (DOT)
- Mermaid
- LaTeX
To get the full experience, it is recommended to install this extension as part of the JavsaScript Notebook extension pack.
- Select "OJS: Download Notebook" from command palette.
- Paste URL from ObservableHQ website, for Example:
https://observablehq.com/@observablehq/five-minute-introduction
- Save file to known name and location (Note: Keep the default file extension of "ojsnb").
- In VS Code open the file.
- Click "Run All" in the notebook toolbar.
- Create a new file with either the
.ojs
or.omd
extension (optional). - Open this file in a VS Code editor instance (optional).
- Select "OJS: Import Notebook" from command palette.
- Enter
https://observablehq.com/@observablehq/a-taste-of-observable
for the import URL. - Press
Ctrl+K V
to preview notebook. - Select "OJS: Export to HTML" from the command palette.
- Double click the exported HTML file to view in browser (Note: You may need to host the file on a webserver if it is importing other libraries).
All commands are prefixed with "OJS" and are available via the command palette or by default shortcut key mappings
Command | Shortcut | Description |
---|---|---|
OJS: Check Syntax | F7 | Syntax Check |
OJS: Preview Web Page | Ctrl+K V | Preview notebook in an embedded Web Page |
OJS: Download Notebook | Download notebook from ObservableHQ | |
OJS: Import Notebook Cells | Import published or shared notebook cells into current document | |
OJS: Export to HTML | Export as a self contained HTML file | |
OJS: Export to ECL | Export as a self contained ECL attribute |
All settings are prefixed with "ojs." and are available via file -> preferneces -> settings
menu
Setting | Default | Description |
---|---|---|
ojs.refreshPreviewOnSave | true | Refresh preview (if visible) when OJS document is saved |
ojs.showRuntimeValues | false | Show runtime values as diagnostic info |
md`# Generator Test`;
function* range(n) {
for (let i = 0; i < n; ++i) {
yield i;
}
}
{
for (const i of range(Infinity)) {
yield Promises.tick(1000, i + 1);
}
}
md`# Import Test`;
import {viewof selection as cars} from "@d3/brushable-scatterplot";
viewof cars;
md`### Selection:
~~~json
${JSON.stringify(cars, undefined, 2)}
~~~
`;
# Generator Test
_Simple Generator test_
```
function* range(n) {
for (let i = 0; i < n; ++i) {
yield i;
}
}
{
for (const i of range(Infinity)) {
yield Promises.tick(1000, i + 1);
}
}
```
# Import Test
_Simple Import Test_
```
import {viewof selection as cars} from "@d3/brushable-scatterplot";
viewof cars;
```
### Selection:
```json
${JSON.stringify(cars, undefined, 2)}
```
This extension would not have been possible without the following:
- ObservableHQ/parser
- ObservableHQ/runtime
- ObservableHQ/inspector
- ObservableHQ/stdlib
- @hpcc-js/observable-md
Other recommended extensions for working with Observable notebooks formats in VS Code:
Extension | Description |
---|---|
Observable JS Notebook Inspector | VS Code extension for Interactive Preview of Observable JS Notebooks, Notebook Nodes, Cells and source code |