Документ собирается из блоков — 15 типов контента в четырёх категориях: текстовые, утилиты, данные и графики. Каждый блок занимает в сетке документа от 1 до 24 колонок и перетаскивается мышью.
Текстовые
- MarkdownContent — форматированный текст: пояснения, выводы, ссылки;
- NotebookContent — полноценный Jupyter Notebook как блок отчёта (подробнее — Jupyter Notebooks).
Утилиты
- BookmarksContent — закладки-карточки со ссылками на другие отчёты и страницы;
- SectionContent — заголовок раздела: группирует блоки в длинных отчётах;
- DetailsContent — список свойств сущности: компактная карточка «ключ — значение».
Данные
- TableContent — интерактивная таблица с пагинацией и ссылками из ячеек;
- MetricContent — одиночная метрика/KPI крупным числом;
- GaugeContent — спидометр-гейдж с зонами значений.
Графики
- LineChartContent — линейный график;
- BarChartContent — столбчатая диаграмма;
- ScatterChartContent — точечная диаграмма;
- DoughnutChartContent — кольцевая диаграмма;
- HistogramChartContent — гистограмма распределения;
- CandlestickChartContent — свечи OHLC с объёмом торгов;
- BoxPlotChartContent — box plot с квартилями и выбросами.
Параметры каждого графика — в разделе Графики.
Сетка документа
- ширина блока — от 1 до 24 колонок; ширина вне диапазона ловится валидатором (
INVALID_BLOCK_WIDTH); - блоки перетаскиваются мышью (drag & drop);
- у каждого блока уникальный ID вида
block_{timestamp}_{random}; - конфигурация блока — словарь параметров: заголовок, размеры, тип контента, данные, запросы, переопределения оформления.
Notebook-блок
Ноутбук хранится двумя способами: как встроенный JSON прямо в блоке или как ссылка на внешний файл .ipynb. У блока отображаются счётчик ячеек и время последнего сохранения.