mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-19 10:54:06 -06:00
Merge 545d65e7da into bacd19c4ea
This commit is contained in:
commit
fe7c228a05
@ -35,6 +35,15 @@ export default ((opts: Options) => {
|
||||
return <></>
|
||||
}
|
||||
|
||||
const mapping = opts.options.mapping ?? "url"
|
||||
const commentId = fileData.frontmatter?.commentId as string | undefined
|
||||
|
||||
if (mapping === "specific" && !commentId) {
|
||||
const identifier = fileData.filePath ?? fileData.slug ?? "unknown"
|
||||
console.warn(`[Quartz] Missing commentId for page ${identifier}, skipping giscus mounting.`)
|
||||
return <></>
|
||||
}
|
||||
|
||||
return (
|
||||
<div
|
||||
class={classNames(displayClass, "giscus")}
|
||||
@ -42,7 +51,8 @@ export default ((opts: Options) => {
|
||||
data-repo-id={opts.options.repoId}
|
||||
data-category={opts.options.category}
|
||||
data-category-id={opts.options.categoryId}
|
||||
data-mapping={opts.options.mapping ?? "url"}
|
||||
data-mapping={mapping}
|
||||
data-term={mapping === "specific" ? commentId : undefined}
|
||||
data-strict={boolToStringBool(opts.options.strict ?? true)}
|
||||
data-reactions-enabled={boolToStringBool(opts.options.reactionsEnabled ?? true)}
|
||||
data-input-position={opts.options.inputPosition ?? "bottom"}
|
||||
|
||||
@ -56,6 +56,7 @@ type GiscusElement = Omit<HTMLElement, "dataset"> & {
|
||||
reactionsEnabled: string
|
||||
inputPosition: "top" | "bottom"
|
||||
lang: string
|
||||
term?: string
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,6 +66,15 @@ document.addEventListener("nav", () => {
|
||||
return
|
||||
}
|
||||
|
||||
giscusContainer
|
||||
.querySelectorAll("iframe.giscus-frame, script[src*='giscus.app']")
|
||||
.forEach((node) => node.remove())
|
||||
|
||||
if (giscusContainer.dataset.mapping === "specific" && !giscusContainer.dataset.term) {
|
||||
console.warn("[Giscus] mapping='specific' but data-term is missing; skipping widget injection.")
|
||||
return
|
||||
}
|
||||
|
||||
const giscusScript = document.createElement("script")
|
||||
giscusScript.src = "https://giscus.app/client.js"
|
||||
giscusScript.async = true
|
||||
@ -76,6 +86,9 @@ document.addEventListener("nav", () => {
|
||||
giscusScript.setAttribute("data-category", giscusContainer.dataset.category)
|
||||
giscusScript.setAttribute("data-category-id", giscusContainer.dataset.categoryId)
|
||||
giscusScript.setAttribute("data-mapping", giscusContainer.dataset.mapping)
|
||||
if (giscusContainer.dataset.term) {
|
||||
giscusScript.setAttribute("data-term", giscusContainer.dataset.term)
|
||||
}
|
||||
giscusScript.setAttribute("data-strict", giscusContainer.dataset.strict)
|
||||
giscusScript.setAttribute("data-reactions-enabled", giscusContainer.dataset.reactionsEnabled)
|
||||
giscusScript.setAttribute("data-input-position", giscusContainer.dataset.inputPosition)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user