from pyodide_mkdocs_theme.pyodide_macros import ( PyodideMacrosPlugin, Msg, MsgPlural, TestsToken, Tip, ) def define_env(env:PyodideMacrosPlugin): env.lang.overload({ "tests": TestsToken("\n# Tests"), }) #------------------------------------- inserted_cdn = set() CDN = '''<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" crossorigin="anonymous" referrerpolicy="no-referrer" />''' def cdn_if_not_already_in_page(): page = env.page.file.src_uri if page in inserted_cdn: return "" inserted_cdn.add(page) return CDN @env.macro def figure(id:str, kls:str="", admo='!!!'): code = f""" {admo} tip "Votre figure" <div id="{id}" class="center mat-plt-figure{ kls and ' '+kls }">Votre tracé sera ici</div> { cdn_if_not_already_in_page() } """ indent = env.get_macro_indent() if indent: code = code.replace('\n', '\n'+indent)