@@ -59,6 +59,30 @@ def render(self, template, render_context):
59
59
app .builder .templates )
60
60
61
61
62
+ def insert_icp (app , pagename , templatename , context , doctree ):
63
+ if (
64
+ not hasattr (app .builder .templates .render , '_deepmodeling_icp_patched' )
65
+ ):
66
+ old_render = app .builder .templates .render
67
+
68
+ def render (self , template , render_context ):
69
+ content = old_render (template , render_context )
70
+ comment_begin = r"<!--deepmodeling icp begin-->"
71
+ comment_end = r"<!--deepmodeling icp end-->"
72
+ if comment_begin in content :
73
+ return content
74
+ footer = content .lower ().find ('</footer>' )
75
+ icp_footer = '<p><a href="https://beian.miit.gov.cn" target="_blank">京ICP备20010051号-8</a></p>'
76
+ if footer != - 1 :
77
+ content = content [:footer ] + comment_begin + \
78
+ icp_footer + comment_end + content [footer :]
79
+ return content
80
+
81
+ render ._deepmodeling_icp_patched = True
82
+ app .builder .templates .render = types .MethodType (render ,
83
+ app .builder .templates )
84
+
85
+
62
86
def minify_html_files (app , pagename , templatename , context , doctree ):
63
87
if (
64
88
not hasattr (app .builder .templates .render , '_deepmodeling_minified' )
@@ -105,6 +129,7 @@ def minify_css_files(app, exception):
105
129
def setup (app : Sphinx ) -> Dict [str , Any ]:
106
130
app .connect ('builder-inited' , copy_custom_files )
107
131
app .connect ('html-page-context' , insert_sidebar )
132
+ app .connect ('html-page-context' , insert_icp )
108
133
app .connect ('build-finished' , minify_js_files )
109
134
app .connect ('build-finished' , minify_css_files )
110
135
0 commit comments