#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""构建独立「宝锐酶产品谱系」自包含页面。"""
import json,pathlib,re,subprocess
ROOT=pathlib.Path('/Users/liuxinyuan/Desktop/Hermes输出-工作类')
V5=ROOT/'工具/蛋白结构与性能工作台_v5_交互重做_20261031_V01.html'
TPL=ROOT/'资料/baorui_lineage_template.html'
CSS=ROOT/'资料/baorui_lineage.css'
JS=ROOT/'资料/baorui_lineage.js'
DATA=ROOT/'数据/baorui_enzyme_lineage_20261031.json'
OUT=ROOT/'工具/宝锐产品谱系_20261031_V01.html'
CHECK=pathlib.Path('/Users/liuxinyuan/.hermes/profiles/zone-b/cache/scratch/lineage_check.js')

v5=V5.read_text(encoding='utf-8')
tpl=TPL.read_text(encoding='utf-8')
css=CSS.read_text(encoding='utf-8')
js=JS.read_text(encoding='utf-8')
data=json.loads(DATA.read_text(encoding='utf-8'))

m=re.search(r'/\* ===== bior-brand-v1.*?(?=</style>)',v5,re.S)
brand=m.group(0) if m else ''
start=v5.index('<div class="bior-header"')
end=v5.index('<div class="wrap">',start)
header=v5[start:end].replace('蛋白结构与性能 · 4 酶 + 检索问答 + 突变','宝锐酶产品谱系 · 代际 · 修饰 · 主酶 mix')
data_json=json.dumps(data,ensure_ascii=False,separators=(',',':')).replace('</','<\\/')
html=tpl.replace('{{BRAND_CSS}}',brand).replace('{{PAGE_CSS}}',css).replace('{{HEADER}}',header).replace('{{DATA}}',data_json).replace('{{JS}}',js)
for token in ['{{BRAND_CSS}}','{{PAGE_CSS}}','{{HEADER}}','{{DATA}}','{{JS}}']:
    assert token not in html,token
OUT.write_text(html,encoding='utf-8')
CHECK.write_text(js,encoding='utf-8')
r=subprocess.run(['node','--check',str(CHECK)],capture_output=True,text=True)
print('WROTE',OUT,'MB',round(OUT.stat().st_size/1024/1024,3))
print('node',r.returncode,r.stderr[-300:])
print('products',len(data['products']))
