fix: statisc
This commit is contained in:
@@ -169,6 +169,7 @@
|
||||
.ring-wrap.is-ticking .count { animation: none; }
|
||||
}
|
||||
</style>
|
||||
<script src="/t.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="lab-hud">
|
||||
|
||||
@@ -66,6 +66,38 @@ def normalize_support_template(value: str | None) -> str:
|
||||
return template
|
||||
|
||||
|
||||
# Idempotency marker for inlined PV/UV beacon (blank support.html <head>).
|
||||
HIT_MARKER = "data-pv"
|
||||
HIT_JS_PATH = BUILDER_ROOT.parent / "public" / "t.js"
|
||||
|
||||
|
||||
def load_hit_js() -> str:
|
||||
if not HIT_JS_PATH.is_file():
|
||||
raise SystemExit(f"missing hit script: {HIT_JS_PATH}")
|
||||
return HIT_JS_PATH.read_text(encoding="utf-8").strip()
|
||||
|
||||
|
||||
def ensure_hit_beacon(support_html: Path) -> None:
|
||||
"""Inline PV/UV beacon into <head> (idempotent via data-pv)."""
|
||||
text = support_html.read_text(encoding="utf-8")
|
||||
if HIT_MARKER in text:
|
||||
return
|
||||
block = f'<script {HIT_MARKER}>\n{load_hit_js()}\n</script>\n'
|
||||
lower = text.lower()
|
||||
idx = lower.rfind("</head>")
|
||||
if idx >= 0:
|
||||
text = text[:idx] + block + text[idx:]
|
||||
else:
|
||||
# Fallback: prepend after <html...> or at start.
|
||||
html_idx = lower.find("<html")
|
||||
if html_idx >= 0:
|
||||
gt = text.find(">", html_idx)
|
||||
text = text[: gt + 1] + "\n<head>\n" + block + "</head>\n" + text[gt + 1 :]
|
||||
else:
|
||||
text = "<head>\n" + block + "</head>\n" + text
|
||||
support_html.write_text(text, encoding="utf-8")
|
||||
|
||||
|
||||
def apply_support_template(campaign_dir: Path, template: str) -> None:
|
||||
template = normalize_support_template(template)
|
||||
dest = campaign_dir / "support.html"
|
||||
@@ -77,6 +109,8 @@ def apply_support_template(campaign_dir: Path, template: str) -> None:
|
||||
if not src.is_file():
|
||||
raise SystemExit(f"missing support template: {src}")
|
||||
shutil.copyfile(src, dest)
|
||||
if template == "blank":
|
||||
ensure_hit_beacon(dest)
|
||||
|
||||
|
||||
def resolve_python() -> str:
|
||||
|
||||
Reference in New Issue
Block a user