繁體中文
English 简体中文 繁體中文
Methodox 首頁

概念

筆記本就是文件

筆記本是一個 Divooka 文件,它的入口圖是一個實現 Notebook Application 的 Events 圖。它的 Build 回撥負責筆記本的佈局;它的其他圖(通常是 Function 圖)負責響應儲存格。文件能擁有的其他一切,它都可以擁有:資料成員、其他圖、包、嵌入的資源。

站點、頁面、儲存格

  • 站點就是整個筆記本:一個名稱、一個可選圖示,以及它的各個頁面。
  • 頁面是筆記本的一項功能,列在側邊欄中。Page 之後新增的所有內容都放在該頁面上,直到下一個 Page。
  • 儲存格是一個輸入與一個輸出的組合:一個滑塊和它顯示的內容,一個文字方塊和它的迴應。沒有輸入的儲存格——Markdown、Html、Heading、Image——是靜態的;Show 儲存格沒有輸入,但會在頁面載入時計算它要顯示的內容。

佈局是固定的:Build 只佈局頁面一次,之後變化的只有值、輸出,以及哪些輸入處於啟用狀態。如果 Build 為不同存取者佈局出不同的內容,就會被拒絕,因為一半是一種佈局、一半是另一種佈局的頁面根本不成其為頁面。

佈局筆記本的兩種方式

逐條語句。 在 Build 之後串聯 Notebook Application 自己的節點——Page、Markdown、Slider、Text Box——就像編寫 Streamlit 指令碼一樣。這是通常的做法。

作為值。 Notebook Cells 中的每個節點都把一個儲存格作為值生成——Slider、Text Box、Group 等等——你可以對它們連線、把它們儲存在陣列中,並用 Add Page 或 Add Cell 放置它們。兩種方式佈局出的是同樣的筆記本。

函式響應儲存格

每個輸入都有一個函式引腳——On Change,按鈕則是 On Click——每當輸入的值發生變化時,就會用該值呼叫這個引腳所指定的函式:

輸入 函式接收
Number、Slider 一個數字
Text Box、Text Area、Choice、Date 文字(日期格式為 yyyy-MM-dd)
Checkbox、Toggle 一個真值
Upload 上傳的檔案,或空值
輸入組 它的所有欄位,一次全部傳入,型別為 Notebook Inputs
Button 無

在引腳上使用 Edit Function,會生成一個簽名完全匹配的 Function 圖。函式返回儲存格要顯示的內容。如果函式失敗,儲存格會顯示錯誤,頁面其餘部分照常工作。

輸入的函式在輸入第一次變化時才執行,因此頁面開啟時各輸入的輸出都是空的。在 Build 中使用 Answer On Load,可以讓每個輸入在頁面開啟時就響應其初始值——由滑塊驅動的圖表通常需要這樣。按鈕和上傳仍然會等待,因為它們沒有初始值。

每位存取者獨享一份文件

每次載入頁面就是一個會話,每個會話都是文件的一個新例項:筆記本建立並構建這個例項,從而把該存取者的儲存格繫結到它上面。因此:

  • 同一存取者的儲存格共享例項的資料成員。 一個儲存格的函式可以設定另一個儲存格的函式所讀取的成員。
  • 存取者之間從不共享成員。 使用同一個筆記本的兩位同事各自擁有自己的值、輸出和成員。
  • Input 按標籤讀取本會話中另一個儲存格的目前值;Set Enabled 按標籤啟用或禁用另一個輸入。Get Session Id 提供一個名稱,可用於存取者的函式所寫入的檔案。

共享值

有些東西應該只載入一次並提供給所有人:一張大表格、一個訓練好的模型。Site Started 回撥在第一位存取者到來之前、在站點自己的例項上執行一次;Set Shared 把一個值儲存在那裡,Shared 則可以從任何存取者的函式中讀取它。這是存取者之間唯一共有的狀態,而且是顯式的。

Session Started 和 Session Ended 在每位存取者到來和離開時執行。

只讀與啟用

  • Page Read Only 使目前頁面變為只讀:輸入顯示其初始值且不能更改,每個儲存格顯示其函式針對這些值給出的結果。dvn --read-only 對整個站點執行同樣的操作。
  • Last Read Only 和 Last Disabled 修改最後新增的儲存格;Set Enabled 從函式中呼叫,可在筆記本執行時修改另一個輸入。
  • Hide Run All 從目前頁面去掉 Run All。

只讀頁面:輸入顯示其值,儲存格顯示其結果

輸出

函式的返回值決定存取者看到什麼,而資料如何繪製由頁面決定,而不是由計算決定:

Crop Yield Notebook:一個滑塊,其函式返回 Plot With Parameter

函式返回 頁面顯示
無 無——輸出保持摺疊
文字、數字、真值 文字
Notebook Outputs 中的 Markdown、Html、Code Markdown、HTML 片段(兩者都會清除指令碼),或帶語法高亮的程式碼塊
Html Page 一個完整頁面,位於獨立的框架中
Divooka 影像,或 Picture 圖片,按原樣顯示
來自 Plotting 工具箱的圖形或圖表 以互動方式繪製的圖表,Image 檢視顯示 Divooka 自己的渲染結果
Notebook Outputs 中的 Chart、Line Chart、Scatter Chart、Plot Function、Plot With Parameter 由頁面繪製的圖表
表格 表格,帶有檢視選擇器——Table、Line、Scatter、Bar、Histogram——以及整張表格的 CSV 下載
數字列表 這些數字,以表格或圖表形式顯示
Download 下載檔案的連結
儲存格陣列 這些儲存格的輸出,巢狀顯示

在 Image 檢視中顯示的 Plotting 圖形,與 Divooka 繪製的一樣

表格只把前一千行傳送到頁面;CSV 包含所有行。Last Prefer View 設定表格或圖表輸出開啟時使用的檢視。