bookworm-boot/patches/update-pages.py

218 lines
12 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
"""
更新 guide.html + quick-start.html
- 添加 OneClick 一键安装器下载
- 更新版本号: 34 Hooks, v2.0
- 三平台下载按钮
"""
import re, os
WEBDIR = '/opt/bookworm-web/public'
# ═══════════════════════════════════════
# 1. guide.html
# ═══════════════════════════════════════
guide = os.path.join(WEBDIR, 'guide.html')
with open(guide, 'r', encoding='utf-8') as f:
html = f.read()
# (a) 版本号 29 Hooks → 34 Hooks
html = html.replace('29 Hooks', '34 Hooks')
# (b) 版本号 v1.5 → v2.0
html = html.replace('Portable v1.5', 'Portable v2.0')
html = html.replace('v1.5 |', 'v2.0 |')
# (c) 替换单一下载按钮为三平台下载
old_download = '''<a href="/Bookworm-Setup.bat" download style="display:inline-block;margin-top:1.2rem;padding:0.7rem 2rem;background:var(--accent);color:#000;font-weight:700;border-radius:8px;font-size:1rem;text-decoration:none;transition:opacity 0.2s" onmouseover="this.style.opacity='0.85'" onmouseout="this.style.opacity='1'">&#11015; 下载一键安装器</a>'''
new_download = '''<div style="display:flex;gap:0.8rem;justify-content:center;margin-top:1.2rem;flex-wrap:wrap">
<a href="/download/Bookworm-OneClick.bat" download style="display:inline-flex;align-items:center;gap:0.4rem;padding:0.7rem 1.5rem;background:var(--accent);color:#000;font-weight:700;border-radius:8px;font-size:0.95rem;text-decoration:none;transition:opacity 0.2s" onmouseover="this.style.opacity='0.85'" onmouseout="this.style.opacity='1'">&#11015; Windows 11 一键安装</a>
<a href="/download/Bookworm-OneClick-Win10.bat" download style="display:inline-flex;align-items:center;gap:0.4rem;padding:0.7rem 1.5rem;background:var(--purple);color:#000;font-weight:700;border-radius:8px;font-size:0.95rem;text-decoration:none;transition:opacity 0.2s" onmouseover="this.style.opacity='0.85'" onmouseout="this.style.opacity='1'">&#11015; Windows 10 一键安装</a>
<a href="/download/Bookworm-OneClick-Mac.sh" download style="display:inline-flex;align-items:center;gap:0.4rem;padding:0.7rem 1.5rem;background:var(--green);color:#000;font-weight:700;border-radius:8px;font-size:0.95rem;text-decoration:none;transition:opacity 0.2s" onmouseover="this.style.opacity='0.85'" onmouseout="this.style.opacity='1'">&#11015; macOS 一键安装</a>
</div>
<p style="text-align:center;color:var(--text-dim);font-size:0.8rem;margin-top:0.5rem">全新电脑? 双击即装 &mdash; 自动安装 Node.js + Git + Claude Code + Bookworm 配置</p>'''
html = html.replace(old_download, new_download)
# (d) 更新 "最快方式" 卡片 — 提及全自动
old_fastest = '''<h3 style="color:var(--green);margin-bottom:0.5rem">最快方式:一键安装器</h3>
<p style="color:var(--text-dim);font-size:0.9rem;margin-bottom:0.8rem">获取 <strong>Bookworm-Setup.bat</strong> (4KB) &#8594; 双击运行 &#8594; 输入密码 &#8594; 完成</p>
<p style="font-size:0.8rem;color:var(--text-dim)">安装器自动检测依赖下载配置创建桌面快捷方式启动 Claude Code</p>'''
new_fastest = '''<h3 style="color:var(--green);margin-bottom:0.5rem">最快方式:全自动一键安装器 v2.0</h3>
<p style="color:var(--text-dim);font-size:0.9rem;margin-bottom:0.8rem">下载 <strong>OneClick 安装器</strong> &#8594; 双击运行 &#8594; 输入密码 &#8594; 完成</p>
<p style="font-size:0.8rem;color:var(--text-dim)">全新电脑零依赖自动安装 Node.js + Git + Claude Code + 下载配置 + 创建桌面快捷方式</p>
<div style="display:flex;gap:0.5rem;justify-content:center;margin-top:0.6rem;flex-wrap:wrap;font-size:0.8rem">
<span style="background:rgba(88,166,255,0.1);border:1px solid rgba(88,166,255,0.3);padding:0.2rem 0.6rem;border-radius:12px">Win 11: winget 自动装</span>
<span style="background:rgba(188,140,255,0.1);border:1px solid rgba(188,140,255,0.3);padding:0.2rem 0.6rem;border-radius:12px">Win 10: 下载 MSI 静默装</span>
<span style="background:rgba(63,185,80,0.1);border:1px solid rgba(63,185,80,0.3);padding:0.2rem 0.6rem;border-radius:12px">macOS: Homebrew 自动装</span>
</div>'''
html = html.replace(old_fastest, new_fastest)
# (e) 更新手动流程提示
old_manual = '<p style="text-align:center;color:var(--text-dim);font-size:0.85rem;margin-bottom:0.5rem">手动安装流程:</p>'
new_manual = '<p style="text-align:center;color:var(--text-dim);font-size:0.85rem;margin-bottom:0.5rem">如需手动安装(一键安装器失败时的备选方案):</p>'
html = html.replace(old_manual, new_manual)
# (f) 更新首次安装行 "快速参考" 表
old_ref = '<tr><td>首次安装</td><td>git clone + 双击<br><strong>更新并启动Bookworm.bat</strong></td><td><code>pwsh -ExecutionPolicy Bypass -File install.ps1</code></td></tr>'
new_ref = '<tr><td>首次安装</td><td>双击 <strong>Bookworm-OneClick.bat</strong><br><span style="font-size:0.8rem;color:var(--text-dim)">自动装 Node.js + Git + Claude Code</span></td><td><code>pwsh -ExecutionPolicy Bypass -File install.ps1</code></td></tr>'
html = html.replace(old_ref, new_ref)
# (g) 在 "安装检查清单" 前插入 OneClick 安装段
oneclick_section = '''
<!-- ============================================================ -->
<!-- 全自动安装 (新增 v2.0) -->
<!-- ============================================================ -->
<div class="section" id="oneclick">
<h2><span class="num" style="background:var(--green)">0</span>全自动一键安装 (推荐)</h2>
<div class="alert success">
<span class="alert-icon">&#9889;</span>
<div>
<strong>全新电脑? 从这里开始!</strong><br>
OneClick 安装器会自动完成所有步骤安装 Node.jsGitClaude Code下载 Bookworm 配置创建桌面快捷方式<br>
你只需要输入 Gitea 密码和主密码
</div>
</div>
<table>
<tr><th>系统</th><th>安装文件</th><th>安装方式</th><th>前提条件</th></tr>
<tr>
<td><strong>Windows 11</strong></td>
<td><a href="/download/Bookworm-OneClick.bat" download>Bookworm-OneClick.bat</a></td>
<td>winget 自动安装</td>
<td> (winget 内置)</td>
</tr>
<tr>
<td><strong>Windows 10</strong></td>
<td><a href="/download/Bookworm-OneClick-Win10.bat" download>Bookworm-OneClick-Win10.bat</a></td>
<td>winget 优先, 回退下载 MSI/EXE</td>
<td> (1809+)</td>
</tr>
<tr>
<td><strong>macOS 12+</strong></td>
<td><a href="/download/Bookworm-OneClick-Mac.sh" download>Bookworm-OneClick-Mac.sh</a></td>
<td>Homebrew 自动安装</td>
<td> (自动装 Homebrew)</td>
</tr>
</table>
<div class="step">
<div class="step-icon green">1</div>
<div class="step-content">
<h4>Windows: 下载并双击</h4>
<p>下载对应版本 双击运行 UAC "" 按提示输入 Gitea 密码和主密码 完成</p>
</div>
</div>
<div class="step">
<div class="step-icon green">2</div>
<div class="step-content">
<h4>macOS: 终端一行命令</h4>
<p>打开终端粘贴以下命令并回车</p>
</div>
</div>
<div class="code-block" onclick="copyCode(this)">
<code><span class="cmd">curl</span> -fsSL -o ~/bookworm-install.sh https://bookworm.letcareme.com/download/Bookworm-OneClick-Mac.sh && <span class="cmd">bash</span> ~/bookworm-install.sh</code>
</div>
<div class="alert info">
<span class="alert-icon">&#128161;</span>
<div>
<strong>OneClick 安装器已包含以下所有步骤</strong><br>
如果一键安装成功可跳过下方的手动步骤 1-3直接查看<a href="#daily">每日使用</a>部分
</div>
</div>
</div>
'''
# 在 "安装检查清单" 部分前插入
checklist_marker = '<!-- ============================================================ -->\n <!-- 安装检查清单 -->'
html = html.replace(checklist_marker, oneclick_section + ' ' + checklist_marker)
# (h) 更新时间首次安装 "约 10 分钟" → 区分 OneClick / 手动
old_time = '首次安装约 10 分钟(含依赖下载),之后每次双击启动约 10-30 秒'
new_time = '一键安装约 5 分钟(自动下载依赖),手动安装约 15 分钟。之后每次双击启动约 10-30 秒'
html = html.replace(old_time, new_time)
with open(guide, 'w', encoding='utf-8') as f:
f.write(html)
print(f'[OK] guide.html 已更新 ({len(html)} bytes)')
# ═══════════════════════════════════════
# 2. quick-start.html
# ═══════════════════════════════════════
qs = os.path.join(WEBDIR, 'quick-start.html')
with open(qs, 'r', encoding='utf-8') as f:
qhtml = f.read()
# (a) 版本号
qhtml = qhtml.replace('v1.5 |', 'v2.0 |')
qhtml = qhtml.replace('29 Hooks', '34 Hooks')
qhtml = qhtml.replace('Portable v1.5', 'Portable v2.0')
# (b) 更新启动流程 — 添加 OneClick
old_flow = '''<div class="flow">
<div class="flow-node">开代理</div>
<span class="flow-arrow">&#10132;</span>
<div class="flow-node">双击 <strong>Bookworm</strong></div>
<span class="flow-arrow">&#10132;</span>
<div class="flow-node">等横幅出现</div>
<span class="flow-arrow">&#10132;</span>
<div class="flow-node active">开始工作</div>
</div>'''
new_flow = '''<div class="flow">
<div class="flow-node">开代理</div>
<span class="flow-arrow">&#10132;</span>
<div class="flow-node">双击 <strong>Bookworm</strong></div>
<span class="flow-arrow">&#10132;</span>
<div class="flow-node">等横幅出现</div>
<span class="flow-arrow">&#10132;</span>
<div class="flow-node active">开始工作</div>
</div>
<div class="card highlight" style="margin-bottom:6px">
<h3>全新电脑? OneClick 一键安装器</h3>
<p>下载 <code>Bookworm-OneClick.bat</code> (Win11) / <code>*-Win10.bat</code> (Win10) / <code>*-Mac.sh</code> (macOS) 双击即装<br>
<span style="font-size:8pt">自动安装 Node.js + Git + Claude Code + Bookworm零依赖</span></p>
</div>'''
qhtml = qhtml.replace(old_flow, new_flow)
# (c) 启动表添加 OneClick 行
old_startup_table_end = '<tr><td><span class="dot red"></span><strong>命令行启动</strong></td>'
new_startup_row = '''<tr><td><span class="dot green"></span><strong>首次安装</strong></td><td>双击 <code>Bookworm-OneClick.bat</code> (全自动装依赖+配置+启动)</td></tr>
<tr><td><span class="dot red"></span><strong>命令行启动</strong></td>'''
qhtml = qhtml.replace(old_startup_table_end, new_startup_row)
with open(qs, 'w', encoding='utf-8') as f:
f.write(qhtml)
print(f'[OK] quick-start.html 已更新 ({len(qhtml)} bytes)')
# ═══════════════════════════════════════
# 3. guide-mac.html (同步版本号)
# ═══════════════════════════════════════
guide_mac = os.path.join(WEBDIR, 'guide-mac.html')
if os.path.exists(guide_mac):
with open(guide_mac, 'r', encoding='utf-8') as f:
mhtml = f.read()
mhtml = mhtml.replace('29 Hooks', '34 Hooks')
mhtml = mhtml.replace('Portable v1.5', 'Portable v2.0')
mhtml = mhtml.replace('v1.5 |', 'v2.0 |')
# 添加 OneClick Mac 下载按钮 (如有旧按钮替换)
old_mac_dl = 'Bookworm-Setup.sh'
new_mac_dl = '/download/Bookworm-OneClick-Mac.sh'
mhtml = mhtml.replace('href="/Bookworm-Setup.sh"', f'href="{new_mac_dl}"')
with open(guide_mac, 'w', encoding='utf-8') as f:
f.write(mhtml)
print(f'[OK] guide-mac.html 已更新 ({len(mhtml)} bytes)')
print('\n[DONE] 所有页面更新完成')