feat: sync docs chart with README chart (Vega-Lite)

This commit is contained in:
fujie
2026-02-11 13:31:14 +08:00
parent fa5d962152
commit 954ebad8b2
3 changed files with 10 additions and 18 deletions

View File

@@ -2,8 +2,8 @@
> ![updated](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_updated.json&style=flat)
### 📈 Growth & Trends (Last 14 Days)
![Trend](https://kroki.io/mermaid/svg/eNpNjkFuxCAMRfc9Bcqiq0QCbMCs295gdqMsaAdNI2WINKFq5va1k1KVxef5Y769PT4-070O77mmJ8WnTnXOqnsr13TNt1yqelavy3eZl3RZ1emey6XbG7chbdOqzp02g41drwRANzA72EH_gW0ADbCBa-AbhAbUIP6C0Q1MN-6bPI5NutNS06xelq9S12PHeSpZnW0g3StLIbDGEHsFGtgB44nVgmeFgKzOWlbvgTXsnRTEiZF70IAR9Xr8lw6WSGL49UhAqRxpJxloxSQDkhgReSzq6NlEMEHiEJxUzjr-gN6jXERBBrpIevwB6vlaJw==)
### 📈 Total Downloads Trend
![Activity](https://kroki.io/vegalite/svg/eNqNlsFu2zAMhl8l8Nbb0liULdu9bo_Q27CDEiuxVsXybCVpEeTdR6lN0IU0sEsgSp9Iir8s5px9nTad2evsaZF1IQzT02p1NDv9uLOhO6wfrV-9A2l26Wwwq2P5-HvyffZtkbVm2ox2CBZN9PDsg3aLH_7UO6_bafE8mr6N3Mm2oUOiznO0OmN3XUATkjnotrX9Du0SrbXevOxGf8CN6DGMup8GjX5C9LPx_dZG8pwdrTmlwRRG_2Lu4QvS-tVOCWn9XtuY4Va7yeDKbrTt1bxEtNVBv7vV7mDirp_nOJn8Qg5qmYtlXqYzX4-HS1VR426GVPdkLXOerO7JRpQ8WROyAp5s7kmRC8WiIqdoXfGoIKio-QQEEBTKmQQkQWUhebQgaKH4qgqilChh5liKog2vqiBaCaVmUCKWqNRMBahatSxYFKhaDfASAFWrmTkWELUgn8kViFowdweAqAVQ8hIAUQvkXAWIWlDMfINA1IJSzqBELVDQ8ChRC6qav4SSqAV1xVdAErWgqbgEAOl7VObs24IoEVYK9r4iSoSVIBWPEmGlrAoeJcLKkr2vwLyYUinJo0RYWc0Viwgr62omASKsbBq-AvTRLIQUPCooim_Wr9hz9np8ST0nvA1pE3YuHXFne5MWNt75Ma58wedTmnXqatfJc_Yq4meNU2_XwStcZ-IgT51OtzY2xKd3v3qMEabgh48m57fbyYQP-hbw1GGnz9KRboD4DNwy-pX6p-k3_qOJY17pd2uNSz081QSZ6zGD2Q9-1C773KK3ftzrlOXDfvmQ_jQEG1zc0B-ci1XRa-O-3-IrpbIU-u0u2q3Wn0L-Oege3elgj-afsP8T43L5C23qg4U=)
> *Blue: Downloads | Purple: Views (Real-time dynamic)*

View File

@@ -2,8 +2,8 @@
> ![updated_zh](https://img.shields.io/endpoint?url=https%3A%2F%2Fgist.githubusercontent.com%2FFu-Jie%2Fdb3d95687075a880af6f1fba76d679c6%2Fraw%2Fbadge_updated_zh.json&style=flat)
### 📈 增长与趋势 (Last 14 Days)
![Trend](https://kroki.io/mermaid/svg/eNpNjkFuxCAMRfc9Bcqiq0QCbMCs295gdqMsaAdNI2WINKFq5va1k1KVxef5Y769PT4-070O77mmJ8WnTnXOqnsr13TNt1yqelavy3eZl3RZ1emey6XbG7chbdOqzp02g41drwRANzA72EH_gW0ADbCBa-AbhAbUIP6C0Q1MN-6bPI5NutNS06xelq9S12PHeSpZnW0g3StLIbDGEHsFGtgB44nVgmeFgKzOWlbvgTXsnRTEiZF70IAR9Xr8lw6WSGL49UhAqRxpJxloxSQDkhgReSzq6NlEMEHiEJxUzjr-gN6jXERBBrpIevwB6vlaJw==)
### 📈 总下载量累计趋势
![Activity](https://kroki.io/vegalite/svg/eNqNlsFy2yAQhl8loza3OoZFAinXPkadAxLIopGFKiE7GY_fvUBiT-pFM70wWvjYXfbHrM_Z97np9EFmzw9Z59w4P2-3R72XT3vjuqV-Mnb7AcTZTW-c3h6Lp9-zHbIfD5nSczOZ0Rlveg-7hRNW75ZcEz-WrVC7paJNu1uEAj-WtaR-VKVfLaBug4uTUa7zm0tCvNVps--cNyGao1TKDHtvF96qZfO6n-wyqBDMTXKYRznpwQU_jR1aE8hzdjT6FD9mN9lXfQ9fPC3fzBwRZQ_ShORb2c_ar-wno67mJaBKOvnhVvaLDrt-ncNk9AsE-IbQDSliOexp6K1UARJ56XcnSH5PloykSXFPVrRIkyUiBaTJ6p6khPIkSglGS5FGKUJpmU6AAkKhWEmAIZTlLI3mCM15uqoUKUULWDkWx2iVVpUirSjnKygSiwq-UgGsVsnyJApYrQrSEgBWq1o5FiC1gKzkCkgtWLsDgNQCKNISAFIL2FoFkFqQr_wGAakFBVtBkVrAoUqjSC0QZfoSMqQWlCJdAYbUgkqkEgBP36OMJN8WjyJhGU3eV48iYRkwnkaRsIyJPI0iYVmRvK-QeDEZ5yyNImGZWCsWEpaVYiUBJCyrqnQF8KOZU0bTKMWof7NeQs85yOk19hz3PsZNvnPJgPdm0HGhsb2dwso3_3wyXceudp08Z280_Kz91Pv14w2uM-GDxE4nlQkN8fnDr5xChNnZ8bPJ2badtfukbwFPnf8TkMUj3QD6Fbhl9BL7px4a-9nEfV5xbI3uYw-PNfHM9ZhOH0Y7yT772qJbOx1kzPLxsHlUkTeuDxuGpe9DVWSt-5-3-JzzLIZ-v4t2q_WXkH8WOXh30pmj_ifs_8S4XP4CD5SLdw==)
> *蓝色: 总下载量 | 紫色: 总浏览量 (实时动态生成)*

View File

@@ -1159,22 +1159,14 @@ class OpenWebUIStats:
if not new_chart:
return
# 查找并在 "### 📈" 开头的段落替换图表
# 假设图表是在 "### 📈 Total Downloads Trend""### 📈 总下载量累计趋势" 之后
# 并且是以 ![Activity](...) 格式存在
# 简单起见,我们查找整个图表块并替换
# 匹配 ### 📈 ... \n\n![Activity](...)
pattern = r"(### 📈.*?\n)(!\[Activity\]\(.*?\))"
def replace_chart(match):
title_line = match.group(1) # 保留标题行
# new_chart 包含了标题行,所以我们需要提取 url 部分或者直接用 new_chart 替换整个块
# generate_activity_chart 返回的是: ### 📈 Title\n![Activity](url)
return new_chart
# 匹配 ### 📈 ... \n\n![...](...)
# 兼容 docs 中使用 Trend 或 Activity 作为 alt text
pattern = r"(### 📈.*?\n)(!\[.*?\]\(.*?\))"
if re.search(pattern, content, re.DOTALL):
content = re.sub(pattern, replace_chart, content, flags=re.DOTALL)
# generate_activity_chart 返回的是完整块: ### 📈 Title\n![Activity](url)
# 我们直接用新块替换整个旧块
content = re.sub(pattern, new_chart, content, flags=re.DOTALL)
with open(doc_path, "w", encoding="utf-8") as f:
f.write(content)