Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add Waline comment system support #169

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions data/assets.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,10 @@ valine:
js:
url: https://cdn.jsdelivr.net/npm/valine@%s/dist/Valine.min.js
sri: sha256-fPqMAsW3FDt/rNyneSJ7HOpZNRs/O2rM016SU08JtCk=

# Waline
waline:
version: 1.5.4
js:
url: https://cdn.jsdelivr.net/npm/@waline/client@%s/dist/Waline.min.js
sri: sha256-HWUTNlNWNR5nk1KDDpFP13JH1Jr/uIeIvWSBHI1OZnM=
16 changes: 15 additions & 1 deletion exampleSite/config/_default/params.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ math:
# leqno:

comment:
# Options: disqus, commento, valine and utterances.
# Options: disqus, commento, valine, waline and utterances.
handler:

# disqus:
Expand All @@ -65,6 +65,20 @@ comment:
# app-Id:
# app-Key:

# waline:
# # Browse https://waline.js.org/reference/client.html to see the options available.
# # Because Hugo's config params are case-insensitive, you need to add `-` or `_` before the uppercase letters.
# server_U-R-L:
# # Language setting, default is `zh-CN`.
# lang:
# # Gravatar style: mp/identicon/monsterid/wavatar/retro/hide
# avatar:
# # Number of comments per page, default is 10.
# page_Size:
# # Comment Box placeholder
# placeholder:


diagram:
handler: mermaid

Expand Down
16 changes: 16 additions & 0 deletions layouts/partials/comment/waline.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<div id="waline-comments" class="mt-4"></div>
{{- $assets := .Site.Data.assets }}
<script defer src="{{ printf $assets.waline.js.url $assets.waline.version }}" {{ with $assets.waline.js.sri }}
integrity="{{ . }}" {{ end }} crossorigin></script>
{{- with .Site.Params.comment.waline }}
<script>
document.addEventListener("DOMContentLoaded", function () {
new Waline({
el: "#waline-comments",
requiredMeta: [ 'nick','mail' ],
dark: "html[class=\"fontawesome-i2svg-active fontawesome-i2svg-complete dark\"]",
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need the fontawesome-i2svg-active fontawesome-i2svg-complete here? Eureka only uses dark to indicate that it is dark mode.

And maybe we need to make it configurable and add a new possible value (maybe eureka) to do this instead of doing it by default. You can refer to how utterances in eureka handles this.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's really not elegant enough here, I think it would be better to change it to dark: "html.dark".

Copy link
Author

@guohoo guohoo Mar 18, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And make it configurable is a good idea, but I think move dark: "html.dark" to params.yaml maybe more concise. Just leave it blank when don't need it.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And you also need to handle the possible duplication of this param since you manually added it and users may set it in config.

{{- partial "utils/get-js-configs" . | safeJS }}
})
});
</script>
{{- end }}