2025年09月14日 Drop Companion Observable Notebooks Data Loaders
| .gitignore | chore: initial commit | |
| img.png | add: img | |
| index-r.html | add: WebR | |
| index.html | add: links | |
| mise.toml | add: WebR | |
| package-lock.json | add: WebR | |
| package.json | add: WebR | |
| pyproject.toml | chore: initial commit | |
| README.md | add: WebR | |
| table-3.png | chore: initial commit | |
| try.mjs | add: WebR | |
| uv.lock | chore: initial commit | |
Observable Notebooks 2.0 Data Loader
Preview: https://rud.is/drop/2025-09-14-bonus/
This is a small, focused sample notebook to show how to use data loaders with Observable Notebooks 2.0.
This one turns a PDF table into numeric values for an analysis of IPOs.
HOWTO
- Run
uv sync(ref) - Open
index.htmlin Observable Desktop or the following:
npm i
npm run docs:preview # or `npm run docs:build` and serve up what you've built.
WebR!!!
So, I got WebR working (see index-r.html).
It's very insecure. Don't do this at home.
I shimmed the Homebrew node that Observable Notebooks call:
#!/usr/bin/env bash
echo "$@" > /tmp/wat.out
/opt/homebrew/bin/onode --allow-worker --input-type=module
That echo thing was to see what they were sending (it's just safety parameters). I suspect they open up a stdin to a running node process and shunt the JS block code there (I could look to verify but getting this working took longer than I wanted).
The shim is gone, now, but it's a way to get R and all sorts of unsafe filesystem/network ops working.