4ad335ca84
Replace full-page soft nav with a persistent shell and /api/embed/page loads so tab switches in the hub iframe avoid document.write flicker. Co-authored-by: Cursor <cursoragent@cursor.com>
34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
"""Build embed_page_fragment.html from gate index.html."""
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parent.parent
|
|
src_lines = (ROOT / "crypto_monitor_gate" / "templates" / "index.html").read_text(
|
|
encoding="utf-8"
|
|
).splitlines()
|
|
|
|
# 1-based line numbers from index.html
|
|
macro_body = src_lines[243:262] # {% macro %} … {% endmacro %}
|
|
grid_inner = src_lines[328:736] # inside .grid (exclude outer wrapper)
|
|
stats_block = src_lines[738:772]
|
|
|
|
out_lines = [
|
|
"{# Hub iframe tab fragment — shared via embed_templates #}",
|
|
*macro_body,
|
|
'<div class="grid">',
|
|
*grid_inner,
|
|
"</div>",
|
|
*stats_block,
|
|
]
|
|
|
|
out_dir = ROOT / "embed_templates"
|
|
out_dir.mkdir(exist_ok=True)
|
|
text = "\n".join(out_lines) + "\n"
|
|
text = text.replace(
|
|
"{% include 'order_monitor_rule_tips_gate.html' %}",
|
|
"{% include order_rule_tips_tpl %}",
|
|
)
|
|
(out_dir / "embed_page_fragment.html").write_text(text, encoding="utf-8")
|
|
print("wrote", out_dir / "embed_page_fragment.html", "lines", len(out_lines))
|