1010from docutils import nodes
1111from markdown_it .token import Token
1212from markdown_it .tree import SyntaxTreeNode
13- from myst_parser .docutils_renderer import token_line
14- from myst_parser .main import MdParserConfig , create_md_parser
15- from myst_parser .sphinx_parser import MystParser
16- from myst_parser .sphinx_renderer import SphinxRenderer
13+ from myst_parser .config .main import MdParserConfig , merge_file_level
14+ from myst_parser .mdit_to_docutils .base import token_line
15+ from myst_parser .mdit_to_docutils .sphinx_ import SphinxRenderer , create_warning
16+ from myst_parser .parsers .mdit import create_md_parser
17+ from myst_parser .parsers .sphinx_ import MystParser
1718import nbformat
1819from sphinx .application import Sphinx
1920from sphinx .environment import BuildEnvironment
@@ -72,6 +73,7 @@ def parse(self, inputstring: str, document: nodes.document) -> None:
7273
7374 # get markdown parsing configuration
7475 md_config : MdParserConfig = self .env .myst_config
76+
7577 # get notebook rendering configuration
7678 nb_config : NbParserConfig = self .env .mystnb_config
7779
@@ -82,6 +84,14 @@ def parse(self, inputstring: str, document: nodes.document) -> None:
8284 return super ().parse (inputstring , document )
8385 notebook = nb_reader .read (inputstring )
8486
87+ # update the global markdown config with the file-level config
88+ warning = lambda wtype , msg : create_warning ( # noqa: E731
89+ document , msg , line = 1 , append_to = document , subtype = wtype
90+ )
91+ nb_reader .md_config = merge_file_level (
92+ nb_reader .md_config , notebook .metadata , warning
93+ )
94+
8595 # potentially replace kernel name with alias
8696 kernel_name = notebook .metadata .get ("kernelspec" , {}).get ("name" , None )
8797 if kernel_name is not None and nb_config .kernel_rgx_aliases :
0 commit comments