diff --git a/dist/components/index.d.ts b/dist/components/index.d.ts index 74f52bb..9a1c7a0 100644 --- a/dist/components/index.d.ts +++ b/dist/components/index.d.ts @@ -1 +1,2 @@ export { Comments, CommentsOptions } from '../index.js'; +import '@quartz-community/types'; diff --git a/dist/components/index.js.map b/dist/components/index.js.map index 1790c2c..09603b9 100644 --- a/dist/components/index.js.map +++ b/dist/components/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../node_modules/@quartz-community/utils/src/lang.ts","../../src/components/scripts/comments.inline.ts","../../src/components/Comments.tsx"],"names":[],"mappings":";;;AAIO,SAAS,cAAc,OAAA,EAAwD;AACpF,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;;;ACNA,IAAA,uBAAA,GAAA,wlDAAA;AC0CA,SAAS,iBAAiB,CAAA,EAAoB;AAC5C,EAAA,OAAO,IAAI,GAAA,GAAM,GAAA;AACnB;AAEA,IAAO,gBAAA,IAAS,CAAC,IAAA,KAA0B;AACzC,EAAA,MAAM,WAA4B,CAAC,EAAE,YAAA,EAAc,QAAA,EAAU,KAAI,KAA4B;AAE3F,IAAA,MAAM,EAAA,GAAK,QAAA;AACX,IAAA,MAAM,cAAA,GACJ,OAAQ,EAAA,CAAG,WAAA,EAAyC,QAAA,KAAa,WAAA,KAChE,CAAE,EAAA,CAAG,WAAA,EAAyC,QAAA,IAC5C,EAAA,CAAG,WAAA,EAAyC,QAAA,KAAa,OAAA,CAAA;AAC9D,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,uBAAO,GAAA,CAAA,QAAA,EAAA,EAAE,CAAA;AAAA,IACX;AAEA,IAAA,MAAM,CAAA,GAAI,GAAA;AACV,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,QAAQ,CAAA;AAAA,QACxC,WAAA,EAAW,KAAK,OAAA,CAAQ,IAAA;AAAA,QACxB,cAAA,EAAc,KAAK,OAAA,CAAQ,MAAA;AAAA,QAC3B,eAAA,EAAe,KAAK,OAAA,CAAQ,QAAA;AAAA,QAC5B,kBAAA,EAAkB,KAAK,OAAA,CAAQ,UAAA;AAAA,QAC/B,cAAA,EAAc,IAAA,CAAK,OAAA,CAAQ,OAAA,IAAW,KAAA;AAAA,QACtC,aAAA,EAAa,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,QACzD,wBAAA,EAAwB,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,oBAAoB,IAAI,CAAA;AAAA,QAC9E,qBAAA,EAAqB,IAAA,CAAK,OAAA,CAAQ,aAAA,IAAiB,QAAA;AAAA,QACnD,kBAAA,EAAkB,IAAA,CAAK,OAAA,CAAQ,UAAA,IAAc,OAAA;AAAA,QAC7C,iBAAA,EAAiB,IAAA,CAAK,OAAA,CAAQ,SAAA,IAAa,MAAA;AAAA,QAC3C,kBACE,IAAA,CAAK,OAAA,CAAQ,YAAY,CAAA,QAAA,EAAY,CAAA,CAAE,WAAsB,aAAa,CAAA,cAAA,CAAA;AAAA,QAE5E,WAAA,EAAW,IAAA,CAAK,OAAA,CAAQ,IAAA,IAAQ;AAAA;AAAA,KACjC;AAAA,EAEL,CAAA;AAEA,EAAA,QAAA,CAAS,cAAA,GAAiB,uBAAA;AAE1B,EAAA,OAAO,QAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function capitalize(s: string): string {\n return s.substring(0, 1).toUpperCase() + s.substring(1);\n}\n\nexport function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","var d=s=>{let e=s.detail.theme,t=document.querySelector(\"iframe.giscus-frame\");t&&t.contentWindow&&t.contentWindow.postMessage({giscus:{setConfig:{theme:c(r(e))}}},\"https://giscus.app\")},r=s=>{if(s!==\"dark\"&&s!==\"light\")return s;let e=document.querySelector(\".giscus\");if(!e)return s;let t=e.dataset.darkTheme??\"dark\",a=e.dataset.lightTheme??\"light\";return s===\"dark\"?t:a},c=s=>{let e=document.querySelector(\".giscus\");return e?`${e.dataset.themeUrl??\"https://giscus.app/themes\"}/${s}.css`:`https://giscus.app/themes/${s}.css`},n=[],u=s=>{n.push(s)};if(typeof document<\"u\"){let s=()=>{n.forEach(o=>o()),n.length=0;let e=document.querySelector(\".giscus\");if(!e)return;let t=document.createElement(\"script\");t.src=\"https://giscus.app/client.js\",t.async=!0,t.crossOrigin=\"anonymous\",t.setAttribute(\"data-loading\",\"lazy\"),t.setAttribute(\"data-emit-metadata\",\"0\"),t.setAttribute(\"data-repo\",e.dataset.repo),t.setAttribute(\"data-repo-id\",e.dataset.repoId),t.setAttribute(\"data-category\",e.dataset.category),t.setAttribute(\"data-category-id\",e.dataset.categoryId),t.setAttribute(\"data-mapping\",e.dataset.mapping),t.setAttribute(\"data-strict\",e.dataset.strict),t.setAttribute(\"data-reactions-enabled\",e.dataset.reactionsEnabled),t.setAttribute(\"data-input-position\",e.dataset.inputPosition),t.setAttribute(\"data-lang\",e.dataset.lang);let a=document.documentElement.getAttribute(\"saved-theme\");a&&t.setAttribute(\"data-theme\",c(r(a))),e.appendChild(t);let i=d;document.addEventListener(\"themechange\",i),u(()=>document.removeEventListener(\"themechange\",i))};document.addEventListener(\"nav\",s),document.addEventListener(\"render\",s)}\n","import { classNames } from \"../util/lang\";\n// @ts-expect-error - inline script imported as string by esbuild loader\nimport script from \"./scripts/comments.inline\";\n\ninterface QuartzComponent {\n (props: QuartzComponentProps): unknown;\n css?: string;\n beforeDOMLoaded?: string;\n afterDOMLoaded?: string;\n}\n\ntype QuartzComponentProps = {\n ctx: unknown;\n externalResources: unknown;\n fileData: unknown;\n cfg: unknown;\n children: unknown[];\n tree: unknown;\n allFiles: unknown[];\n displayClass?: \"mobile-only\" | \"desktop-only\";\n};\n\ntype QuartzComponentConstructor = (opts: Options) => QuartzComponent;\n\nexport type CommentsOptions = {\n provider: \"giscus\";\n options: {\n repo: `${string}/${string}`;\n repoId: string;\n category: string;\n categoryId: string;\n themeUrl?: string;\n lightTheme?: string;\n darkTheme?: string;\n mapping?: \"url\" | \"title\" | \"og:title\" | \"specific\" | \"number\" | \"pathname\";\n strict?: boolean;\n reactionsEnabled?: boolean;\n inputPosition?: \"top\" | \"bottom\";\n lang?: string;\n };\n};\n\nfunction boolToStringBool(b: boolean): string {\n return b ? \"1\" : \"0\";\n}\n\nexport default ((opts: CommentsOptions) => {\n const Comments: QuartzComponent = ({ displayClass, fileData, cfg }: QuartzComponentProps) => {\n // check if comments should be displayed according to frontmatter\n const fd = fileData as Record;\n const disableComment: boolean =\n typeof (fd.frontmatter as Record)?.comments !== \"undefined\" &&\n (!(fd.frontmatter as Record)?.comments ||\n (fd.frontmatter as Record)?.comments === \"false\");\n if (disableComment) {\n return <>;\n }\n\n const c = cfg as Record;\n return (\n \n );\n };\n\n Comments.afterDOMLoaded = script;\n\n return Comments;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../../node_modules/@quartz-community/utils/src/lang.ts","../../src/components/scripts/comments.inline.ts","../../src/components/Comments.tsx"],"names":[],"mappings":";;;AAIO,SAAS,cAAc,OAAA,EAAwD;AACpF,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;;;ACNA,IAAA,uBAAA,GAAA,wlDAAA;ACyBA,SAAS,iBAAiB,CAAA,EAAoB;AAC5C,EAAA,OAAO,IAAI,GAAA,GAAM,GAAA;AACnB;AAEA,IAAO,gBAAA,IAAS,CAAC,IAAA,KAA0B;AACzC,EAAA,MAAM,WAA4B,CAAC,EAAE,YAAA,EAAc,QAAA,EAAU,KAAI,KAA4B;AAE3F,IAAA,MAAM,EAAA,GAAK,QAAA;AACX,IAAA,MAAM,cAAA,GACJ,OAAQ,EAAA,CAAG,WAAA,EAAyC,QAAA,KAAa,WAAA,KAChE,CAAE,EAAA,CAAG,WAAA,EAAyC,QAAA,IAC5C,EAAA,CAAG,WAAA,EAAyC,QAAA,KAAa,OAAA,CAAA;AAC9D,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,uBAAO,GAAA,CAAA,QAAA,EAAA,EAAE,CAAA;AAAA,IACX;AAEA,IAAA,MAAM,CAAA,GAAI,GAAA;AACV,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,QAAQ,CAAA;AAAA,QACxC,WAAA,EAAW,KAAK,OAAA,CAAQ,IAAA;AAAA,QACxB,cAAA,EAAc,KAAK,OAAA,CAAQ,MAAA;AAAA,QAC3B,eAAA,EAAe,KAAK,OAAA,CAAQ,QAAA;AAAA,QAC5B,kBAAA,EAAkB,KAAK,OAAA,CAAQ,UAAA;AAAA,QAC/B,cAAA,EAAc,IAAA,CAAK,OAAA,CAAQ,OAAA,IAAW,KAAA;AAAA,QACtC,aAAA,EAAa,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,QACzD,wBAAA,EAAwB,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,oBAAoB,IAAI,CAAA;AAAA,QAC9E,qBAAA,EAAqB,IAAA,CAAK,OAAA,CAAQ,aAAA,IAAiB,QAAA;AAAA,QACnD,kBAAA,EAAkB,IAAA,CAAK,OAAA,CAAQ,UAAA,IAAc,OAAA;AAAA,QAC7C,iBAAA,EAAiB,IAAA,CAAK,OAAA,CAAQ,SAAA,IAAa,MAAA;AAAA,QAC3C,kBACE,IAAA,CAAK,OAAA,CAAQ,YAAY,CAAA,QAAA,EAAY,CAAA,CAAE,WAAsB,aAAa,CAAA,cAAA,CAAA;AAAA,QAE5E,WAAA,EAAW,IAAA,CAAK,OAAA,CAAQ,IAAA,IAAQ;AAAA;AAAA,KACjC;AAAA,EAEL,CAAA;AAEA,EAAA,QAAA,CAAS,cAAA,GAAiB,uBAAA;AAE1B,EAAA,OAAO,QAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function capitalize(s: string): string {\n return s.substring(0, 1).toUpperCase() + s.substring(1);\n}\n\nexport function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","var d=s=>{let e=s.detail.theme,t=document.querySelector(\"iframe.giscus-frame\");t&&t.contentWindow&&t.contentWindow.postMessage({giscus:{setConfig:{theme:c(r(e))}}},\"https://giscus.app\")},r=s=>{if(s!==\"dark\"&&s!==\"light\")return s;let e=document.querySelector(\".giscus\");if(!e)return s;let t=e.dataset.darkTheme??\"dark\",a=e.dataset.lightTheme??\"light\";return s===\"dark\"?t:a},c=s=>{let e=document.querySelector(\".giscus\");return e?`${e.dataset.themeUrl??\"https://giscus.app/themes\"}/${s}.css`:`https://giscus.app/themes/${s}.css`},n=[],u=s=>{n.push(s)};if(typeof document<\"u\"){let s=()=>{n.forEach(o=>o()),n.length=0;let e=document.querySelector(\".giscus\");if(!e)return;let t=document.createElement(\"script\");t.src=\"https://giscus.app/client.js\",t.async=!0,t.crossOrigin=\"anonymous\",t.setAttribute(\"data-loading\",\"lazy\"),t.setAttribute(\"data-emit-metadata\",\"0\"),t.setAttribute(\"data-repo\",e.dataset.repo),t.setAttribute(\"data-repo-id\",e.dataset.repoId),t.setAttribute(\"data-category\",e.dataset.category),t.setAttribute(\"data-category-id\",e.dataset.categoryId),t.setAttribute(\"data-mapping\",e.dataset.mapping),t.setAttribute(\"data-strict\",e.dataset.strict),t.setAttribute(\"data-reactions-enabled\",e.dataset.reactionsEnabled),t.setAttribute(\"data-input-position\",e.dataset.inputPosition),t.setAttribute(\"data-lang\",e.dataset.lang);let a=document.documentElement.getAttribute(\"saved-theme\");a&&t.setAttribute(\"data-theme\",c(r(a))),e.appendChild(t);let i=d;document.addEventListener(\"themechange\",i),u(()=>document.removeEventListener(\"themechange\",i))};document.addEventListener(\"nav\",s),document.addEventListener(\"render\",s)}\n","import type { QuartzComponent, QuartzComponentProps } from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\n// @ts-expect-error - inline script imported as string by esbuild loader\nimport script from \"./scripts/comments.inline\";\n\ntype RequiredOptsConstructor = (opts: Options) => QuartzComponent;\n\nexport type CommentsOptions = {\n provider: \"giscus\";\n options: {\n repo: `${string}/${string}`;\n repoId: string;\n category: string;\n categoryId: string;\n themeUrl?: string;\n lightTheme?: string;\n darkTheme?: string;\n mapping?: \"url\" | \"title\" | \"og:title\" | \"specific\" | \"number\" | \"pathname\";\n strict?: boolean;\n reactionsEnabled?: boolean;\n inputPosition?: \"top\" | \"bottom\";\n lang?: string;\n };\n};\n\nfunction boolToStringBool(b: boolean): string {\n return b ? \"1\" : \"0\";\n}\n\nexport default ((opts: CommentsOptions) => {\n const Comments: QuartzComponent = ({ displayClass, fileData, cfg }: QuartzComponentProps) => {\n // check if comments should be displayed according to frontmatter\n const fd = fileData as Record;\n const disableComment: boolean =\n typeof (fd.frontmatter as Record)?.comments !== \"undefined\" &&\n (!(fd.frontmatter as Record)?.comments ||\n (fd.frontmatter as Record)?.comments === \"false\");\n if (disableComment) {\n return <>;\n }\n\n const c = cfg as Record;\n return (\n \n );\n };\n\n Comments.afterDOMLoaded = script;\n\n return Comments;\n}) satisfies RequiredOptsConstructor;\n"]} \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index ed55273..e4223cb 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,19 +1,5 @@ -interface QuartzComponent { - (props: QuartzComponentProps): unknown; - css?: string; - beforeDOMLoaded?: string; - afterDOMLoaded?: string; -} -type QuartzComponentProps = { - ctx: unknown; - externalResources: unknown; - fileData: unknown; - cfg: unknown; - children: unknown[]; - tree: unknown; - allFiles: unknown[]; - displayClass?: "mobile-only" | "desktop-only"; -}; +import { QuartzComponent } from '@quartz-community/types'; + type CommentsOptions = { provider: "giscus"; options: { diff --git a/dist/index.js.map b/dist/index.js.map index cd6f5ba..4f6a1b2 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/@quartz-community/utils/src/lang.ts","../src/components/scripts/comments.inline.ts","../src/components/Comments.tsx"],"names":[],"mappings":";;;AAIO,SAAS,cAAc,OAAA,EAAwD;AACpF,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;;;ACNA,IAAA,uBAAA,GAAA,wlDAAA;AC0CA,SAAS,iBAAiB,CAAA,EAAoB;AAC5C,EAAA,OAAO,IAAI,GAAA,GAAM,GAAA;AACnB;AAEA,IAAO,gBAAA,IAAS,CAAC,IAAA,KAA0B;AACzC,EAAA,MAAM,WAA4B,CAAC,EAAE,YAAA,EAAc,QAAA,EAAU,KAAI,KAA4B;AAE3F,IAAA,MAAM,EAAA,GAAK,QAAA;AACX,IAAA,MAAM,cAAA,GACJ,OAAQ,EAAA,CAAG,WAAA,EAAyC,QAAA,KAAa,WAAA,KAChE,CAAE,EAAA,CAAG,WAAA,EAAyC,QAAA,IAC5C,EAAA,CAAG,WAAA,EAAyC,QAAA,KAAa,OAAA,CAAA;AAC9D,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,uBAAO,GAAA,CAAA,QAAA,EAAA,EAAE,CAAA;AAAA,IACX;AAEA,IAAA,MAAM,CAAA,GAAI,GAAA;AACV,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,QAAQ,CAAA;AAAA,QACxC,WAAA,EAAW,KAAK,OAAA,CAAQ,IAAA;AAAA,QACxB,cAAA,EAAc,KAAK,OAAA,CAAQ,MAAA;AAAA,QAC3B,eAAA,EAAe,KAAK,OAAA,CAAQ,QAAA;AAAA,QAC5B,kBAAA,EAAkB,KAAK,OAAA,CAAQ,UAAA;AAAA,QAC/B,cAAA,EAAc,IAAA,CAAK,OAAA,CAAQ,OAAA,IAAW,KAAA;AAAA,QACtC,aAAA,EAAa,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,QACzD,wBAAA,EAAwB,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,oBAAoB,IAAI,CAAA;AAAA,QAC9E,qBAAA,EAAqB,IAAA,CAAK,OAAA,CAAQ,aAAA,IAAiB,QAAA;AAAA,QACnD,kBAAA,EAAkB,IAAA,CAAK,OAAA,CAAQ,UAAA,IAAc,OAAA;AAAA,QAC7C,iBAAA,EAAiB,IAAA,CAAK,OAAA,CAAQ,SAAA,IAAa,MAAA;AAAA,QAC3C,kBACE,IAAA,CAAK,OAAA,CAAQ,YAAY,CAAA,QAAA,EAAY,CAAA,CAAE,WAAsB,aAAa,CAAA,cAAA,CAAA;AAAA,QAE5E,WAAA,EAAW,IAAA,CAAK,OAAA,CAAQ,IAAA,IAAQ;AAAA;AAAA,KACjC;AAAA,EAEL,CAAA;AAEA,EAAA,QAAA,CAAS,cAAA,GAAiB,uBAAA;AAE1B,EAAA,OAAO,QAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function capitalize(s: string): string {\n return s.substring(0, 1).toUpperCase() + s.substring(1);\n}\n\nexport function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","var d=s=>{let e=s.detail.theme,t=document.querySelector(\"iframe.giscus-frame\");t&&t.contentWindow&&t.contentWindow.postMessage({giscus:{setConfig:{theme:c(r(e))}}},\"https://giscus.app\")},r=s=>{if(s!==\"dark\"&&s!==\"light\")return s;let e=document.querySelector(\".giscus\");if(!e)return s;let t=e.dataset.darkTheme??\"dark\",a=e.dataset.lightTheme??\"light\";return s===\"dark\"?t:a},c=s=>{let e=document.querySelector(\".giscus\");return e?`${e.dataset.themeUrl??\"https://giscus.app/themes\"}/${s}.css`:`https://giscus.app/themes/${s}.css`},n=[],u=s=>{n.push(s)};if(typeof document<\"u\"){let s=()=>{n.forEach(o=>o()),n.length=0;let e=document.querySelector(\".giscus\");if(!e)return;let t=document.createElement(\"script\");t.src=\"https://giscus.app/client.js\",t.async=!0,t.crossOrigin=\"anonymous\",t.setAttribute(\"data-loading\",\"lazy\"),t.setAttribute(\"data-emit-metadata\",\"0\"),t.setAttribute(\"data-repo\",e.dataset.repo),t.setAttribute(\"data-repo-id\",e.dataset.repoId),t.setAttribute(\"data-category\",e.dataset.category),t.setAttribute(\"data-category-id\",e.dataset.categoryId),t.setAttribute(\"data-mapping\",e.dataset.mapping),t.setAttribute(\"data-strict\",e.dataset.strict),t.setAttribute(\"data-reactions-enabled\",e.dataset.reactionsEnabled),t.setAttribute(\"data-input-position\",e.dataset.inputPosition),t.setAttribute(\"data-lang\",e.dataset.lang);let a=document.documentElement.getAttribute(\"saved-theme\");a&&t.setAttribute(\"data-theme\",c(r(a))),e.appendChild(t);let i=d;document.addEventListener(\"themechange\",i),u(()=>document.removeEventListener(\"themechange\",i))};document.addEventListener(\"nav\",s),document.addEventListener(\"render\",s)}\n","import { classNames } from \"../util/lang\";\n// @ts-expect-error - inline script imported as string by esbuild loader\nimport script from \"./scripts/comments.inline\";\n\ninterface QuartzComponent {\n (props: QuartzComponentProps): unknown;\n css?: string;\n beforeDOMLoaded?: string;\n afterDOMLoaded?: string;\n}\n\ntype QuartzComponentProps = {\n ctx: unknown;\n externalResources: unknown;\n fileData: unknown;\n cfg: unknown;\n children: unknown[];\n tree: unknown;\n allFiles: unknown[];\n displayClass?: \"mobile-only\" | \"desktop-only\";\n};\n\ntype QuartzComponentConstructor = (opts: Options) => QuartzComponent;\n\nexport type CommentsOptions = {\n provider: \"giscus\";\n options: {\n repo: `${string}/${string}`;\n repoId: string;\n category: string;\n categoryId: string;\n themeUrl?: string;\n lightTheme?: string;\n darkTheme?: string;\n mapping?: \"url\" | \"title\" | \"og:title\" | \"specific\" | \"number\" | \"pathname\";\n strict?: boolean;\n reactionsEnabled?: boolean;\n inputPosition?: \"top\" | \"bottom\";\n lang?: string;\n };\n};\n\nfunction boolToStringBool(b: boolean): string {\n return b ? \"1\" : \"0\";\n}\n\nexport default ((opts: CommentsOptions) => {\n const Comments: QuartzComponent = ({ displayClass, fileData, cfg }: QuartzComponentProps) => {\n // check if comments should be displayed according to frontmatter\n const fd = fileData as Record;\n const disableComment: boolean =\n typeof (fd.frontmatter as Record)?.comments !== \"undefined\" &&\n (!(fd.frontmatter as Record)?.comments ||\n (fd.frontmatter as Record)?.comments === \"false\");\n if (disableComment) {\n return <>;\n }\n\n const c = cfg as Record;\n return (\n \n );\n };\n\n Comments.afterDOMLoaded = script;\n\n return Comments;\n}) satisfies QuartzComponentConstructor;\n"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/@quartz-community/utils/src/lang.ts","../src/components/scripts/comments.inline.ts","../src/components/Comments.tsx"],"names":[],"mappings":";;;AAIO,SAAS,cAAc,OAAA,EAAwD;AACpF,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;;;ACNA,IAAA,uBAAA,GAAA,wlDAAA;ACyBA,SAAS,iBAAiB,CAAA,EAAoB;AAC5C,EAAA,OAAO,IAAI,GAAA,GAAM,GAAA;AACnB;AAEA,IAAO,gBAAA,IAAS,CAAC,IAAA,KAA0B;AACzC,EAAA,MAAM,WAA4B,CAAC,EAAE,YAAA,EAAc,QAAA,EAAU,KAAI,KAA4B;AAE3F,IAAA,MAAM,EAAA,GAAK,QAAA;AACX,IAAA,MAAM,cAAA,GACJ,OAAQ,EAAA,CAAG,WAAA,EAAyC,QAAA,KAAa,WAAA,KAChE,CAAE,EAAA,CAAG,WAAA,EAAyC,QAAA,IAC5C,EAAA,CAAG,WAAA,EAAyC,QAAA,KAAa,OAAA,CAAA;AAC9D,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,uBAAO,GAAA,CAAA,QAAA,EAAA,EAAE,CAAA;AAAA,IACX;AAEA,IAAA,MAAM,CAAA,GAAI,GAAA;AACV,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO,UAAA,CAAW,YAAA,EAAc,QAAQ,CAAA;AAAA,QACxC,WAAA,EAAW,KAAK,OAAA,CAAQ,IAAA;AAAA,QACxB,cAAA,EAAc,KAAK,OAAA,CAAQ,MAAA;AAAA,QAC3B,eAAA,EAAe,KAAK,OAAA,CAAQ,QAAA;AAAA,QAC5B,kBAAA,EAAkB,KAAK,OAAA,CAAQ,UAAA;AAAA,QAC/B,cAAA,EAAc,IAAA,CAAK,OAAA,CAAQ,OAAA,IAAW,KAAA;AAAA,QACtC,aAAA,EAAa,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,UAAU,IAAI,CAAA;AAAA,QACzD,wBAAA,EAAwB,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,oBAAoB,IAAI,CAAA;AAAA,QAC9E,qBAAA,EAAqB,IAAA,CAAK,OAAA,CAAQ,aAAA,IAAiB,QAAA;AAAA,QACnD,kBAAA,EAAkB,IAAA,CAAK,OAAA,CAAQ,UAAA,IAAc,OAAA;AAAA,QAC7C,iBAAA,EAAiB,IAAA,CAAK,OAAA,CAAQ,SAAA,IAAa,MAAA;AAAA,QAC3C,kBACE,IAAA,CAAK,OAAA,CAAQ,YAAY,CAAA,QAAA,EAAY,CAAA,CAAE,WAAsB,aAAa,CAAA,cAAA,CAAA;AAAA,QAE5E,WAAA,EAAW,IAAA,CAAK,OAAA,CAAQ,IAAA,IAAQ;AAAA;AAAA,KACjC;AAAA,EAEL,CAAA;AAEA,EAAA,QAAA,CAAS,cAAA,GAAiB,uBAAA;AAE1B,EAAA,OAAO,QAAA;AACT,CAAA","file":"index.js","sourcesContent":["export function capitalize(s: string): string {\n return s.substring(0, 1).toUpperCase() + s.substring(1);\n}\n\nexport function classNames(...classes: (string | undefined | null | false)[]): string {\n return classes.filter(Boolean).join(\" \");\n}\n","var d=s=>{let e=s.detail.theme,t=document.querySelector(\"iframe.giscus-frame\");t&&t.contentWindow&&t.contentWindow.postMessage({giscus:{setConfig:{theme:c(r(e))}}},\"https://giscus.app\")},r=s=>{if(s!==\"dark\"&&s!==\"light\")return s;let e=document.querySelector(\".giscus\");if(!e)return s;let t=e.dataset.darkTheme??\"dark\",a=e.dataset.lightTheme??\"light\";return s===\"dark\"?t:a},c=s=>{let e=document.querySelector(\".giscus\");return e?`${e.dataset.themeUrl??\"https://giscus.app/themes\"}/${s}.css`:`https://giscus.app/themes/${s}.css`},n=[],u=s=>{n.push(s)};if(typeof document<\"u\"){let s=()=>{n.forEach(o=>o()),n.length=0;let e=document.querySelector(\".giscus\");if(!e)return;let t=document.createElement(\"script\");t.src=\"https://giscus.app/client.js\",t.async=!0,t.crossOrigin=\"anonymous\",t.setAttribute(\"data-loading\",\"lazy\"),t.setAttribute(\"data-emit-metadata\",\"0\"),t.setAttribute(\"data-repo\",e.dataset.repo),t.setAttribute(\"data-repo-id\",e.dataset.repoId),t.setAttribute(\"data-category\",e.dataset.category),t.setAttribute(\"data-category-id\",e.dataset.categoryId),t.setAttribute(\"data-mapping\",e.dataset.mapping),t.setAttribute(\"data-strict\",e.dataset.strict),t.setAttribute(\"data-reactions-enabled\",e.dataset.reactionsEnabled),t.setAttribute(\"data-input-position\",e.dataset.inputPosition),t.setAttribute(\"data-lang\",e.dataset.lang);let a=document.documentElement.getAttribute(\"saved-theme\");a&&t.setAttribute(\"data-theme\",c(r(a))),e.appendChild(t);let i=d;document.addEventListener(\"themechange\",i),u(()=>document.removeEventListener(\"themechange\",i))};document.addEventListener(\"nav\",s),document.addEventListener(\"render\",s)}\n","import type { QuartzComponent, QuartzComponentProps } from \"@quartz-community/types\";\nimport { classNames } from \"../util/lang\";\n// @ts-expect-error - inline script imported as string by esbuild loader\nimport script from \"./scripts/comments.inline\";\n\ntype RequiredOptsConstructor = (opts: Options) => QuartzComponent;\n\nexport type CommentsOptions = {\n provider: \"giscus\";\n options: {\n repo: `${string}/${string}`;\n repoId: string;\n category: string;\n categoryId: string;\n themeUrl?: string;\n lightTheme?: string;\n darkTheme?: string;\n mapping?: \"url\" | \"title\" | \"og:title\" | \"specific\" | \"number\" | \"pathname\";\n strict?: boolean;\n reactionsEnabled?: boolean;\n inputPosition?: \"top\" | \"bottom\";\n lang?: string;\n };\n};\n\nfunction boolToStringBool(b: boolean): string {\n return b ? \"1\" : \"0\";\n}\n\nexport default ((opts: CommentsOptions) => {\n const Comments: QuartzComponent = ({ displayClass, fileData, cfg }: QuartzComponentProps) => {\n // check if comments should be displayed according to frontmatter\n const fd = fileData as Record;\n const disableComment: boolean =\n typeof (fd.frontmatter as Record)?.comments !== \"undefined\" &&\n (!(fd.frontmatter as Record)?.comments ||\n (fd.frontmatter as Record)?.comments === \"false\");\n if (disableComment) {\n return <>;\n }\n\n const c = cfg as Record;\n return (\n \n );\n };\n\n Comments.afterDOMLoaded = script;\n\n return Comments;\n}) satisfies RequiredOptsConstructor;\n"]} \ No newline at end of file diff --git a/src/components/Comments.tsx b/src/components/Comments.tsx index d110804..fd4e74f 100644 --- a/src/components/Comments.tsx +++ b/src/components/Comments.tsx @@ -1,26 +1,9 @@ +import type { QuartzComponent, QuartzComponentProps } from "@quartz-community/types"; import { classNames } from "../util/lang"; // @ts-expect-error - inline script imported as string by esbuild loader import script from "./scripts/comments.inline"; -interface QuartzComponent { - (props: QuartzComponentProps): unknown; - css?: string; - beforeDOMLoaded?: string; - afterDOMLoaded?: string; -} - -type QuartzComponentProps = { - ctx: unknown; - externalResources: unknown; - fileData: unknown; - cfg: unknown; - children: unknown[]; - tree: unknown; - allFiles: unknown[]; - displayClass?: "mobile-only" | "desktop-only"; -}; - -type QuartzComponentConstructor = (opts: Options) => QuartzComponent; +type RequiredOptsConstructor = (opts: Options) => QuartzComponent; export type CommentsOptions = { provider: "giscus"; @@ -81,4 +64,4 @@ export default ((opts: CommentsOptions) => { Comments.afterDOMLoaded = script; return Comments; -}) satisfies QuartzComponentConstructor; +}) satisfies RequiredOptsConstructor;