Merge pull request #664 from xwi88/support-giscus

feat(giscus): the most powerful comment plugin
This commit is contained in:
Dillon
2022-05-26 02:11:33 +08:00
committed by GitHub
29 changed files with 257 additions and 25 deletions

View File

@@ -865,6 +865,43 @@ var Theme = /*#__PURE__*/function () {
this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);
}
if (this.config.comment.giscus) {
var giscusConfig = this.config.comment.giscus;
var giscusScript = document.createElement('script');
giscusScript.src = 'https://giscus.app/client.js';
giscusScript.type = 'text/javascript';
giscusScript.setAttribute('data-repo', giscusConfig.repo);
giscusScript.setAttribute('data-repo-id', giscusConfig.repoId);
giscusScript.setAttribute('data-category', giscusConfig.category);
giscusScript.setAttribute('data-category-id', giscusConfig.categoryId);
giscusScript.setAttribute('data-lang', giscusConfig.lang);
giscusScript.setAttribute('data-mapping', giscusConfig.mapping);
giscusScript.setAttribute('data-reactions-enabled', giscusConfig.reactionsEnabled);
giscusScript.setAttribute('data-emit-metadata', giscusConfig.emitMetadata);
giscusScript.setAttribute('data-input-position', giscusConfig.inputPosition);
if (giscusConfig.lazyLoading) giscusScript.setAttribute('data-loading', 'lazy');
giscusScript.setAttribute('data-theme', this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme);
giscusScript.crossOrigin = 'anonymous';
giscusScript.async = true;
document.getElementById('giscus').appendChild(giscusScript);
this._giscusOnSwitchTheme = this._giscusOnSwitchTheme || function () {
var message = {
setConfig: {
theme: _this11.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme,
reactionsEnabled: false
}
};
var iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({
giscus: message
}, 'https://giscus.app');
};
this.switchThemeEventSet.add(this._giscusOnSwitchTheme);
}
}
}
}, {