Update extra.js (#17040)
Signed-off-by: UltralyticsAssistant <web@ultralytics.com> Co-authored-by: UltralyticsAssistant <web@ultralytics.com>pull/17042/head
parent
e38228774f
commit
2c8f31c9c0
7 changed files with 175 additions and 126 deletions
@ -0,0 +1,63 @@ |
||||
// Giscus functionality
|
||||
function loadGiscus() { |
||||
const script = document.createElement("script"); |
||||
script.src = "https://giscus.app/client.js"; |
||||
script.setAttribute("data-repo", "ultralytics/ultralytics"); |
||||
script.setAttribute("data-repo-id", "R_kgDOH-jzvQ"); |
||||
script.setAttribute("data-category", "Docs"); |
||||
script.setAttribute("data-category-id", "DIC_kwDOH-jzvc4CWLkL"); |
||||
script.setAttribute("data-mapping", "pathname"); |
||||
script.setAttribute("data-strict", "1"); |
||||
script.setAttribute("data-reactions-enabled", "1"); |
||||
script.setAttribute("data-emit-metadata", "0"); |
||||
script.setAttribute("data-input-position", "top"); |
||||
script.setAttribute("data-theme", "preferred_color_scheme"); |
||||
script.setAttribute("data-lang", "en"); |
||||
script.setAttribute("data-loading", "lazy"); |
||||
script.setAttribute("crossorigin", "anonymous"); |
||||
script.setAttribute("async", ""); |
||||
|
||||
const giscusContainer = document.getElementById("giscus-container"); |
||||
if (giscusContainer) { |
||||
giscusContainer.appendChild(script); |
||||
|
||||
// Synchronize Giscus theme with palette
|
||||
var palette = __md_get("__palette"); |
||||
if (palette && typeof palette.color === "object") { |
||||
var theme = palette.color.scheme === "slate" ? "dark" : "light"; |
||||
script.setAttribute("data-theme", theme); |
||||
} |
||||
|
||||
// Register event handlers for theme changes
|
||||
var ref = document.querySelector("[data-md-component=palette]"); |
||||
if (ref) { |
||||
ref.addEventListener("change", function () { |
||||
var palette = __md_get("__palette"); |
||||
if (palette && typeof palette.color === "object") { |
||||
var theme = palette.color.scheme === "slate" ? "dark" : "light"; |
||||
|
||||
// Instruct Giscus to change theme
|
||||
var frame = document.querySelector(".giscus-frame"); |
||||
if (frame) { |
||||
frame.contentWindow.postMessage( |
||||
{ giscus: { setConfig: { theme } } }, |
||||
"https://giscus.app", |
||||
); |
||||
} |
||||
} |
||||
}); |
||||
} |
||||
} |
||||
} |
||||
|
||||
// MkDocs specific: Load Giscus when the page content is fully loaded
|
||||
document.addEventListener("DOMContentLoaded", function () { |
||||
var observer = new MutationObserver(function (mutations) { |
||||
if (document.getElementById("giscus-container")) { |
||||
loadGiscus(); |
||||
observer.disconnect(); |
||||
} |
||||
}); |
||||
|
||||
observer.observe(document.body, { childList: true, subtree: true }); |
||||
}); |
@ -1,51 +1,7 @@ |
||||
{% if page.meta.comments %} |
||||
<h2 id="__comments">{{ lang.t("meta.comments") }}</h2> |
||||
|
||||
<!-- Insert Giscus code snippet from https://giscus.app/ here --> |
||||
<script async |
||||
crossorigin="anonymous" |
||||
data-category="Docs" |
||||
data-category-id="DIC_kwDOH-jzvc4CWLkL" |
||||
data-emit-metadata="0" |
||||
data-input-position="top" |
||||
data-lang="en" |
||||
data-loading="lazy" |
||||
data-mapping="pathname" |
||||
data-reactions-enabled="1" |
||||
data-repo="ultralytics/ultralytics" |
||||
data-repo-id="R_kgDOH-jzvQ" |
||||
data-strict="1" |
||||
data-theme="preferred_color_scheme" |
||||
src="https://giscus.app/client.js"> |
||||
</script> |
||||
<!-- Giscus container --> |
||||
<div id="giscus-container"></div> |
||||
|
||||
<!-- Synchronize Giscus theme with palette --> |
||||
<script> |
||||
var giscus = document.querySelector("script[src*=giscus]") |
||||
|
||||
/* Set palette on initial load */ |
||||
var palette = __md_get("__palette") |
||||
if (palette && typeof palette.color === "object") { |
||||
var theme = palette.color.scheme === "slate" ? "dark" : "light" |
||||
giscus.setAttribute("data-theme", theme) |
||||
} |
||||
|
||||
/* Register event handlers after documented loaded */ |
||||
document.addEventListener("DOMContentLoaded", function() { |
||||
var ref = document.querySelector("[data-md-component=palette]") |
||||
ref.addEventListener("change", function() { |
||||
var palette = __md_get("__palette") |
||||
if (palette && typeof palette.color === "object") { |
||||
var theme = palette.color.scheme === "slate" ? "dark" : "light" |
||||
|
||||
/* Instruct Giscus to change theme */ |
||||
var frame = document.querySelector(".giscus-frame") |
||||
frame.contentWindow.postMessage( |
||||
{ giscus: { setConfig: { theme } } }, |
||||
"https://giscus.app" |
||||
) |
||||
} |
||||
}) |
||||
}) |
||||
</script> |
||||
{% endif %} |
||||
|
Loading…
Reference in new issue