📚

「Run in livebook」のバッチを記事に載せてlivebookのコードを楽にシェアする

2022/10/08に公開

はじめに

皆さんlivebook使ってますか?

https://livebook.dev/

Livebookの機能としてURLベースでのnotebookのインポート機能があり、これを利用して作成したnotebookを他の人がスムーズにインポートして自身の環境で動かすといったことが可能になります。

この記事ではnotebookの公開から、インポートしやすいようにインポート用のURLをバッジで掲載するまでの手順を解説します。

1. notebookを公開する

まずはインポートするnotebookをpublicアクセス可能な場所に置きます。GitHubかgistが楽でしょう。

試しに、先日のassert_matchの記事を書くときに使ったnotebookをgistに置きます。

ただただlivemdファイルを置くのみです。簡単ですね。

https://gist.github.com/koga1020/f0a0d924a3f11edd87dac5146cb52e98

2. 公開用のbadgeを作成する

https://livebook.dev/badge にアクセスして、以下を入力します。

  • 「Your notebook URL」の欄に手順1で公開したnotebookのURL
  • 掲載したいバッジの色

URLの入力とバッジの選択を済ませると、MarkdownとHTMLのコードブロックが表示されます。用途に合わせてコードブロックをコピペしましょう。

image

試しに青色のsvgをmarkdownに埋め込むとこんな感じです。良いですね!これでnotebookの公開は完了です。自身のブログ記事などに貼り付けて運用しましょう。

Run in Livebook

アクセスしてみる

手順2で作ったバッジをクリックすると、livebook.dev/run?url=<バッジ作成時に入力したURLをurl encodeしたもの>というURLに遷移します。
画面下の方で自身で起動しているlivebookのURLを入力するか、Appとしてインストールしているならば「I use the Livebook App for Windows/Mac」にチェックを入れると「Run notebook」のボタンが表示されるので、これをクリックするとnotebookをインポートした状態でlivebookが起動できます。

あとは自身の環境でnotebookを読み書きして、コードを実行できます🎉

input

余談

livebook.dev自体のコードもGitHubに公開されており、/run のページで動いているjsが確認できます。github.comgist.github.com の場合にrewriteするロジックが入っているようなので、GitHubやGistに置いたnotebookを共有するのを主なユースケースとして想定されていそうです。

https://github.com/livebook-dev/livebook.dev/blob/f7c84c78e5d0059e2a8033dbf5e89e50761a5b16/src/js/requests.js#L40-L61

まとめ

公式のバッジを経由してnotebookを共有する流れを解説しました。解説記事を書く際にLivebookのリンクも載せておくと読み手の人の手元で実行できて非常に良さそうです。ぜひ活用して作成したnotebookを共有していきましょう!

Discussion