Closed2
Livebookからコード入力機能を外して、スマートセルだけのリッチなノートにする試み
背景
非エンジニアの近しい人にちょっとした機能付き(独自スマートセル)のノートブックを提供したい。
Livebookはコードを実行できるが、この用途では事故が起こる可能性が高いので抑制したい。
やること
- 新規ブック作成時にデフォルトで作成されるcodeセルの除去(markdownセルに変更)
- setupセルの除去
- smartセルのメニューにある「コードに変換」などの除去
注意点やら補足やら(見る人がいるかもしれないので一応)
まだコード入力できるところが残ってます。例えば、最初からあるLEARNのページなどを開くとcodeセルが最初からあるので利用可能です。そのため、いたずらされない環境を作るという意味では、本スクラップはスクラップです(役に立ちません)。
編集などをさせずに、ただ成果物を見せるだけなら、Livebook上で公開する機能があります。ボタンくらいは付けられるようなので、スマートセルを使わない簡単なものなら、その機能だけでもいいかもしれません。
コード(git diff)差分
Livebook Version 0.8.1
diff --git a/lib/livebook/session.ex b/lib/livebook/session.ex
index eaf59d65..7a508e60 100644
--- a/lib/livebook/session.ex
+++ b/lib/livebook/session.ex
@@ -760,7 +760,7 @@ defmodule Livebook.Session do
end
defp default_notebook() do
- %{Notebook.new() | sections: [%{Section.new() | cells: [Cell.new(:code)]}]}
+ %{Notebook.new() | sections: [%{Section.new() | cells: [Cell.new(:markdown)]}]}
end
defp schedule_autosave(state) do
diff --git a/lib/livebook_web/live/session_live.ex b/lib/livebook_web/live/session_live.ex
index d3124471..97374d2d 100644
--- a/lib/livebook_web/live/session_live.ex
+++ b/lib/livebook_web/live/session_live.ex
@@ -286,19 +286,6 @@ defmodule LivebookWeb.SessionLive do
</.menu_item>
</.menu>
</div>
- <div>
- <.live_component
- module={LivebookWeb.SessionLive.CellComponent}
- id={@data_view.setup_cell_view.id}
- session_id={@session.id}
- session_pid={@session.pid}
- client_id={@client_id}
- runtime={@data_view.runtime}
- installing?={@data_view.installing?}
- allowed_uri_schemes={@allowed_uri_schemes}
- cell_view={@data_view.setup_cell_view}
- />
- </div>
<div class="mt-8 flex flex-col w-full space-y-16" data-el-sections-container>
<div :if={@data_view.section_views == []} class="flex justify-center">
<button class="button-base button-small" phx-click="append_section">
diff --git a/lib/livebook_web/live/session_live/cell_component.ex b/lib/livebook_web/live/session_live/cell_component.ex
index 83a57d51..387240ac 100644
--- a/lib/livebook_web/live/session_live/cell_component.ex
+++ b/lib/livebook_web/live/session_live/cell_component.ex
@@ -432,9 +432,6 @@ defmodule LivebookWeb.SessionLive.CellComponent do
defp toggle_source_button(assigns) do
~H"""
<span class="tooltip top" data-tooltip="Toggle source" data-el-toggle-source-button>
- <button class="icon-button" aria-label="toggle source">
- <.remix_icon icon="code-line" class="text-xl" />
- </button>
</span>
"""
end
@@ -442,24 +439,6 @@ defmodule LivebookWeb.SessionLive.CellComponent do
defp convert_smart_cell_button(assigns) do
~H"""
<span class="tooltip top" data-tooltip="Convert to Code cell">
- <button
- class="icon-button"
- aria-label="toggle source"
- data-link-package-search
- phx-click={
- with_confirm(
- JS.push("convert_smart_cell", value: %{cell_id: @cell_id}),
- title: "Convert cell",
- description:
- "Once you convert this Smart cell to a Code cell, the Smart cell will be moved to the bin.",
- confirm_text: "Convert",
- confirm_icon: "arrow-up-down-line",
- opt_out_id: "convert-smart-cell"
- )
- }
- >
- <.remix_icon icon="pencil-line" class="text-xl" />
- </button>
</span>
"""
end
diff --git a/lib/livebook_web/live/session_live/insert_buttons_component.ex b/lib/livebook_web/live/session_live/insert_buttons_component.ex
index 52c131bb..0cdef068 100644
--- a/lib/livebook_web/live/session_live/insert_buttons_component.ex
+++ b/lib/livebook_web/live/session_live/insert_buttons_component.ex
@@ -12,15 +12,6 @@ defmodule LivebookWeb.SessionLive.InsertButtonsComponent do
<div class={
"w-full absolute z-10 hover:z-[11] #{if(@persistent, do: "opacity-100", else: "opacity-0")} hover:opacity-100 focus-within:opacity-100 flex space-x-2 justify-center items-center"
}>
- <button
- class="button-base button-small"
- phx-click="insert_cell_below"
- phx-value-type="code"
- phx-value-section_id={@section_id}
- phx-value-cell_id={@cell_id}
- >
- + Code
- </button>
<.menu id={"#{@id}-block-menu"} position={:bottom_left}>
<:toggle>
<button class="button-base button-small">+ Block</button>
このスクラップは2023/03/20にクローズされました