|
28 | 28 |
|
29 | 29 | from myst_nb.core.config import NbParserConfig |
30 | 30 | from myst_nb.core.execute import NotebookClientBase |
31 | | -from myst_nb.core.loggers import DEFAULT_LOG_TYPE, LoggerType |
| 31 | +from myst_nb.core.loggers import LoggerType # DEFAULT_LOG_TYPE, |
32 | 32 | from myst_nb.core.utils import coalesce_streams |
| 33 | +from myst_nb.warnings_ import MystNBWarnings, create_warning |
33 | 34 |
|
34 | 35 | if TYPE_CHECKING: |
35 | 36 | from markdown_it.tree import SyntaxTreeNode |
@@ -57,7 +58,6 @@ class MditRenderMixin: |
57 | 58 | # required by mypy |
58 | 59 | md_options: dict[str, Any] |
59 | 60 | document: nodes.document |
60 | | - create_warning: Any |
61 | 61 | render_children: Any |
62 | 62 | add_line_and_source_path: Any |
63 | 63 | add_line_and_source_path_r: Any |
@@ -95,8 +95,8 @@ def get_cell_level_config( |
95 | 95 | :param cell_metadata: the metadata for the cell |
96 | 96 | """ |
97 | 97 |
|
98 | | - def _callback(msg: str, subtype: str): |
99 | | - self.create_warning(msg, line=line, subtype=subtype) |
| 98 | + def _callback(msg: str, subtype: MystNBWarnings): |
| 99 | + create_warning(self.document, msg, line=line, subtype=subtype) |
100 | 100 |
|
101 | 101 | return self.nb_config.get_cell_level_config(field, cell_metadata, _callback) |
102 | 102 |
|
@@ -222,10 +222,11 @@ def _get_nb_source_code_lexer( |
222 | 222 | # TODO this will create a warning for every cell, but perhaps |
223 | 223 | # it should only be a single warning for the notebook (as previously) |
224 | 224 | # TODO allow user to set default lexer? |
225 | | - self.create_warning( |
| 225 | + create_warning( |
| 226 | + self.document, |
226 | 227 | f"No source code lexer found for notebook cell {cell_index + 1}", |
227 | | - wtype=DEFAULT_LOG_TYPE, |
228 | | - subtype="lexer", |
| 228 | + # wtype=DEFAULT_LOG_TYPE, |
| 229 | + subtype=MystNBWarnings.LEXER, |
229 | 230 | line=line, |
230 | 231 | append_to=self.current_node, |
231 | 232 | ) |
@@ -310,11 +311,6 @@ class MimeData: |
310 | 311 | """Index of the output in the cell""" |
311 | 312 | line: int | None = None |
312 | 313 | """Source line of the cell""" |
313 | | - md_headings: bool = False |
314 | | - """Whether to render headings in text/markdown blocks.""" |
315 | | - # we can only do this if know the content will be rendered into the main body |
316 | | - # of the document, e.g. not inside a container node |
317 | | - # (otherwise it will break the structure of the AST) |
318 | 314 |
|
319 | 315 | @property |
320 | 316 | def string(self) -> str: |
@@ -598,9 +594,7 @@ def render_markdown(self, data: MimeData) -> list[nodes.Element]: |
598 | 594 | fmt = self.renderer.get_cell_level_config( |
599 | 595 | "render_markdown_format", data.cell_metadata, line=data.line |
600 | 596 | ) |
601 | | - return self._render_markdown_base( |
602 | | - data, fmt=fmt, inline=False, allow_headings=data.md_headings |
603 | | - ) |
| 597 | + return self._render_markdown_base(data, fmt=fmt, inline=False) |
604 | 598 |
|
605 | 599 | def render_text_plain(self, data: MimeData) -> list[nodes.Element]: |
606 | 600 | """Render a notebook text/plain mime data output.""" |
@@ -753,9 +747,7 @@ def render_markdown_inline(self, data: MimeData) -> list[nodes.Element]: |
753 | 747 | fmt = self.renderer.get_cell_level_config( |
754 | 748 | "render_markdown_format", data.cell_metadata, line=data.line |
755 | 749 | ) |
756 | | - return self._render_markdown_base( |
757 | | - data, fmt=fmt, inline=True, allow_headings=data.md_headings |
758 | | - ) |
| 750 | + return self._render_markdown_base(data, fmt=fmt, inline=True) |
759 | 751 |
|
760 | 752 | def render_text_plain_inline(self, data: MimeData) -> list[nodes.Element]: |
761 | 753 | """Render a notebook text/plain mime data output.""" |
@@ -796,7 +788,7 @@ def render_widget_view_inline(self, data: MimeData) -> list[nodes.Element]: |
796 | 788 | return self.render_widget_view(data) |
797 | 789 |
|
798 | 790 | def _render_markdown_base( |
799 | | - self, data: MimeData, *, fmt: str, inline: bool, allow_headings: bool |
| 791 | + self, data: MimeData, *, fmt: str, inline: bool |
800 | 792 | ) -> list[nodes.Element]: |
801 | 793 | """Base render for a notebook markdown mime output (block or inline).""" |
802 | 794 | psuedo_element = nodes.Element() # element to hold the parsed markdown |
@@ -832,7 +824,6 @@ def _render_markdown_base( |
832 | 824 | data.string, |
833 | 825 | data.line or 0, |
834 | 826 | inline=inline, |
835 | | - allow_headings=allow_headings, |
836 | 827 | ) |
837 | 828 | finally: |
838 | 829 | # restore the parser |
@@ -986,11 +977,12 @@ def create_figure_context( |
986 | 977 | caption.source = self.document["source"] |
987 | 978 | caption.line = line |
988 | 979 | elif not (isinstance(first_node, nodes.comment) and len(first_node) == 0): |
989 | | - self.create_warning( |
| 980 | + create_warning( |
| 981 | + self.document, |
990 | 982 | "Figure caption must be a paragraph or empty comment.", |
991 | 983 | line=line, |
992 | | - wtype=DEFAULT_LOG_TYPE, |
993 | | - subtype="fig_caption", |
| 984 | + # wtype=DEFAULT_LOG_TYPE, |
| 985 | + subtype=MystNBWarnings.FIG_CAPTION, |
994 | 986 | ) |
995 | 987 |
|
996 | 988 | self.current_node.append(figure_node) |
|
0 commit comments