Merge pull request #664 from xwi88/support-giscus
feat(giscus): the most powerful comment plugin
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
|
||||
Reference in New Issue
Block a user