prune unused local theme assets

This commit is contained in:
2026-09-30 12:51:18 -06:00
parent 16e69640e3
commit eb093e07be
2 changed files with 33 additions and 0 deletions
+2
View File
@@ -135,7 +135,9 @@
{{ js_tag(scriptfile) }}
{%- endif -%}
{%- endfor %}
{%- if theme_theme_preview|tobool %}
<script type="text/javascript" src="{{ pathto('_static/js/jquery.cookie.min.js', 1) }}"></script>
{%- endif %}
<script type="text/javascript" src="{{ pathto('_static/js/basicstrap.js', 1) }}"></script>
<script type="text/javascript">
DOCUMENTATION_OPTIONS.FILE_SUFFIX = DOCUMENTATION_OPTIONS.FILE_SUFFIX || '.html';
+31
View File
@@ -6,6 +6,35 @@ import subprocess
import sys
def prune_unused_local_assets(output_dir):
index_path = os.path.join(output_dir, "index.html")
try:
with open(index_path, "r", encoding="utf-8") as index_file:
index_html = index_file.read()
except OSError:
return
if "bootswatch-" not in index_html:
for bootstrap_version in ("bootstrap2", "bootstrap3"):
css_dir = os.path.join(
output_dir, "_static", "css", bootstrap_version
)
if not os.path.isdir(css_dir):
continue
for filename in os.listdir(css_dir):
if filename.startswith("bootswatch-") and filename.endswith(".css"):
os.remove(os.path.join(css_dir, filename))
if "jquery.cookie.min.js" not in index_html:
js_dir = os.path.join(output_dir, "_static", "js")
for filename in ("jquery.cookie.min.js", "jquery.cookie-1.4.1.min.js"):
path = os.path.join(js_dir, filename)
if os.path.isfile(path):
os.remove(path)
def main():
if len(sys.argv) != 4:
raise SystemExit("usage: build-docs.py SOURCE_DIR OUTPUT_DIR STAMP_FILE")
@@ -34,6 +63,8 @@ def main():
check=True,
)
prune_unused_local_assets(output_dir)
with open(stamp_file, "w", encoding="utf-8") as stamp:
stamp.write("built\n")