{% extends "base.html" %} {# ================================================================================ Single Notebook Template (Kida-Native) ================================================================================ Individual Jupyter notebook page. Uses same docs layout and page-hero style as standard docs: breadcrumbs, title, metadata, download/binder/colab actions. No legacy action-bar. FRONTMATTER (from notebook metadata): --- title: Analysis type: notebook notebook: kernel_name: python3 cell_count: 12 language_version: python download_url: /path/to/notebook.ipynb (optional, auto from source) binder_url: https://mybinder.org/... (optional) colab_url: (optional; auto from repo_url + colab_branch when set in [params]) --- KIDA FEATURES USED: - {% let %} for template-scoped variables - Optional chaining (?.) for null-safe access - Null coalescing (??) for smart defaults - {% def %} for reusable components - {% spaceless %} for compact output ================================================================================ #} {% from 'partials/navigation-components.html' import breadcrumbs, page_navigation, toc %} {% from 'partials/page-hero/_macros.html' import _breadcrumb_eyebrow, _share_dropdown %} {% from 'partials/components/tags.html' import tag_list %} {# ============================================================================= NOTEBOOK ACTION LINK (Download, Binder, Colab) ============================================================================= #} {% def notebook_action(href, label, icon_name='download') %} {% if href %} {{ icon(icon_name, size=16) }} {{ label }} {% end %} {% end %} {# ============================================================================= MAIN TEMPLATE ============================================================================= #} {% block content %} {# Template-scoped variables with null-safe access #} {% let page_title = page?.title ?? 'Notebook' %} {% let page_tags = page?.tags ?? [] %} {% let page_href = page?.href ?? '' %} {% let download_url = params?.download_url ?? params?.source_url ?? notebook_download_url(page) ?? '' %} {% let binder_url = params?.binder_url ?? '' %} {% let colab_url = params?.colab_url ?? notebook_colab_url(page) ?? '' %} {% let kernel_name = params?.notebook?.kernel_name ?? params?.kernel ?? '' %} {% let cell_count = params?.notebook?.cell_count ?? 0 %} {% let css_class = params?.css_class ?? '' %} {# Three-column documentation layout (same as doc/single) #}
{{ desc }}
{% end %} {% end %} {# Metadata: kernel, cells, reading time, word count, date #} {% let has_meta = kernel_name or cell_count or page?.word_count or page?.date or params?.lastmod %} {% if has_meta %} {% end %}