本文へスキップ
VellumVellumを開く

25種類の言語のコードを、ページの中で実行。

ページ内のフェンス付きコードブロックが、実行できるセルになります。コードはプレーンなMarkdownのままで、出力、表、グラフはページと一緒に保存されます。すべてデバイス上のサンドボックスで実行されます。

表を共有するJavaScriptセルと、それを合計するSQLセルがあるVellumのページ。横にページのMarkdownが表示されています。
表を共有するJavaScriptセルと、それを合計するSQLセルがあるVellumのページ。横にページのMarkdownが表示されています。

ページの中にあるコード

GitHubやObsidianと同じように、言語名を付けたフェンス付きコードブロックを書きます。閲覧ビューか分割ビューでは、それが「実行」ボタン付きのセルになります。コードはページのMarkdownの中にあるので、ページはどこへでも持ち出せます。セルが出力した内容、返した表、描いたグラフはページと一緒に保存され、開き直すと元どおり表示されます。

```python
import pandas as pd
runs = pd.DataFrame({"month": ["Jan", "Feb", "Mar"], "km": [42, 51, 63]})
runs.describe()
```

25種類の言語を、デバイス上で

JavaScript, TypeScript, Python, SQL, Lua, Shell (emulated), Ruby, PHP, R, Perl, Go, Rust, C, C++, OCaml, Haskell, Zig, C#, F#, Java, Clojure, Elixir, Erlang, Scheme, Prolog。

各言語は初めて実行するときにダウンロードされ(LuaやJavaScriptなら数百キロバイト、Rustなら数十メガバイト)、その後はオフラインで動きます。設定 → コードランタイム で、飛行機や電車に乗る前にまとめてダウンロードしておけます。

コードはサンドボックス化されたフレームの中で、ページと言語ごとに1つのワーカーで実行されます。アプリ本体、ほかのページ、ネットワークにはアクセスできません。そのページで許可しない限り、セルはネットワークを使えません。

ノートブックのように使う

言語をまたいでデータを共有

同じページのセル同士は、言語が違ってもデータを渡し合えます。一方でshare(name, value)、もう一方でuse(name)。表は表のまま届くので、JavaScriptで行を共有して、SQLでクエリできます。

```js
share("runs", [{ month: "Jan", n: 4 }, { month: "Feb", n: 7 }])
```

```sql
select sum(n) as total from runs;
```

入力、ファイル、パッケージ

Vellumで最初のコードセルを実行する

  1. ページを開く

    ページを作るか、今あるページを開きます。

  2. コードブロックを書く

    バッククォート3つと言語名(例:```python)を入力し、コードを書いて、最後にバッククォート3つで閉じます。

  3. 実行する

    閲覧ビューか分割ビューに切り替えて、セルの「実行」を押します(セルのエディタではShift+Enterでも実行できます)。初回は言語がダウンロードされます。

  4. 結果を残す

    出力はページと一緒に保存されます。セルメニューを開くと、すべて実行、変数など、ノートブックのコマンドが使えます。

アプリでは

よくある質問

Jupyterの代わりになりますか?

多くのノートブックなら、なります。.ipynbファイルを開いて書き出せ、出力も保持されます。各言語のWebAssembly版をブラウザで動かすため、重い計算、GPU、一部のネイティブパッケージには引き続きJupyterが必要です。VellumとJupyterもご覧ください。

コードはインターネットにアクセスできますか?

許可しない限りできません。Webにアクセスしようとするセルは、まず確認します(1回だけ、このページでは常に、または許可しない)。すべてのリクエストはセルの下に記録されます。

オフラインで使えますか?

はい。各言語は初めて使うときに一度だけダウンロードされ、その後はデバイスに保存されます。設定から、すべての言語を前もってダウンロードしておくこともできます。