Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dillonzq/LoveIt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxwi88 <278810732@qq.com>2022-05-18 14:52:30 +0300
committerxwi88 <278810732@qq.com>2022-05-25 03:24:42 +0300
commit487a77244226bf301d29a004c3f5601b7e6fafc6 (patch)
tree3107cdd0251deee2cf1bbdb75df5a21e7cc86d49 /src
parenta73149864dae8ecb8acca5a6276d9e9ec8a1d037 (diff)
support comment plugin giscus
Diffstat (limited to 'src')
-rw-r--r--src/js/theme.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/js/theme.js b/src/js/theme.js
index a00bd28e..98dc54e5 100644
--- a/src/js/theme.js
+++ b/src/js/theme.js
@@ -645,6 +645,42 @@ class Theme {
});
this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);
}
+
+ if (this.config.comment.giscus) {
+ const giscusConfig = this.config.comment.giscus;
+ const giscusScript = document.createElement('script');
+ let dataTheme = this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme
+ giscusScript.src = 'https://giscus.app/client.js';
+ giscusScript.type = 'text/javascript';
+ giscusScript.setAttribute('data-repo', giscusConfig.repo);
+ giscusScript.setAttribute('data-repo-id', giscusConfig.repo_id);
+ giscusScript.setAttribute('data-category', giscusConfig.category);
+ giscusScript.setAttribute('data-category-id', giscusConfig.category_id);
+ giscusScript.setAttribute('data-mapping', giscusConfig.mapping);
+ giscusScript.setAttribute('data-reactions-enabled', giscusConfig.reactions_enabled);
+ giscusScript.setAttribute('data-emit-metadata', giscusConfig.emit_metadata);
+ giscusScript.setAttribute('data-input-position', giscusConfig.input_position);
+ giscusScript.setAttribute('data-lang', giscusConfig.lang);
+ if (giscusConfig.label) giscusScript.setAttribute('label', giscusConfig.label);
+ giscusScript.setAttribute('data-theme', dataTheme);
+ giscusScript.crossOrigin = 'anonymous';
+ giscusScript.async = true;
+ document.getElementById('giscus').appendChild(giscusScript);
+ this._giscusOnSwitchTheme = this._giscusOnSwitchTheme || (() => {
+ dataTheme = this.isDark ? giscusConfig.darkTheme : giscusConfig.lightTheme
+ const message = {
+ setConfig: {
+ // theme: 'https://giscus.app/themes/custom_example.css',
+ theme: dataTheme,
+ reactionsEnabled: false,
+ }
+ };
+ const iframe = document.querySelector('iframe.giscus-frame');
+ if (!iframe) return;
+ iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
+ });
+ this.switchThemeEventSet.add(this._giscusOnSwitchTheme);
+ }
}
}