@@ -95,8 +95,9 @@ def on_post_page(self, output_content: str, config: Config, **kwargs) -> str:
9595 soup : BeautifulSoup = BeautifulSoup (output_content , 'html.parser' )
9696 page : Page = kwargs .get ('page' )
9797
98- markmaps : ResultSet = soup .find_all ('code' , class_ = 'language-markmap' )
98+ markmaps : ResultSet = soup .find_all (class_ = 'language-markmap' )
9999 if not any (markmaps ):
100+ log .info (f"no markmap found: { page .file .name } " )
100101 return output_content
101102
102103 script_base_url : str = re .sub (r'[^/]+?/' , '../' , re .sub (r'/+?' , '/' , page .url )) + 'js/'
@@ -105,11 +106,20 @@ def on_post_page(self, output_content: str, config: Config, **kwargs) -> str:
105106 self ._add_statics (soup )
106107
107108 for index , markmap in enumerate (markmaps ):
109+ markmap : Tag
108110 tag_id : str = f'markmap-{ index } '
109- markmap .parent .name = 'div'
110- markmap .parent ['class' ] = markmap .parent .get ('class' , []) + ['mkdocs-markmap' ]
111- markmap .parent ['data-markdown' ]= markmap .text .replace ('\n ' , ' ' )
112- markmap .replaceWith (soup .new_tag (
111+ pre : Tag
112+ code : Tag
113+ if markmap .name == 'pre' :
114+ pre = markmap
115+ code = markmap .findChild ('code' )
116+ else :
117+ pre = markmap .parent
118+ code = markmap
119+ pre .name = 'div'
120+ pre ['class' ] = pre .get ('class' , []) + ['mkdocs-markmap' ]
121+ pre ['data-markdown' ] = code .text .replace ('\n ' , ' ' )
122+ code .replaceWith (soup .new_tag (
113123 'svg' ,
114124 id = tag_id ,
115125 attrs = {'class' : 'markmap' },
0 commit comments