Objective: Establish the VS Code frontend foundation. *.cimnb.md files open as notebooks and save losslessly.
Description:
The VS Code extension needs native notebook support using a markdown-first approach for git-friendly diffs. Initially, this focuses on authoring (no execution).
- Register the notebook types (
cimnotebook for *.cimnb.md and cimnotebook-markdown as an option for regular *.md).
- Implement the pure types (
cells.ts).
- Implement the
MarkdownNotebookSerializer (parsing & serializing).
- Crucial: The parser must be strictly idempotent (round-trip stable:
serialize(parse(x)) == x) so read-only operations don't create dirty git states. Unknown code fences must remain untouched as markdown.
Acceptance Criteria:
Objective: Establish the VS Code frontend foundation.
*.cimnb.mdfiles open as notebooks and save losslessly.Description:
The VS Code extension needs native notebook support using a markdown-first approach for git-friendly diffs. Initially, this focuses on authoring (no execution).
cimnotebookfor*.cimnb.mdandcimnotebook-markdownas an option for regular*.md).cells.ts).MarkdownNotebookSerializer(parsing & serializing).serialize(parse(x)) == x) so read-only operations don't create dirty git states. Unknown code fences must remain untouched as markdown.Acceptance Criteria:
*.cimnb.mdopens as a notebook by default..mdfiles can be opened via "Open With... -> CIM Notebook".node:test) for the markdown serializer pass.docs/content/cimnotebook/notebooks.mdis created and registered insidebars.js.