Skąd pomysł?
Callisto Notebook rozwija narzędzie Kallisto Notebook z promyk.tech, inspirowane sposobem pracy znanym z Jupyter Notebook. Kod, dane i dokumentacja mogą żyć obok siebie, ale wszystko wykonuje się bezpośrednio w przeglądarce.
Projekty trafiają do localStorage wyłącznie po zgodzie użytkownika. Można je także eksportować i importować jako pliki .callisto.json.
01Projekty i zakładki
Każdy projekt ma własne bloki, biblioteki i wyniki. × zamyka tylko zakładkę — projekt pozostaje w widoku „Projekty” i można go ponownie otworzyć. Białe karty oznaczają projekty otwarte, a szare zamknięte. Zakładki można przeciągać, aby zmienić ich kolejność. Nazwę projektu edytuje się przez kliknięcie nazwy zakładki lub podwójne kliknięcie tytułu.
02Typy i obsługa bloków
- JavaScript
- Wykonuje kod, obsługuje
return, ostatnie wyrażenie, await, konsolę i biblioteki projektu. - JSON
- Waliduje się automatycznie i bez uruchamiania udostępnia sparsowaną wartość kolejnym blokom.
- CSV
- Automatycznie parsuje dane. Z nagłówkami zwraca tablicę obiektów, a bez nagłówków tablicę tablic.
- Markdown
- Ma tryb
MarkDown | text. Obsługuje tabele, media, YouTube i Mermaid.
Bloki można nazywać, zwijać, przesuwać przyciskami albo przeciągać za ≡. Podwójne kliknięcie między blokami wstawia JS. Wcięcie nowej linii jest kopiowane automatycznie.
03Wynik poprzedniego bloku: $
$ wskazuje wynik najbliższego wcześniejszego bloku JS, JSON lub CSV.
// Blok wyżej zwrócił 21
return $ * 2; // 42
04Wyniki nazwane: $$
$$ pozwala odwołać się do wcześniejszego wyniku po nazwie albo numerze bloku.
$$["Konfiguracja"].api
$$[2].items.length
Jeśli nazwa się powtarza, używany jest najbliższy wcześniejszy blok. Numer widoczny z lewej strony pozostaje jednoznaczny.
05Wizualne wyniki JS
Zwrócenie specjalnego obiektu zmienia sposób prezentacji wyniku:
return { html: "<h1>Hello</h1>" };
return { md: "# Nagłówek" };
return { svg: "<svg>...</svg>" };
HTML i SVG są izolowane w iframe, a Markdown korzysta ze wspólnego renderera. Pojedyncze kliknięcie wyniku kopiuje źródło. Podwójne kliknięcie wyniku SVG, CSV albo wykresu pobiera odpowiedni plik.
06Biblioteki i uruchamianie
Przycisk „Biblioteki” konfiguruje środowisko osobno dla projektu. Domyślnie aktywny jest Lodash (_); dostępne są też Day.js (dayjs), Axios (axios) i D3 (d3). Można dodawać własne skrypty UMD/IIFE przez bezpośredni link HTTPS. „Uruchom wszystko” wykonuje wyłącznie bloki JS, kolejno od góry.
07Dane, wykresy i pliki
return { table: [{ name: "Io", size: 3643 }] };
return { csv: "name,size\nIo,3643" };
return { image: "data:image/png;base64,..." };
return { chart: { type: "bar", labels: ["A", "B"], values: [12, 24] } };
return { json: { nested: true } };
return { download: { name: "data.json", mime: "application/json", data: { ok: true } } };
chart.type obsługuje bar, line, area, pie, donut i scatter. Przeglądarka JSON pozwala zwijać poszczególne gałęzie, a rezultat plikowy można pobrać jednym kliknięciem.
08Szablony projektów
Na dole widoku „Projekty” znajdują się gotowe notebooki prezentujące ogólne możliwości, wszystkie formaty rezultatów oraz sześć typów wykresów. Kliknięcie „Utwórz kopię” tworzy niezależny projekt w przestrzeni użytkownika — oryginalny szablon nigdy nie jest modyfikowany.
Skróty
Shift + EnterUruchom blok
Ctrl + SZapisz lokalnie
Ctrl + NNowy projekt
TabWstaw wcięcie