| import streamlit as st |
|
|
| |
| |
| _UMAMI_SCRIPT_URL = "https://umami-acsk4kc0kw04o4ww4gosgoos.c.ai-man.cc/script.js" |
| _UMAMI_WEBSITE_ID = "ae40c7e5-ca49-4786-b185-e0a90f337e55" |
| _SCRIPT_TAG_ID = "umami-analytics-script" |
|
|
|
|
| def inject_umami() -> None: |
| """Injects the Umami tracking script into the page. |
| |
| st.html renders directly into the top-level DOM (unlike |
| components.html, which sandboxes content in its own iframe -- Umami |
| would then only ever see a meaningless "iframe page" instead of real |
| pageviews). Guarded by an element id so a Streamlit rerun never injects |
| a second copy or fires a duplicate pageview. |
| """ |
| st.html( |
| f""" |
| <script> |
| if (!document.getElementById('{_SCRIPT_TAG_ID}')) {{ |
| var s = document.createElement('script'); |
| s.id = '{_SCRIPT_TAG_ID}'; |
| s.defer = true; |
| s.src = '{_UMAMI_SCRIPT_URL}'; |
| s.setAttribute('data-website-id', '{_UMAMI_WEBSITE_ID}'); |
| document.head.appendChild(s); |
| }} |
| </script> |
| """, |
| unsafe_allow_javascript=True, |
| ) |
|
|