2
2
from typing import Dict , Any
3
3
import os
4
4
5
+ import minify_html
5
6
from sphinx .application import Sphinx
6
7
from sphinx .util .fileutil import copy_asset_file
7
8
@@ -33,7 +34,7 @@ def insert_sidebar(app, pagename, templatename, context, doctree):
33
34
):
34
35
old_render = app .builder .templates .render
35
36
36
- def rtd_render (self , template , render_context ):
37
+ def render (self , template , render_context ):
37
38
content = old_render (template , render_context )
38
39
comment_begin = r"<!--deepmodeling begin-->"
39
40
comment_end = r"<!--deepmodeling end-->"
@@ -47,16 +48,34 @@ def rtd_render(self, template, render_context):
47
48
with open (source ) as f :
48
49
banner = f .read ()
49
50
if begin_body != - 1 :
50
- content = content [:begin_body ] + comment_begin + banner + comment_end + content [begin_body :]
51
+ content = content [:begin_body ] + comment_begin + \
52
+ banner + comment_end + content [begin_body :]
51
53
return content
52
54
53
- rtd_render ._deepmodeling_patched = True
54
- app .builder .templates .render = types .MethodType (rtd_render ,
55
+ render ._deepmodeling_patched = True
56
+ app .builder .templates .render = types .MethodType (render ,
57
+ app .builder .templates )
58
+
59
+
60
+ def minify_html_files (app , pagename , templatename , context , doctree ):
61
+ if (
62
+ not hasattr (app .builder .templates .render , '_deepmodeling_minified' )
63
+ ):
64
+ old_render = app .builder .templates .render
65
+
66
+ def render (self , template , render_context ):
67
+ content = old_render (template , render_context )
68
+ return minify_html .minify (content , minify_css = True , minify_js = True ,
69
+ )
70
+
71
+ render ._deepmodeling_minified = True
72
+ app .builder .templates .render = types .MethodType (render ,
55
73
app .builder .templates )
56
74
57
75
58
76
def setup (app : Sphinx ) -> Dict [str , Any ]:
59
77
app .connect ('builder-inited' , copy_custom_files )
60
78
app .connect ('html-page-context' , insert_sidebar )
79
+ app .connect ('html-page-context' , minify_html_files )
61
80
62
81
return {'parallel_read_safe' : True }
0 commit comments