Powered by AppSignal & Oban Pro

Livebook notebook links

notebooks/notebook_link.livemd

Livebook notebook links

Mix.install([{:kino, "~> 0.8.0"}])

About

Generate “Run in Livebook” button

Run in Livebook Run in Livebook Run in Livebook Run in Livebook

default = "https://github.com/elixir-nx/bumblebee/blob/main/notebooks/examples.livemd"
livemd_src_url_input = Kino.Input.textarea("Notebook source URL", default: default)
select_options = ~w[blue black gray pink] |> Enum.map(&{&1, String.capitalize(&1)})
button_color_input = Kino.Input.select("Button color", select_options)
livemd_src_url = Kino.Input.read(livemd_src_url_input)
button_color = Kino.Input.read(button_color_input)

run_in_livebook_url = &amp;("https://livebook.dev/run?url=" <> URI.encode_www_form(&amp;1))
run_in_livebook_button = &amp;"[![Run in Livebook](https://livebook.dev/badge/v1/#{&amp;2}.svg)](#{&amp;1})"

livemd_src_url
|> run_in_livebook_url.()
|> run_in_livebook_button.(button_color)
|> dbg()
|> IO.puts()

Generate “Run notebook” URL

livebook_url_input = Kino.Input.textarea("Livebook URL")
livemd_src_url = Kino.Input.read(livemd_src_url_input)
livebook_url = Kino.Input.read(livebook_url_input)

[Path.join([livebook_url, "/import"]), "?", URI.encode_query(url: livemd_src_url)]
|> IO.puts()