Align notebook runtime and rendering with Observable Notebooks 2.0 while keeping the markdown-native file format #127
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#127
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Align the notebook runtime toward Observable Notebook Kit v2 execution and rendering semantics without adopting Observable's HTML notebook file format.
Problem
Lapis notebooks already exceed Observable in app integration, DuckDB access, generated-state persistence, and notebook-specific UI, but the runtime still diverges from the newer Observable direction in several user-visible ways. Input cells still depend on legacy
viewofsyntax, runtime helpers such asdisplay(...)and additional stdlib behaviors are incomplete, and the acceptance surface is not yet anchored by a markdown-native version of the System Guide.Goal
Make
.notebook.mdfiles behave closer to Observable Notebook Kit v2 for execution and rendering while preserving the existing markdown-native document format and Lapis-owned runtime contracts.Scope
viewof-first authoring with plain JavaScriptview(...)declarations.viewofusage.Non-goals
<notebook>HTML source format as the canonical Lapis format.@observablehq/runtime.Acceptance Criteria
const|let|var name = view(expression)declarations.viewofauthoring is removed or isolated behind explicit migration cleanup rather than remaining the primary documented syntax..notebook.mdnotes.view(...)declarations.Implementation Notes
transformObservableViewof()path and evolve it toward plain declaration transforms before widening into broader stdlib changes.lapis.view(name, input)runtime so the initial slice stays small.Suggested Files or Specs To Inspect
packages/notebook/input/src/observable-viewof.tspackages/notebook/src/lib/runtime/notebook-worker.tspackages/notebook/src/lib/runtime/analysis/analyze-ts-cell.tsspec/src/20-packages/plugins/notebook/documents-and-runtime.mdspec/src/20-packages/notebook-inputs/index.mdValidation Commands
Follow-up Tasks
display(...), richer stdlib helpers, and markdown/html interpolation support needed for broader Observable parity.viewofafter the transform/runtime path is stable.Implementation Summary
Completed the markdown-native Observable parity slice by making plain view(...) the canonical input syntax, adding explicit display(...) support to notebook JS/TS cells through the runtime output coercion path, updating the checked-in System Guide fixture and focused Playwright acceptance to exercise display(...), and keeping the notebook runtime specs in sync.
New issueto Align notebook runtime and rendering with Observable Notebooks 2.0 while keeping the markdown-native file format