xiaomusic/update-static-version.py

57 lines
1.5 KiB
Python
Raw Normal View History

2024-07-15 07:07:16 +00:00
#!/usr/bin/env python3
import re
from pathlib import Path
def get_html_files(directory):
"""
获取指定目录下所有HTML文件的列表
:param directory: 搜索HTML文件的目录
:return: 搜索到的HTML文件的路径列表
"""
return list(Path(directory).rglob("*.html"))
def update_html_version(html_files, version):
"""
2024-09-17 16:06:28 +00:00
更新HTML文件中所有以 ./ 开头的CSS和JS文件引用的版本号
2024-07-15 07:07:16 +00:00
:param html_files: 需要更新的HTML文件路径的列表
:param version: 新的版本号字符串
"""
2024-09-17 16:06:28 +00:00
pattern = re.compile(r'(\./.*(css|js))\?version=[^"]*"')
2024-07-15 07:07:16 +00:00
for html_file in html_files:
if not html_file.exists():
print(f"文件 {html_file} 不存在。")
continue
html_content = html_file.read_text()
# 更新CSS和JS版本号
html_content = pattern.sub(rf'\g<1>?version={version}"', html_content)
# html_content = pattern.sub(fr'\g<1>"', html_content)
2024-07-15 07:07:16 +00:00
# 保存更改到HTML文件
html_file.write_text(html_content)
print(f"文件 {html_file} 已更新为使用新的版本号: {version}")
# 使用案例
if __name__ == "__main__":
import time
2024-07-15 15:40:16 +00:00
t = str(int(time.time()))
2024-07-15 07:07:16 +00:00
# 指定目录
2024-09-17 16:06:28 +00:00
html_directory = "xiaomusic/static/default" # 修改为实际的HTML文件目录路径
2024-07-15 07:07:16 +00:00
# 获取HTML文件列表
html_files_to_update = get_html_files(html_directory)
# 执行更新
update_html_version(html_files_to_update, t)