This expands the list of html tags we allow in markdown. To get this list, I've copied the list of tags from `markdownDocumentRenderer` into `dom` after reviewing them
For #134514, I've also added `video` to the list of allowed tags
For #121256
This change adds the current `ouputItem` to the notebook markdown renderer's environment
Renders that extend our markdown renderer can use this to access output item metadata for example
For #125269
- Rename `CellInfo` - >`OutputItem` (only internally, we also need to update the published types)
- Move `id` into `OutputItem`
- Move `element` out of `OutputItem`
- Rename `renderCell` to `renderOutputItem`
- Rename `destoryCell` to `disposeOutputItem` (`dispose` is the term we generally use in our APIs)
This implements the api described in #123540. Major points:
- Instead of having the `markdown-it` renderer pull it its dependencies, instead the dependencies can call `getRenderer` to import the object returned by the `markdown-it` renderer
- We try to detect if a renderer is using the old or new api. Old renderers are still run as globals while new ones are loaded with `import`
- I have only hooked up the new API for markdown renderers so far
* Better notebook markup renderer api
For #121256
- Use js modules for notebook output renderers
- Rename apis from `markdown` to `markup`
- Use imports and exports for apis instead of globals for apis
- Use esbuild instead of webpack so we can emit js modules
- Clearly split top level markup renderes from renderers that extend other renderers
* Use constant instead of comment for replacement
* Render markdown preview cells inside a shadow dom
Fixes#119971
This moves all markdown previews into shadow doms. This lets us prevent styles from outside the preview leak into the preview, and also prevents styles from the preview leak out into the rest of the notebook
* Use composedPath for handling events in webviews
This lets us handle clicks triggered inside of a shadow dom
* Use shared webpack version instead of installing locally for simple-browser
* Use npm for building markdown preview
* render markdown in webview.
* update markdown preview height and offset
* Add basic custom notebook renderer point
* update css
* style update.
* update markdown header padding left
* Add example of loading katex to extend the markdown-it renderer
* Rename global to make clear it only applies to markdown-in
* hide/remove markdown preview
* Add wait for initial markdown preview rendering before showing notebook
* Add double click to switch to editing mode
* Fix markdown cells not getting updated after editing
* style polish
* notebook.experimental.useMarkdownRenderer
* switch render strategy.
* Adding very intial drag drop support for notebook markdown cells
* Implement drag/drop stubs for test classes
* Revert unrelated file changes
* Move markdown notebook math to own extension
* Add missing imports
Co-authored-by: rebornix <penn.lv@gmail.com>